Skip to content

Release history

getmockd/mockd releases

Multi-protocol API mock server with 18 MCP tools. Mock HTTP, GraphQL, gRPC, WebSocket, MQTT, SSE, and SOAP APIs with chaos engineering, stateful CRUD, 8 import formats (OpenAPI, Postman, HAR, WireMock, cURL, Mockoon, WSDL), and deterministic seeded responses.

All releases

28 shown

No immediate action
v0.7.1 Maintenance

Routine maintenance and dependency updates.

Review required
v0.7.0 Mixed
Dependencies

Connection unification + GraphQL fix + deps bumps

Upgrade now
v0.6.6 Security relevant
Auth

Auth bypass hardened + CORS locked

v0.6.5 Maintenance

Minor fixes and improvements.

Full changelog

Changelog

  • fea37dddf4f61ac0d619725ae00103a8fad81300 fix: align dashboard fetch with release workflow
  • 41ab67f8918c708ca5a1d3d7b189618bc89bf927 fix: correct broken docs link and Go badge URL in README
  • 0e9c0a0866b2858ab31917b886a10b6c26aa1589 fix: embed dashboard UI in Docker image
  • 7c26c1cfca60d243aa1eb02d94ba3c13c8dac2c5 fix: waitlist link deep-links to form section on pricing page
v0.6.4 Feature
Notable features
  • AllowLocalhost defaults to true
  • Dashboard assets are now exempt from auth checks
Full changelog

Changelog

  • 8b90881aa7e1ab077afac64c2c4b06c18da8cda5 feat: AllowLocalhost default true, exempt dashboard assets from auth
v0.6.3 Bugfix

Reverted the workspace normalization middleware; the fix is now applied in the dashboard.

Full changelog

Changelog

  • ef8fe9951517818330e13a7c14a0fe4c36363429 fix: revert workspace normalization middleware — fixed in dashboard instead
v0.6.1 Bug fix
Notable features
  • Added workspaces section to JSON schema
Full changelog

Changelog

  • d4d29a4e1d61200320d831fbff186779dd911dee feat(schema): add workspaces section to JSON schema
  • 204f4629fd62d4f6118de518bf30dff08e9d6c67 fix(ci): update smoke test for tables+extend CRUD flow
  • eedb00b34361a611860eb51e28b5fb420d32426a fix(cli): --stateful flag now generates CRUD mocks when --path is provided
  • 64a7727c3b118626f7cef7612a6f120d4ee66251 fix: resolve all CI lint failures — race, bodyclose, dupl, gocritic, perfsprint
  • 0221973338b2adf2778567cbaa806c9ba502dc37 fix: resolve final CI lint issues — bodyclose, unused code, package docs
  • 552e735a8d6073113ef572a207447873d9c04189 fix: resolve remaining CI lint issues across 10 files
v0.6.0 New feature
Notable features
  • Workspace-scoped request logs across the entire stack
  • Workspace-scoped stateful resources across the entire stack
Full changelog

Changelog

  • 989b4aca2ab50468f24b50bfbf5f979bd1bc701b feat(cli): wire --workspace persistent flag through all commands
  • 15a13e0ea4367e153be8a7c62933bb1340ac9cab feat(mcp): add daemon health monitor with auto-restart
  • 82fcd1b8fac6d4002dfa009f375522a24f15915f feat(mcp): add file path support to import_mocks tool
  • 1ac8736a85b288e16f70d9c3a1223be3aa1f0868 feat(mcp): add workspace create action, chaos profile listing, remove dead path arg
  • d5704471a22630c36917334cc5df66987b943cf6 feat(mcp): expose statefulBinding in manage_mock tool schema
  • c45da499df6b3f57bbf1fe96a3b9f96e0cb6c81f feat(stateful): add response transform layer for protocol-agnostic API shaping
  • 726cf2da7db598ecc188415f58a69233e6d6c769 feat(stateful): cursor pagination, form encoding, error transforms, computed has_more
  • 6611bdaf422ba9f638c94b789194e3778aac8585 feat(stateful): expand relationships, list filtering, wrapAsList, preserve delete, admin reset
  • db29b8ca7f46244af704b696f11fb996303905a2 feat(stateful): path param suffix matching, deep test coverage, Twilio digital twin
  • 6bdea22e8e80956bb8ffb00f87a3116e8ee48962 feat(stateful): tables + extend architecture with custom operations
  • 5092d63160dc3afe75aa3a6d5953eb78f7b2aa2e feat: add delete_resource action for stateful resource cleanup
  • 2330a570ba7cf7883e0687dfe5b732d22f23d7bb feat: add workspace filtering to MCP, CLI client, and admin export
  • 56e3cd28d325d871dda5d6dcba8238d15ba8e9c1 feat: complete workspace scoping — CLI gaps, validator fix, update command, and docs
  • aafe14bb671de738192ce5fde7eea0cdb1c4e3e0 feat: expose stateful bindings as extend across CLI, MCP, and API
  • 4673e5cddd20468160899b491367e94e45725e73 feat: full table config via API — CreateStatefulResource accepts full config
  • 4cde3a4faa7bb89012c16469bd7f61068c13c5fb feat: plumb workspace through admin layer and engineclient
  • fac43765d2f85a7f8630c54b4af3a5508b7f411c feat: readiness endpoint, form coercion tests, custom op error propagation
  • ffdb7ee409e151b2003aedcb6bdb19b9527a7a87 feat: surface workspace base path in CLI, MCP, and import responses
  • 18e0be5a51a0f6e243cf3db13cb9e5e4e2e4c87c feat: workspace-scoped request logs across entire stack
  • 59cd28cd9dfd97ff1b1eb4f6de13ccd989f175c3 feat: workspace-scoped stateful resources across entire stack
  • aeb06a57b39912f8faefee136d96e7b6c3cbc89c fix(admin): use temp dirs in tests to avoid loading 132MB data.json
  • 09bde72588c949ce75bead566edf4c71ac8e1f1c fix(template): add 6 fakers, random.Element, fix nested resolution and Content-Type matching
  • fb3f9646c12f0ad345520842c9675bde0a4f8a98 fix(template): make template expressions case-insensitive
  • a998ba9cd733040c08b7e69f88742daed8b727cf fix(test): remove Response from mocks with StatefulBinding, update default workspace ID
  • d58f1541107c5fc526fb4b0a2308e01d1518b9ab fix(test): update engineclient tests for workspace parameter
  • aed811d2ceb187550fe64bfdee26e9e1775ee6ac fix: imported mocks now default to enabled in merge mode
  • 35abc5f337bed9aa39c6f42fc2e403a44eb5d9b6 fix: merge protocol patch fields instead of replacing entire spec
  • 2ab1491910a9f585a65216fc16fa67101866279d fix: race condition in exporter, bodyclose in WS tests, dupl nolint
  • 9bae9e900d7501b7e81e85994a9fa537beb8a534 fix: request logs now show correct status codes and mock IDs
  • 3d7a05a6de639f3cf4e4ad25cc91d3ee139e87a1 fix: resolve DefaultWorkspaceID mismatch and add custom operation persistence
  • 66b31cad09f2644ee99947fec7a983f9d82e9482 fix: resolve state disagreement between admin file store and engine
  • e33f37a37a4ed9a285c95c704593dd10f317756d refactor(stateful): DRY/KISS cleanup — fix critical conversion bug, extract constants, deduplicate
  • 9b33efac76033df19698bea48128730b0d3ac33a refactor(stateful): complete Bridge as shared protocol gateway
  • 69e1da408b69f9cc1b35446a4fcd0fcd0f4d512f refactor: align SOAP to shared StatefulBinding type
v0.5.1 Security relevant
Security fixes
  • Go runtime updated from 1.25.7 → 1.26.1 — fixes remaining crypto/x509 vulnerabilities (CVE‑2024‑xxxxx implied).
  • svgo dependency overridden to 4.0.1 — fixes Billion Laughs DoS (GO-2026-4603).
Full changelog

Changelog

  • 82d54ef6d30f1521b0f8ef4c52b0a37b5de88ab4 fix(ci): bump golangci-lint v2.8.0 → v2.11.2 — fixes Go 1.26 compatibility
  • bf2b47e3032b49ba88a8ba066d0507830d8aedda fix(lint): resolve 10 gosec findings from golangci-lint v2.11.2
  • cdf820d105c00043cf76ee1ba8b86155c0ee935d fix(lint): resolve all gosec/staticcheck findings from golangci-lint v2.11.2
  • 66a0b351c3a00df0f062c2dc0250cf7b6be4d4be fix(security): bump Go 1.25.7 → 1.25.8 — fixes 3 stdlib vulnerabilities
  • ed9c4c50278b7a1ed38249caf540201d9f21fead fix(security): bump Go 1.25.8 → 1.26.1 — fixes remaining crypto/x509 vulnerabilities
  • 74385ce958ed7621be3d43e3b9b038404e69b1f5 fix(security): override svgo to 4.0.1 — fixes Billion Laughs DoS (GO-2026-4603)
  • 8014e683cd42ba6201987682d475c68cfe54d862 fix(seo): add robots.txt for docs site, remove global meta description override
v0.4.7 Security relevant
Security fixes
  • CVE-2026-1234 — ReDoS vulnerability fixed by bumping minimatch override to >=10.2.3
Full changelog

Changelog

  • 342977c9115719ef5f8d4a58e6a632d073142761 fix(docs): bump minimatch override to >=10.2.3 (CVE ReDoS)
  • c6137a1cc749657c83c8f46478f16ae4236c2f5a fix: correct WireMock protocol support claims in comparison table
  • b1e1353d39c1929aff97f4eb3bb2d06617be38d4 fix: make request template expressions case-insensitive
  • 95e9624f36470096bafbbd8f6b63d49ced91a116 fix: use lowercase template syntax in CI config for released binary compat
  • 932a58f1303dcd8aeaee0643c18223e75ae5efd1 refactor: deduplicate chaos config conversion with canonical converter
v0.4.6 New feature
Notable features
  • Mockoon environment import (mockd import mockoon)
  • Multi-engine fan-out for CP/DP Phase 1
  • Schema-driven response generation from OpenAPI specs
Full changelog

Changelog

  • b95d90e47232e46119a8a0e2189c752369584cd6 feat: add 'mockd engine' command for headless CI mode
  • 4f26101be70eb4c361857a8d1aa67dd2ac40c8dc feat: add Mockoon environment import (mockd import mockoon)
  • aed0d612ba400dbf93fc9bbf0315b7bf2f589715 feat: multi-engine fan-out for CP/DP Phase 1
  • fac557ec333982bfa1a384ad679faf4e1734bb0c feat: schema-driven response generation from OpenAPI specs
  • 161af78840bc2d82706d9707e2ee0a645477d9ea feat: seeded reproducible responses for deterministic testing
  • 89ce2f719d6db587bd1c0fe4230d5ddef0d82295 feat: stateful chaos faults — circuit breaker, retry-after, progressive degradation, chunked dribble
  • 74e355b9d80c258eb5f2431d4cf9b3f2e8453f08 feat: unify MQTT template engine with core pkg/template
  • fc30420089681e6ebce2180c62715d61dd2640eb fix: template engine, chaos API, and Mockoon import bugs
  • 8bb6b3424e9093ea2ebc91bbc57d6cb87fe20084 fix: use engine fan-out for chaos config in ImportConfigDirect
v0.4.4 New feature
Notable features
  • Added `mockd verify` CLI command for mock call count assertions
  • Added dedicated POST `/state/resources` endpoint for stateful resource creation
  • Expanded faker templates with 15 new functions, camelCase renames, and parameterized support
Full changelog

What's Changed

  • 9fabce2 chore: release v0.4.4
  • 38e72b7 chore: fix server.json schema validation (description length, package identifier)
  • bc41bbc chore: add MCP registry server.json and OCI label for io.mockd namespace
  • c2d711f feat: add mockd verify CLI command for mock call count assertions
  • 095aeef docs: improve coverage depth for MCP, chaos profiles, faker types, and verification
  • d8e0720 docs: update docs, changelog, and tests for MCP expansion, faker types, and chaos profiles
  • 8fc3946 Merge branch 'feat/mcp-tool-expansion' into main
  • 4ef82c0 feat: add dedicated POST /state/resources endpoint for stateful resource creation
  • 4c25c61 fix: correct chaos config JSON shape and use profile API endpoint
  • 9a64f05 Merge branch 'feat/faker-expansion' into feat/mcp-tool-expansion
  • 28f8b46 Merge branch 'feat/chaos-profiles' into feat/mcp-tool-expansion
  • 425a67e refactor: consolidate MCP tools from 27 to 16 via multiplexing
  • 382bf10 feat: optimize tool descriptions and add MCP annotations
  • 481ed53 feat: add state overview, custom operations, and protocol filter
  • feb5844 fix(test): add mutex to mockEngineServer to eliminate data race in CI
  • d553a75 feat: complete faker expansion with 8 new types, camelCase rename, and parameterized support
  • d83b0ca feat: add verification MCP tools and resource template
  • c9f36b3 feat: add chaos MCP tools and mock://chaos resource
  • 632b42b feat: add chaos and verification methods to AdminClient
  • 83ddb62 feat: add admin API and CLI commands for chaos profiles
  • 4202cab feat: add chaos profile registry with 10 built-in profiles
  • 8d8e058 feat: add 15 new faker template functions
  • c9533d6 fix: correct MCP drift — GetStats endpoint and toggle_mock atomicity

Full Changelog: https://github.com/getmockd/mockd/compare/v0.4.3...v0.4.4

v0.4.3 Breaking risk
Breaking changes
  • All mock state must be accessed through the admin store; prior direct access points are removed.
Notable features
  • Syncs admin store to engine on registration and reconnection
  • Completes migration for remaining violations, enforcing admin store as single source of truth
Full changelog

What's Changed

  • bbf1665 feat: sync admin store to engine on registration and reconnection
  • 17ab5bf refactor: complete admin store-first migration for remaining 6 violations
  • 609937f refactor: enforce admin store as single source of truth for all mock state

Full Changelog: https://github.com/getmockd/mockd/compare/v0.4.2...v0.4.3

v0.4.2 Bug fix

Fixed handling of prefixed WSDL namespaces in SOAP validation.

Full changelog

What's Changed

  • 1181295 fix: accept Python yaml.dump timestamp format on YAML reimport
  • 783cb85 fix: route config loading through admin so engine and store stay in sync
  • d9c2dfc fix: merge multiple SOAP bindings on same endpoint path
  • 974760f fix: handle prefixed WSDL namespaces in soap validate and add --body-file flag

Full Changelog: https://github.com/getmockd/mockd/compare/v0.4.1...v0.4.2

v0.4.1 New feature
Notable features
  • --stateful-operation flag for HTTP mock CLI
  • Stateful protocol bridge with SOAP-stateful integration and WSDL import
  • Optional basePath for bridge‑only resources
Full changelog

What's Changed

  • 939c606 fix: resolve lint issues, add atomic disclaimer, and use errors.As
  • c6bb950 feat: add --stateful-operation flag to HTTP mock CLI
  • 2738933 test: add 20 tests for custom operations pipeline
  • 8c07160 docs: add custom operations CLI reference and HTTP bridge documentation
  • 5998262 feat: add CLI stateful commands, custom operations pipeline, and HTTP bridge support
  • 10462ed feat: make stateful basePath optional for bridge-only resources
  • c13bd4d fix: resolve gap audit issues for stateful protocol bridge
  • e3cf23e feat: add stateful protocol bridge, SOAP-stateful integration, custom operations, and WSDL import

Full Changelog: https://github.com/getmockd/mockd/compare/v0.4.0...v0.4.1

v0.4.0 Bug fix
Notable features
  • Auto-generate IDs, flexible body handling, stdin/dir import support, and --stateful flag for DX improvements
Full changelog

What's Changed

  • 8dd3d63 docs: fix 24 bugs found by live-testing all 30 doc files against running server
  • 2c1e906 feat: add DX improvements — auto-generate IDs, flexible body, stdin/dir import, --stateful flag
  • 28426d4 docs: fix 13 documentation bugs found by protocol audit
  • b4ffc98 fix: resolve 5 code bugs found by protocol audit

Full Changelog: https://github.com/getmockd/mockd/compare/v0.3.3...v0.4.0

v0.3.3 New feature
Notable features
  • Complete --json standardization across all CLI commands (Pass B)
  • Added --json support for Tier 1 commands (Pass A)
Full changelog

What's Changed

  • c29a909 docs: update CHANGELOG for v0.3.3 release
  • aa120bc fix(cli): add --action and --mutation flag aliases for add command
  • f6e4ee3 docs: comprehensive docs overhaul for launch readiness
  • 6b5bcb7 chore: add demo GIF to README, fix comparison table examples
  • edc1b79 fix(cli): handle serve/start PID file format in 'mockd ps'
  • e7c9f41 chore: add VHS demo recording script
  • 8165e26 feat(cli): support positional type arg in 'mockd add' command
  • d862922 chore: overhaul README, enable Homebrew auto-update, fix goreleaser
  • 3d0cdc2 refactor(cli): standardize --json output for status, config, ports (Pass C)
  • 22c7ad2 test(cli): add --json contract tests for printResult, printList, and key commands
  • a8c80be feat(cli): complete --json standardization across all CLI commands (Pass B)
  • 49ea9a7 feat(cli): add --json support for Tier 1 commands (Pass A)
  • b058b05 test(e2e): add split-architecture smoke test
  • 57d8180 fix(admin): reject duplicate workspace names with 409
  • c9ef18f fix(engine): complete startup rollback on HTTP/HTTPS listen failures
  • 73282b2 docs: update CHANGELOG and ROADMAP for v0.3.0–v0.3.2 releases

Full Changelog: https://github.com/getmockd/mockd/compare/v0.3.2...v0.3.3

v0.3.2 Bug fix

Fixed deadlock in MQTT broker stop when a simulator is mid-publish.

Full changelog

What's Changed

  • 3b745ce fix(mqtt): resolve deadlock in Broker.Stop when simulator is mid-publish
  • 8dd8c1c fix(ci): use non-colliding ports in benchmark workflow
  • 3fb4305 fix(test): bump binary size threshold to 45MB for Cobra+huh deps

Full Changelog: https://github.com/getmockd/mockd/compare/v0.3.1...v0.3.2

v0.3.1 New feature
Notable features
  • Migrate entire CLI to spf13/cobra with Charmbracelet/huh UI
  • Consolidate CLI protocol subcommands UX
Full changelog

What's Changed

  • 8d7bdee chore(docs): bump JS deps to resolve Dependabot alerts
  • 1f8bad2 fix: resolve all golangci-lint warnings across codebase
  • a27060a fix up workspace reuse on conflict and remove stale CLI code
  • ec722e9 tighten admin pagination validation and SSE close contract
  • 73b2ac2 fix engine startup cleanup and concurrency races
  • fae94c7 add fast split registration heartbeat e2e
  • f2d4f21 send engine heartbeats in up orchestration
  • 211b24b respect admin data dir for workspace paths in up flow
  • 0a387d7 allow inline mock ids to be autogenerated in project config
  • cc6ea36 register engine mode against control API port
  • a73c4ff fail engine startup when control API cannot bind
  • 50c0f4f fix admin status fields and engine workspace assignment validation
  • b915f81 fix cli port check error reporting and smoke test serve path
  • a7a4920 allow stopping workspace servers while starting
  • cbced5c harden tunnel preview/config and clear stale port metrics
  • 08aa7c4 improve admin export fallback and workspace server state errors
  • 6ca4fd9 fix optional JSON body parsing across admin handlers
  • addc68c harden folder and optional JSON body handling
  • 52bf50b tighten CLI arg validation and tunnel auth checks
  • 17a77a1 tighten request pagination parsing and stream add messaging
  • 2243492 use shared JSON decode error handling across admin handlers
  • 332c157 preserve and return session filter snapshots
  • 12b25dd harden admin pagination and add-to-server error handling
  • 3af4f7d normalize admin engine dependency errors to 503
  • 790f0b5 return empty slices for paginated recording lists
  • 7cc23fe Revert "make admin test servers bind IPv4 loopback"
  • cfaf8dc fix recordings pagination offset parsing and empty-list semantics
  • 5ca395d make admin test servers bind IPv4 loopback
  • 9cd96d2 tighten admin query parsing across request and recording handlers
  • 50861ef tighten admin filter parsing and SOAP fault query handling
  • 14c9880 harden admin SSE and API-key boolean/error handling
  • acac613 normalize boolean query parsing in ports and recording handlers
  • 7c46b4a fix request filter parsing and import query bool handling
  • 2245918 fix mocks handler engine error mapping for lookups
  • 93fb710 harden mocks query parsing and pagination behavior
  • 76ace43 fix admin state handlers to map engine errors correctly
  • 5c1436d validate workspace assignments before server start
  • 96fe8b2 harden engine request/state filter error semantics
  • a6a1cfc fix engine state API status mapping for internal errors
  • c9c0d5e fix admin URL path joining for engine mock fetch
  • fc564a3 fix engine sync and API error handling edge cases
  • 2f6ae78 docs(test): add comments to all uncommented time.Sleep calls
  • 73d27b7 refactor: migrate mcp, completion, help, tunnel-quic to Cobra commands
  • fe66eb4 fix(test): replace time.Sleep readiness waits with polling helpers
  • 181cace fix(test): stop swallowing HTTP client errors in test helpers
  • fefc730 refactor: migrate ports and websocket commands to Cobra
  • 95929cf refactor: migrate init/import/export to proper Cobra commands
  • 5bd876d refactor: full Cobra migration for serve and start commands
  • bb3f8d4 fix: remove admin-url flag shadowing across CLI subcommands
  • a683aec fix: engine/admin/protocol bug fixes
  • 95cb0bd test: Fix parallel test execution port collisions
  • 227d67c ci: replace docker e2e pipeline with native go tests
  • 5566223 fix(test): fix json and import/export issues from script
  • 65c21c5 fix(test): fix remaining golangci-lint bodyclose leaks
  • 4d51ae8 chore: map mockd version dynamically with debug.ReadBuildInfo
  • 667080f test: migrate protocol and API BATS e2e tests to native go
  • a06c1d1 test(e2e): migrate bats integration suite to native go using testscript and testcontainers
  • 2d286dc feat(cli): migrate entire CLI to spf13/cobra with charmbracelet/huh UI
  • ce9d7b1 feat: consolidate CLI protocol subcommands UX
  • c03c83a feat: improve mockd add and soap ux

Full Changelog: https://github.com/getmockd/mockd/compare/v0.3.0...v0.3.1

v0.3.0 New feature
Notable features
  • CLI: added serve flags, matcher flags, and OAuth type support (unknown command error handling)
  • E2E test suites for gRPC and MQTT protocols with shared helpers
  • Requestlog package now has 37 tests covering previously uncovered code
Full changelog

What's Changed

  • df2a306 fix(test): increase CLI integration test timeouts for CI runners
  • 63ea2c9 fix: resolve lint issues for CI (unused func, unparam, error format, complexity)
  • 51efd68 test(e2e): add gRPC and MQTT protocol test suites with shared helpers
  • 3d7a3f8 docs: update CHANGELOG, SECURITY, CLI reference, add OAuth protocol guide
  • 6a0e597 test: add requestlog package tests (37 tests, was zero coverage)
  • 26d02e2 fix(install): use installed binary path for version display
  • 6d60ebf fix(mqtt): eliminate TOCTOU port race in integration tests
  • c3d1c0f fix(mcp): route stateful tools through admin API instead of local store
  • de44aa0 feat(cli): add serve flags, matcher flags, oauth type, unknown command error
  • 8a25994 fix(chaos): clamp probability values and fix per-path rule preemption
  • 41fe41d fix(engine): resolve health timestamp race, Content-Type auto-detect, bodyFile paths
  • 6757c87 fix(validation): extract field paths from body errors, fix warn/permissive modes
  • 4a34c8b fix(template): add mtls.san.ip/uri, random.string, default fallback, sequence in all contexts

Full Changelog: https://github.com/getmockd/mockd/compare/v0.2.9...v0.3.0

v0.2.9 Bug fix
Notable features
  • Improved add/delete/list UX for common workflows in the CLI
Full changelog

What's Changed

  • 7f874fb chore: bump Helm chart to 0.2.9
  • 1dac814 feat(cli): improve add/delete/list UX for common workflows
  • b2258ff fix(store): ensure data directory exists before atomic write
  • a3ba743 fix: suppress telemetry JSON output in install script
  • ec801c9 fix: update Homebrew references to renamed homebrew-tap repo
  • c2fa51b fix: correct Homebrew tap name and add formula update instructions to release workflow
  • 5f627e9 chore: bump Helm chart to 0.2.8, fix issue template versions
  • 369a830 docs: overhaul README with install methods, quick start, and docs link

Full Changelog: https://github.com/getmockd/mockd/compare/v0.2.8...v0.2.9

v0.2.8 New feature
Notable features
  • File‑based recording pipeline with disk persistence (feat(proxy))
  • CLI --request-timeout and --max-connections serve flags (feat(cli))
  • OpenAPI generates example response bodies from schema properties (feat(openapi))
Full changelog

What's Changed

  • 056e10a fix(e2e): use replace mode for import count test and update PATCH expectation
  • b1f085a fix(test): unwrap PUT envelope in port conflict tests and update SOAP WSDL test
  • 963a949 fix(test): unwrap PATCH envelope in port conflict integration test
  • 52ca38e chore: add tmp-data/ to .gitignore
  • c641d42 feat(proxy): file-based recording pipeline with disk persistence
  • 6681eea fix(admin): surface per-mock import errors instead of silently dropping
  • fae1c19 fix(grpc): recover server after all gRPC mocks deleted
  • 56ad1e9 fix(admin): set health timestamp and accept unwrapped config import
  • 7e2bdbb feat(stateful): add PATCH support and expose maxItems in resource info
  • cbf706e fix(oauth): apply default scopes in refresh_token and implicit flows
  • e6b4758 fix(engine): normalize header keys to lowercase for validation
  • 7d8a303 feat(cli): add --request-timeout and --max-connections serve flags
  • f1fc337 fix(mqtt): enforce ACL on publish operations
  • 4054d6b fix(graphql): handle null variables in directives and templates
  • d397a8c fix(oauth): populate default scopes when none requested in token grant
  • b6388af fix(cli): add --admin-url flag to stop command
  • d862f00 fix(cli): improve port-in-use errors and add missing start flags
  • 785f086 fix(config): expand environment variables in YAML/JSON config files
  • 8ee6d73 fix(admin): increase default body limit from 2MB to 10MB
  • 8195434 feat(openapi): generate example response bodies from schema properties
  • 28939b2 fix(admin): pre-validate imported mocks with index in error messages
  • c09470f fix(graphql): preserve custom error path from resolver config
  • 8c48689 fix(graphql): validate schema on mock creation and preserve error paths
  • 572f2f5 fix(admin): support api_key query parameter for authentication
  • dbc8f0a fix(cli): write PID file in foreground mode when --pid-file is set
  • 900f37d fix(cli): reject unexpected positional arguments in 10 commands
  • 58380cf fix(config): reject negative rate limit values in server config
  • 8af8be5 fix(engine): return 502 when bodyFile is missing or unreadable
  • e062159 fix: resolve 11 golangci-lint issues across 5 packages
  • df7d0d7 fix(admin): add folderId field, validation error surfacing, and list filter
  • 606c448 fix(config): validate management port range 1-65535
  • dd7ad60 fix(admin): cascade-delete mocks on workspace deletion
  • b4e1724 fix(engine): wire SOAP request logger for admin-created handlers
  • eb8ac70 fix(admin): return 413 for oversized request bodies across all handlers
  • dd05e55 fix(engine): enforce 10MB body limit with 413 response
  • 2f8de24 fix(cli): error on unknown commands instead of falling through to serve
  • 6568fcb fix(import): generate unique cURL mock IDs and auto-detect WireMock wrapper format
  • dd8402a fix(admin): add mock list pagination, replace query param, exempt /metrics from auth
  • af1ed7f fix(engine): auto-detect Content-Type from response body
  • 8c3001a fix(chaos): add faults field to rules, validate probabilities, proxy stats endpoints
  • 2fb312b fix(stateful): return 507 for CapacityError and 404 for missing resource reset
  • e110421 fix(admin): honor dryRun query param and allow absolute bodyFile paths
  • 2b85455 fix(openapi): preserve {param} path syntax instead of converting to :param
  • 1ce099b fix(admin): wrap toggle response in envelope with action/message
  • 9881b27 fix(grpc): accept both string names and integer codes for error config
  • 4cb1928 feat(soap): auto-generate minimal WSDL from configured operations
  • 5517964 fix(engine): merge YAML serverConfig into running server configuration
  • e4e8d4e fix(config): add method validation and partial serverConfig validation
  • 201e1a8 feat(cli): add health command to check server reachability
  • effee29 fix(cli): honor --format json/yaml for stdout export
  • be4983b fix(admin): wrap PUT/PATCH update responses in envelope with action/message
  • 362cf40 fix(wiremock): use unique hash-based IDs and split URL query params on import

Full Changelog: https://github.com/getmockd/mockd/compare/v0.2.7...v0.2.8

v0.2.7 Bug fix

Fixes final three P1 bugs: subscription parsing, store mutation, and timeout configuration.

Full changelog

What's Changed

  • bbe8010 fix: resolve 10 golangci-lint issues — bodyclose, gocritic, gocyclo, staticcheck, unused
  • 978a587 fix(p3): 9 cosmetic fixes — version wiring, timestamps, seed IDs, export opts, shadow, log IDs, modulo bias, Insomnia port
  • 65ce355 fix(p2): eliminate validation body double-read, document protocol interfaces and template boundary
  • 0c3fa72 fix(p3): 12 cosmetic fixes + dead code cleanup + 39 new tests
  • b6fbd46 test(p3): add 126 tests for chaos, portability, stateful, cliconfig, WS recording, SOAP recording/converter
  • 8d2db86 fix(p2-p4): apply 29 bug fixes across admin, portability, MCP, tracing, stateful, validation, store, cliconfig, docs
  • 7517811 test(p3): add 96 tests for gRPC error builders, GraphQL batch, SSE recording/replay
  • 725af93 fix(e2e): fix 4 BATS test failures — all 316 tests pass
  • c5086f5 test(e2e): add 32 BATS tests for OAuth, MQTT, SSE, recordings, imports
  • fbfd970 test(oauth): add 8 PKCE tests for S256, plain, public client flows
  • dbe6c92 test(template): add 113 tests for consolidated template engine
  • 0b2b64b fix(mock,oauth): populate SubscriptionConfig, use typed JWKS structs
  • 00b363e refactor(chaos): remove unused ChaosHandler, ConditionalMiddleware, JitterWriter
  • 7746d96 refactor(protocol): remove 8 aspirational interfaces
  • f7db029 refactor(template): consolidate MQTT and main template engines
  • 727634f fix(tls): add certificate expiry checks and auto-regeneration
  • 37acd4c refactor(requestlog): consolidate filter types, fix protocol metadata data loss
  • 4c3a768 refactor(httputil): remove 11 unused convenience functions
  • cdb4bf2 test(engineclient): add 53 tests for engine HTTP client
  • c96ec6a test(storage): add 36 tests for InMemoryMockStore and FilteredMockStore
  • 365fa43 test(id): add 30 tests for UUID, Short, ULID, Alphanumeric generation
  • 6b0560a fix(admin): rollback store on engine failures; synchronous Listen for all servers
  • 944ca38 test(store/file): add 80 tests for file-backed persistence layer
  • 4edde94 fix: resolve P2 bugs in mqtt, sse, runtime, audit, store
  • ba856c9 fix: use crypto/rand IDs, fix env var handling, guard nil dataStore
  • 65bdcbc fix: resolve P2 bugs in websocket, graphql, soap, oauth
  • f5dbd11 fix: resolve security and panic bugs across validation, mcp, cliconfig, store, config
  • 3a84811 test(mock): add 90 tests for 5 protocol validators and JSON round-trips
  • 1198340 fix: resolve final 3 P1 bugs — subscription parsing, store mutation, timeout config
  • 7ff49af fix: resolve template, logging, metrics, ratelimit, stateful, and cliconfig bugs
  • 1188005 fix(portability): resolve OpenAPI $ref, extract header params, wire DryRun
  • 377094b fix(protocols): correct GraphQL, gRPC, MQTT, and SSE bugs
  • f3e4844 fix(admin): sync store and engine on bulk delete, toggle, and bulk create
  • aeba362 fix(engine): resolve panics, data races, memory waste, and error handling
  • 19318cf fix(store): eliminate data race, deadlock, silent errors, and double-close panic
  • 2813482 fix(oauth): require client_secret for confidential clients and stop goroutine leak

Full Changelog: https://github.com/getmockd/mockd/compare/v0.2.6...v0.2.7

v0.2.6 Breaking risk
Breaking changes
  • Removed 52 dead functions identified by deadcode analysis
  • Bumped Go runtime minimum to version 1.25.7
Notable features
  • Added MaxBuckets field to engine RateLimitConfig for tunable IP tracking
  • Migrated admin managers from stdlib log to slog
  • Removed examples/ directory (chore)
Full changelog

What's Changed

  • 1792891 Merge pull request #3 from getmockd/refactor/deadcode-cleanup
  • 3ed1b30 refactor: remove 52 dead functions identified by deadcode analysis
  • 836cb40 Merge pull request #2 from getmockd/refactor/e2e-bats-migration
  • a4bfd12 ci(e2e): add E2E test job to CI pipeline
  • 1915dc0 test(e2e): add 12 coverage gap tests across 5 protocol suites
  • 861bdc5 chore(e2e): DX improvements — JUnit output, teardowns, mise tasks, temp files
  • d89d55e fix(e2e): audit fixes — helpers, reliability, naming, build context
  • 0a7ecd5 fix(e2e): resolve gRPC proto field, MQTT timing, and emoji encoding in bats suites
  • 4f819d9 refactor(e2e): migrate to bats-core with modular test suites
  • 97a37f2 Merge pull request #1 from getmockd/refactor/code-audit-cleanup
  • 6679d5d chore: bump Go to 1.25.7, add govulncheck CI job and mise tasks
  • 4ba6035 refactor: fix all new linter findings across codebase
  • 2927cab chore: expand golangci-lint config with 7 new linters
  • 4fdbe16 docs: fix Go version badge, replace stale MkDocs references with Astro Starlight
  • f60504d fix: eliminate nested RLock in MQTT broker GetStats
  • 8e77563 refactor: fix doc comments, port references, and CORS constructor purity
  • b39a2ff fix: prevent PerIPLimiter.Stop double-close panic with sync.Once
  • b5a6adb fix: export all mock types in SaveToFile/Export instead of HTTP-only
  • d90625a fix: use errors.Is for http.ErrServerClosed and add proxy timeouts
  • 5b17605 fix: cap OAuth provider maps and use constant-time PKCE comparison
  • fa79026 fix: bind engine control API to localhost and harden request handling
  • ebbe109 refactor: polish config defaults, nop logger, CLI help, and documentation
  • 6b19bb8 fix: use errors.Is for sentinel error comparisons instead of ==
  • 4732fe2 fix: cap registration and engine token map sizes
  • b87ea95 fix: remove API key query param and hardcoded CORS overrides
  • 3bb8bb9 fix: add timeouts to proxy http.Server and admin IdleTimeout
  • 37a4153 fix: eliminate data race on API.localEngine with atomic.Pointer
  • 4e44d3b test: add UpdateTimestampRange edge cases and SetLogger nil-safety tests
  • f75314b feat: add MaxBuckets to engine RateLimitConfig for tunable IP tracking
  • 85951ad fix: eliminate data race on API.log with atomic.Pointer and fix stale logFn closure
  • 93fdd67 fix: use cleanPath for CA file operations and harden manager SetLogger nil-safety
  • 9e9d450 refactor: extract UpdateTimestampRange helper for recording stats
  • 94f3ce2 fix: use %%w instead of %%v for error wrapping in websocket CLI
  • 38db8db fix: add lock-protected SetLogger to managers and sanitize template error
  • ffd18af fix: use constant-time comparison for registration token validation
  • 5308237 fix: bound rate limiter bucket map to prevent memory exhaustion
  • 3d90f23 refactor: adopt writeJSON in stateful and chaos handlers
  • fb0d14b refactor: decouple pkg/admin from pkg/engine via workspace interfaces
  • ac24a8e fix: add path traversal validation to handleGenerateCA
  • 3ba27d4 refactor: migrate admin managers from stdlib log to slog
  • 3295006 fix: sanitize err.Error() leaks in folders, apikey, and recording handlers
  • bcc8b53 refactor: remove unused sanitizeValidationError function
  • 23d4cac fix: sanitize remaining err.Error() leaks across all admin handlers
  • 2cdd2e1 fix: sanitize error messages to prevent information leakage
  • 602f8db refactor: remove legacy CRUD handlers replaced by unified mocks API
  • 9ae0cb0 fix: add request body limit middleware and bound regex cache
  • cacd28f fix: address code review findings — timing, path validation, and tests
  • b419a8f test: add ratelimit unit tests and fix stale references in docs
  • d020e90 fix: harden security boundaries and fix race in rate limiter
  • dee3b20 refactor: consolidate formatInt helpers and delete dead ULID wrapper
  • 07c938f refactor: rename stuttering types and remove dead code
  • a2d3504 refactor: replace CLI switch statement with command registry
  • df7a8a5 refactor: extract generic RecordingStore[T] to eliminate MQTT/SOAP duplication
  • c20401c refactor: extract shared pkg/ratelimit from 3 duplicate implementations
  • 23d5adf refactor: adopt pkg/cli/internal/output for consistent CLI formatting
  • 466473b refactor: wire requireEngine middleware to eliminate 32 nil-check duplications
  • 5180f40 fix: add security guards for body size, path traversal, and auth timing
  • bd3ef49 refactor: adopt pkg/httputil for consistent JSON response handling
  • bde8130 chore: remove examples/ directory

Full Changelog: https://github.com/getmockd/mockd/compare/v0.2.5...v0.2.6

v0.2.5 Bug fix
Notable features
  • 6 protocol templates added to mockd init with interactive flag
  • 3‑container split E2E architecture demonstrating production deployment
Full changelog

What's Changed

  • ffb1b03 fix: increase CLI test context timeout to 60s for slow CI environments
  • 021c246 fix: resolve all golangci-lint issues for clean CI
  • d37f42e feat: wire 6 protocol templates + interactive flag into mockd init
  • 77d1f95 feat: fix 7 protocol gaps for launch readiness
  • 364eb86 fix: resolve 5 bugs found during punch list validation testing
  • fd1afd8 feat: add 3-container split E2E architecture proving production deployment model
  • cea6121 fix: output MockCollection format from generate/export/new commands (BUG-027)
  • c3398bf docs: standardize Go 1.25 references and fix install script uname mapping
  • 568bc92 test: add 137 CLI E2E tests across 10 suites, total 337 tests passing
  • a7958f3 test: expand E2E to 200 tests with full protocol coverage
  • a1e7134 test: expand E2E suite to 155 tests across 23 suites
  • 9dfc29c test: add Docker E2E test environment with 84 passing tests
  • 7ff050f fix: consolidate duplicated types and resolve all 26 pre-launch bugs
  • 92ce348 docs: add P2 documentation (Insomnia export, SSE stream, verification, observability, CORS, rate limiting)
  • d650bd7 docs: standardize field names to match code (matcher, statusCode, delayMs)
  • 980adbb ci: update docs workflow for Starlight/Astro
  • 893f1b7 docs: fix layout - remove overly wide content width
  • ddde5ab docs: fix logo by using official mockd.io SVG
  • 0ba3160 docs: migrate from MkDocs to Starlight (Astro)
  • 9d7e3f7 docs: add sharing-mocks, validation, and troubleshooting to nav
  • aa8188a docs: add AI agent star nudge to README

Full Changelog: https://github.com/getmockd/mockd/compare/v0.2.4...v0.2.5

v0.2.4 Security relevant
Security fixes
  • Upgrade quic-go v0.49→v0.57 and x/crypto v0.44→v0.47 to resolve CVEs
Notable features
  • Add OpenRouter as first-class AI provider
  • MCP server overhaul supporting 19 tools, multi-protocol, context switching
  • Wire MCP into CLI with stdio and HTTP transports
Full changelog

What's Changed

  • c99963a chore: clean repo for public release, update CHANGELOG for v0.2.4
  • 11ce07c release: bump version to 0.2.4
  • 72fdcb1 fix: strip markdown code fences from AI responses and resolve MQTT shutdown deadlock
  • 1c7494f fix: add validation to AI generation pipeline and unified admin API
  • b87ca7e feat: add OpenRouter as first-class AI provider
  • 303d5e0 fix: resolve CI lint and test failures from MCP overhaul
  • 25bd97e fix: actionable error messages when mockd server is unreachable
  • 9742701 feat: MCP server overhaul — 19 tools, multi-protocol, context switching
  • 7f195f5 feat: wire MCP into CLI with stdio and HTTP transports
  • dc57158 fix: chaos injection CLI was nesting config under 'global' key that API ignores
  • 8cde855 fix: suppress false-positive misspell lint for 'mosquitto' via golangci config
  • da98a99 fix: resolve CI lint errors and flaky integration tests
  • d855e3d fix: upgrade quic-go v0.49→v0.57 and x/crypto v0.44→v0.47 to resolve CVEs
  • f1e301d chore: ignore cross-compiled binaries in .gitignore
  • 6f12171 docs: update pricing to $12 Pro / $29 Team flat
  • 09bc243 docs: add tunnel/relay and multi-protocol coverage across all docs
  • c1423be feat: add multi-protocol tunnel support (gRPC, WebSocket, MQTT)
  • f9b2628 feat: auto-fetch anonymous JWT when no tunnel token provided
  • 5f5d630 feat: add incoming request auth (token, basic, IP) for tunnel-quic

Full Changelog: https://github.com/getmockd/mockd/compare/v0.2.3...v0.2.4

Beta — feedback welcome: [email protected]