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
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
- 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
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
Routine maintenance release for getmockd/mockd.
Changelog
Changelog
- 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
- 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
- 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
Routine maintenance release for getmockd/mockd.
Changelog
Changelog
- 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
- 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
- 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
- All mock state must be accessed through the admin store; prior direct access points are removed.
- 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
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
- --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
- 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
- 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
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
- 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
- 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
- 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
- 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
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
- Removed 52 dead functions identified by deadcode analysis
- Bumped Go runtime minimum to version 1.25.7
- 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
- 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
- Upgrade quic-go v0.49→v0.57 and x/crypto v0.44→v0.47 to resolve CVEs
- 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