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

25 shown

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]