Releases: Saku0512/specter
Releases · Saku0512/specter
Release list
v1.0.1
v1.0.1 - 2026-06-20
Patch release for the release automation and Homebrew formula update flow.
Changed
- Updated the release workflow so Homebrew formula changes are prepared on a dedicated branch instead of being pushed directly to main.
- Added automated SHA256 updates for all Homebrew formula binary targets.
- Published fresh v1.0.1 binaries for macOS, Linux, and Windows.
Follow-up
- Homebrew formula update is tracked in PR #46.
v1.0.0
v1.0.0 - 2026-06-20
Specter v1.0.0 is the first stable release of the project: a lightweight, config-driven mock API server for frontend development, E2E tests, demos, and local integration work.
This release brings together the mock server, CLI workflows, editor support, documentation site, and safety improvements into a complete local development toolkit.
Highlights
- Define mock APIs in YAML and run them from a single binary with hot reload.
- Build realistic flows with state, vars, stores, seeded data, scenario presets, timelines, delays, rate limits, and fault injection.
- Generate and validate configs with OpenAPI support, JSON Schema,
specter validate, andspecter doctor. - Inspect and control a running server from the built-in web UI.
- Author configs with the Specter Mock Server VS Code extension from the Visual Studio Marketplace.
- Browse the GitHub Pages documentation with search, copyable snippets, examples, and comparison guides.
Mock Server
- Added scenario presets for switching state, vars, and store contents on a running server.
- Added timeline responses for scripted multi-step flows and polling scenarios.
- Added persistent stores backed by a JSON file for local CRUD state across restarts.
- Added seed data for store-backed mock endpoints.
- Added latency profiles with fixed and jittered delays.
- Added fault profiles for timeout, connection reset, malformed JSON, empty body, and HTTP error simulation.
- Added richer request assertions with method/path overrides, query/header/body matching, body path matching, and count checks.
- Added dynamic route CRUD endpoints and UI support for editing routes at runtime.
- Added config validation endpoints for safe YAML validation from the UI.
- Added redaction for sensitive request logs.
CLI
- Added
specter init --templatestarters for basic, CRUD, auth, and OpenAPI workflows. - Added
specter examplesto list and generate sample configs. - Added
specter doctorto diagnose config loading, includes, referenced files, OpenAPI specs, duplicate routes, and port conflicts. - Added
specter scenarioto list, apply, and inspect scenario presets on a running server. - Expanded
specter gen,specter validate, andspecter recorddocumentation and coverage.
Editor And Schema Support
- Published a canonical Specter config JSON Schema for editor completion and validation.
- Added schema docs for VS Code and yaml-language-server compatible editors.
- Added the Specter Mock Server VS Code extension with YAML completion and inline validation for Specter config files.
- Added Marketplace links and badges to the project README.
- Added automated VSIX artifact generation for VS Code extension changes.
Documentation And Website
- Added GitHub Pages documentation for quick start, config reference, recipes, CLI reference, and contribution guidance.
- Added an examples gallery covering auth, CRUD, pagination, OpenAPI, webhooks, SSE, GraphQL, errors, and polling-style flows.
- Added a comparison guide for json-server, Prism, WireMock, and Specter.
- Added docs search and copyable command/config snippets.
- Added a homepage feature section that explains the CLI, VS Code extension, mock behavior, and docs workflow.
Quality
- Added tests across config loading, schema coverage, validation, dynamic routes, timelines, persistent stores, seeded stores, latency profiles, fault profiles, request assertions, examples, doctor diagnostics, and UI rendering.
- Added checks to keep the canonical schema, site schema, and VS Code extension schema synchronized.
- Improved GitHub Actions permissions and release/package workflows.
v0.6.0
What's New
Compared with v0.5.0, this release focuses on a much stronger built-in UI, richer request matching, and a smoother local developer experience.
New Features
- Web UI refresh — the built-in dashboard is now a real control room: request and route detail panes, state and vars editing, store JSON editing, dynamic route cleanup, reset actions, and auto-refresh controls
- Schema-based random responses —
--randomcan generate mock responses from OpenAPI schemas when a route does not define an explicit response body - JSON Schema body matching —
match.body_schemalets routes branch on request bodies using inline JSON Schema in OpenAPI schema format - Route priority and exhaustion —
priorityandtimesmake it easier to model overlapping routes, fallback handlers, and limited-use scenarios
Improvements
- Version output —
-v/--versionnow prints a branded specter banner - Local developer workflow — new
Makefiletargets forbuild,version,init,run,try,test, andclean - Installer polish —
install.shandinstall.ps1now show colorized, step-by-step install output - Validation coverage —
specter validatenow checkspriority,times, andbody_schema-only match entries - Test coverage — added UI handler/render tests and expanded server tests for the new matching and routing behavior
- Dependencies — bumped
github.com/quic-go/quic-gofrom0.59.0to0.59.1
Upgrade
brew upgrade specteror download the latest binaries from the releases page.
Full Changelog: v0.5.0...v0.6.0
v0.5.0
What's New
New Features
- Config include — split config files with
includeglob patterns; nested includes with cycle detection - Store filter / sort / pagination —
store_listnow supports?filter=,?sort=,?order=,?limit=,?offset=query params - Script store access —
{{ store "name" }},{{ storeGet "name" "id" }},{{ storeCount "name" }}in Go templates - Server-Sent Events (SSE) —
stream: truewitheventslist; optionalstream_repeatloop - Form body matching —
match.formforapplication/x-www-form-urlencodedfields (regex) - GraphQL matching —
match.graphql.operationandmatch.graphql.variables(regex) - OpenAPI response validation —
openapi_strict_response: truereturns 500 when mock violates schema specter export— generate a starter config from a running specter's request history- Match-level
response_headers— override response headers per match entry - Match-level
delay— add extra delay per match entry (additive) - Redirect shorthand —
redirect+redirect_status(301/302/303/307/308) - Cookie matching —
match.cookiesmap (regex); cookie injection viaset_cookieson route
Improvements
- Refactoring —
server/server.gosplit into 12 focused files for maintainability - Auto-format —
gofmtruns automatically on commit via.githooks/pre-commit; CI enforces formatting
Upgrade
brew upgrade specteror download from the releases page.
v0.4.0
What's new in v0.4.0
Introspection API
- Request history —
GET /__specter/requestsrecords all incoming requests (up to 200) - Request assertion —
POST /__specter/requests/assertverifies expected calls in CI/E2E tests - State API —
GET/PUT /__specter/stateto read/override stateful mock state - Vars API —
GET/PUT/DELETE /__specter/varsmulti-variable key-value store - Dynamic routes —
POST /__specter/routesto add/remove routes at runtime without restarting
Matching
- Header matching —
match[].headersto branch on request headers - JSONPath / regex —
match[].body_pathmatches nested body fields using dot-notation and Go regular expressions - N-th call matching —
on_call: Non routes orresponses[]entries matches only on the Nth call (retry simulation)
Responses
- Response templates —
{{ .body.field }},{{ .query.param }},{{ .params.name }},{{ .headers.X-Foo }},{{ .method }},{{ .path }} - Faker —
{{ fake "uuid" }},{{ fake "name" }}, 25+ types - Script —
script:field generates response body from a Go template with helpers (upper,lower,trim,default,now,add,sub) - File responses —
file:serves.json,.yaml,.yml, or text files as response bodies - Multiple responses —
responses[]withsequential(default) orrandommode - Content-type —
content_type:field for non-JSON responses (text/plain, text/html, …)
Stateful mocking
- State —
state:/set_state:for single-variable stateful flows (login/logout simulation) - Vars —
vars:/set_vars:for multi-variable scenarios (role-based access, shopping carts)
Fault simulation
- Rate limiting —
rate_limit:/rate_reset:returns 429 after N requests, withRetry-Afterheader - Chaos injection —
error_rate:(random 5xx),delay_min:/delay_max:(jitter latency) - Webhooks —
webhook:fires an async HTTP callback after responding (payment callbacks, async jobs)
Server
- HTTPS —
--cert/--keyfor custom certificates;--tlsfor auto-generated self-signed cert - OpenAPI validation —
openapi:validates incoming requests against a spec; non-blocking (always serves mock response) - Proxy fallback —
proxy:forwards unmatched requests to a real API
CLI
specter init— creates a starter config.ymlspecter validate— validates a config file before startingspecter gen— generates a specter config from an OpenAPI specspecter record— proxies a real API and records responses to config.yml
v0.3.0
What's New
Features
- Query parameter matching —
match+queryでクエリパラメータによるレスポンス切り替え - Request body matching —
match+bodyでリクエストボディによるレスポンス切り替え(queryとの AND 条件も可) - Graceful shutdown — SIGINT/SIGTERM で処理中リクエストを完了してから終了(タイムアウト 5 秒)
- Environment variables —
SPECTER_CONFIG/SPECTER_PORT/SPECTER_HOST/SPECTER_VERBOSEに対応 --hostflag — バインドするホストを指定(デフォルト: 全インターフェース)- Help display — 引数なし起動・
-h・--helpでヘルプ表示 - Docker image —
ghcr.io/saku0512/specterで公開(linux/amd64, linux/arm64) - Homebrew formula —
brew tapでインストール可能、リリース時に自動更新 - Windows support —
specter_windows_amd64.exeバイナリと PowerShell インストールスクリプト
Installation
# macOS / Linux (curl)
curl -fsSL https://raw.githubusercontent.com/Saku0512/specter/main/install.sh | bash
# macOS / Linux (Homebrew)
brew tap Saku0512/specter https://github.com/Saku0512/specter
brew install specter
# Windows (PowerShell)
irm https://raw.githubusercontent.com/Saku0512/specter/main/install.ps1 | iex
# Docker
docker run -v $(pwd)/config.yml:/config.yml ghcr.io/saku0512/specter -c /config.ymlv0.2.0
What's New
Features
- Hot reload — config.yml を保存するだけでサーバー再起動なしに反映
- CORS support —
cors: trueで全ルートに CORS ヘッダーを付与、プリフライトも自動処理 - Response delay —
delay: 1000(ms) でレスポンス遅延をシミュレート - Custom response headers —
headersフィールドで任意のレスポンスヘッダーを設定 - Multiple responses —
mode: sequential/mode: randomで複数レスポンスを切り替え - Path parameter embedding —
:idをレスポンスに埋め込み可能。数値は自動型変換 - Verbose logging —
--verboseでリクエストヘッダーとボディをログ出力 - OpenAPI → config generation —
specter gen -i openapi.ymlで config を自動生成 - Version flag —
-v/--versionでバージョンを表示
Example config
See config.example.yml for a full example covering all features.
Installation
curl -fsSL https://raw.githubusercontent.com/Saku0512/specter/main/install.sh | bash