Skip to main content

Specmatic Enterprise Release Notes

1.27.0 (2026-09-07)

Added

  • Added stateful OpenAPI mocking through type: stateful-mock in specmatic config, seeding an in-memory resource store from inline and external examples and preserving create, update, and delete semantics across requests.
  • Re-exposed the examples generate and examples fix CLI commands for OpenAPI, making it easier to generate example payloads and fix existing examples directly from the command line.

Changed

  • Fixed send-report command failing to start when --metadata was supplied.
  • Fixed OpenAPI and JSON Schema pattern matching to use search semantics, so unanchored expressions can match substrings while explicit ^ and $ anchors continue to constrain the corresponding boundary.
  • Fixed generated values for anchored patterns with alternatives and length constraints, including empty alternatives and partial anchors, so generated values remain valid for the original pattern. Unsupported regex structures will use the lenient fallback.
  • Insights reporting commands now accept --run-attempt and include it with raw report submissions, allowing reports from repeated executions of one CI run to be distinguished.
  • CI report publishing now accepts repository and build identifiers supplied through SPECMATIC_REPO_ID, SPECMATIC_BUILD_ID, -Dspecmatic.repo.id, and -Dspecmatic.build.id, in addition to command-line options.
  • Insights build, repository, branch, and run-attempt details can now be inferred from GitHub Actions, GitLab CI, Azure Pipelines, Jenkins, CircleCI, Bitbucket Pipelines, Buildkite, and TeamCity. SPECMATIC_* environment variables and -Dspecmatic.* system properties override CI-derived values.

1.26.0 (2026-09-03)

Added

  • Added support for column level filters in the HTML report
  • Added a validate_examples MCP tool for validating inline and external OpenAPI examples against their specification, with structured validation results and guidance when Docker paths prevent local validation.
  • Added Studio support for editing, renaming, and deleting inline OpenAPI and AsyncAPI examples directly in their source specifications, with changes written back to the correct nested or referenced location while preserving authored metadata.
  • Added Studio support for safely importing external OpenAPI and AsyncAPI examples into specifications and exporting inline examples to external files, with per-example Copy, Move, and Skip choices, batch conversion results, and capability-aware importability diagnostics.

Changed

  • Fixed request fixing in studio to preserve security scheme headers and query parameters and repair invalid security values.
  • Fixed regular expressions containing an unescaped . so matching and generated values use the same behavior and do not unexpectedly include line terminators.
  • License, telemetry, and utilization requests now support HTTP(S) proxies configured through JVM proxy properties or standard proxy environment variables, with NO_PROXY bypass support.
  • Improved GraphQL specification parsing for large schemas and clearer validation errors for missing or empty query roots and improved parser diagnostics for invalid OpenAPI, AsyncAPI, and gRPC specifications during report generation.
  • Use mock, test, run-suite, or backward-compatibility-check with --ci and the Insights repository/build metadata options to submit reports directly to Specmatic Insights. The separate send-report follow-up step is deprecated.
  • Improved Insights-backed backward-compatibility verdict messages to distinguish affected consumers, no reported consumers, strict-mode failures, Insights check failures, unavailable licenses, unsupported protocols, and missing operation requests.
  • Improved OpenAPI handling of default responses to ensure they only match undeclared statuses. Fixed issues with loading, validating and fixing default response examples. Now, the declared status of a default response example is asserted during contract tests and returned by mocks.
  • Renamed the central contract repository report to the Spec Metadata Report. The spec-metadata-report command and spec_metadata_report.json output are now the primary names, while the previous command name remains an alias and send-report continues to consume the previous report filename.

1.25.0 (2026-08-14)

Added

  • Added an MCP tool for running a complete Specmatic test suite by reusing the run-suite command.
  • Added support for starting MCP mocks directly with specification paths, a port, and example directories.
  • Added support for loading OpenAPI multipart/form-data request examples, including multipart content and external file references for mock.
  • Added APIs to load central lint configuration once and lint supplied specification content with that resolved configuration, avoiding a config repository clone for every lint operation.

Changed

  • Fixed GraphQL contract tests reusing state from a previous run.
  • Fixed loading of OpenAPI examples referenced through internal or external references, with consistent handling of scalar, structured, array, null, and Specmatic values.
  • Fixed OpenAPI multipart/form-data and application/x-www-form-urlencoded examples so their requests use multipart parts or form fields instead of a generic request body, allowing inline and external examples to match request patterns during test generation and mocking.
  • Fixed multipart mock request parsing to preserve each part's Content-Encoding, so multipart examples declaring an encoding can match the incoming request.
  • Fixed request examples for operations with an empty response body so path parameter examples are retained when a request body is present.
  • Fixed backward-compatibility change tracking for path parameters defined through $ref, preventing unchanged OpenAPI operations from being reported as changed.
  • Backward-compatibility checks now report newly added specifications as compatible when no corresponding specification exists on the base branch, and explain the verdict using the base branch name.
  • Synchronized the bundled multipart-form-data example schemas with the supported example structure.
  • Remote configuration repositories now refresh their cached checkout only when the remote revision changes.

1.24.0 (2026-08-10)

Added

  • Added an MCP tool for running backward-compatibility checks against OpenAPI, AsyncAPI, gRPC, and GraphQL specifications.
  • Added inline OpenAPI and AsyncAPI examples to Studio’s existing example tables and grouped views, with support for viewing details and content, and validating them.
  • Added OpenID Connect security-scheme support for OpenAPI contracts, using the configured token as bearer authentication.
  • Added support for backward-compatibility check tool in MCP for OpenApi,AsyncAPI,gRPC,GraphQL specifications.
  • Added the lint-server command for running linter APIs over HTTP. It loads central lint configuration at startup, reuses it for lint requests, and refreshes it in the background when the remote repository changes.
  • Added POST /lint-reports to generate JSON lint reports for specifications fetched from a URL.
  • Added GET /config/status to inspect central config refresh health and POST /config/refresh to request an immediate refresh.
  • Added /api-docs for interactive Swagger UI documentation of lint server APIs.

Changed

  • Example files are now discovered recursively in configured example directories, including nested directories for examples command and studio.
  • Improved AsyncAPI example validation in Studio to show clearly labelled errors from the message schema(s) with the fewest mismatches when a channel supports multiple message types, while preserving authored correlation IDs.
  • Contract tests now retry documented and undocumented 429 Too Many Requests responses. Retry delays honor Retry-After values expressed as seconds or HTTP dates while retaining compatibility with ISO-8601 timestamps, and every request and response attempt remains available to reporting integrations such as Studio.
  • Strict-mode OpenAPI loading now supports response examples for operations that have no request parameters or request body in the spec. Specmatic uses the first named example from the first 2xx response and reports clearer warnings for examples it cannot select.
  • Coverage reports now preserve an OpenAPI default response as default when the system under test returns a status that is not explicitly declared.
  • Backward-compatibility checks now send each affected operation to Specmatic Insights only once when multiple generated failures refer to the same operation.
  • Fixed nullable OpenAPI responses so top-level JSON null values are matched as JSON nulls without changing null-like scalar parameter values.
  • Improved multipart contract-test and mock behavior so specification-derived parts no longer assume filenames, example-provided filenames remain enforceable, and declared part media types are validated consistently.
  • Standardized optional XML attribute handling across OpenAPI and WSDL parsing and preserved source locations for OpenAPI validation diagnostics.
  • Updated the bundled LZ4 Java runtime to 1.11.1 to address CVE-2026-59949, which could crash the JVM when native XXHash APIs received invalid byte-array ranges.

1.23.0 (2026-07-31)

Added

  • Async contract tests now support substitutions, including placeholder resolution in requests, response capture, and shared state across before, test, and after.
  • Added the ability to safely rename specifications and associated files in Studio, with Specmatic configuration paths updated automatically.
  • Added AsyncAPI Schema Object support for byte and binary formats, escaped JSON Pointer component references, and root-level object constraints and property overrides alongside allOf.
  • Added support to report the fixture execution details in AsyncAPI CTRF and HTML reports

Changed

  • Fixed OpenAPI allOf conversion so a main-schema property overrides a matching member property without generating both optional and required keys.
  • Fixed multi-spec mocks to route requests to the most specific matching base-URL path.
  • Fixed Studio reporting so contract tests whose before fixture fails are still included in the results.

1.22.0 (2026-07-25)

Added

  • Added load-time validation for before and after fixtures in external examples, with fuzzy matching for clearer errors.
  • Added ability to rename example files directly in Studio from the examples tab for OpenAPI and AsyncAPI specifications.
  • Added Swagger views for OpenAPI specifications in Studio and the ability to switch between editor and view, with auto-lint when a dependency changes.
  • Added AsyncAPI example structure validation including fixture controls and payload structure for external examples.
  • Added matcher support for JSON object and array containment, including mixed operands, array slicing, length and cardinality constraints, and exact matcher references resolved from example data.

Changed

  • Fixed: Multipart schema being used to generate filename
  • Improved backward compatibility check logs for changed externalised examples.
  • Fixed the backward compatibility check file count to exclude externalised examples that are not checked directly.
  • Updated GraphQL, gRPC, and AsyncAPI backward compatibility checks to identify externalised examples in conventional *_examples directories.
  • Fixed Studio example structure repairs so template values are preserved.
  • Improved Insights-based backward-compatibility check for OpenAPI by accounting for the content types.
  • Improved Insights-based backward-compatibility check for AsyncAPI by accounting for the consumer/provider send/receive action direction.

1.21.1 (2026-07-17) (Hotfix)

Changed

  • Fix example to operation exchange matching logic that broke retry and dlq scenario based tests

1.21.0 (2026-07-17)

Added

  • Added diagnostics and syntax highlighting support for async example validation in Studio code editor.
  • Added support for JSON schema confluent wire format in async
  • Added per-spec run options for Swagger/OpenAPI, actuator, and Swagger UI.
  • Added MCP mock support for OpenAPI, gRPC, GraphQL, and AsyncAPI specifications.

Changed

  • Ability to mock exact values of security parameters using the example requests
  • Added MCP mock fixes for spec-file path resolution and gRPC/GraphQL specmatic.yaml serialization.
  • Improved isolation of Arazzo workflow inputs, step outputs, and workflow outputs under their workflow namespace, while preserving local shorthand and explicit cross-workflow runtime expressions.
  • Improved Arazzo validation, diagnostics, error messages, and user feedback.
  • Improved Arazzo handling of optional request bodies, default response statuses, and scalar value matching.
  • Improved Arazzo workflow editing, server selection, drag-and-drop behavior, and workflow rendering on Safari macOS.
  • Migrated Arazzo to the official 1.0.x and 1.1.x schemas, with generated Arazzo specifications now using the official schema.
  • Improved Arazzo support for multiple workflow input scenarios and shared default inputs.
  • Improved Arazzo drag-and-drop workflow editing in Studio with proximity connections and automatic workflow resizing.
  • Improved Arazzo source resolution for single-source specifications and reusable references.

1.20.0 (2026-07-06)

Added

  • Added support the following WSDL features
    • substitution groups
    • polymorphic type extension matching
    • abstract types and elements
  • Added Arazzo support across enterprise test, mock, and validate and run-suite CLIs, including multi-spec test and mock execution with combined reports.
  • Added structured JSON report file export by default alongside CLI terminal output, including precise line and column numbers (line, column) for all reported diagnostics in lint command.
  • Added built-in security lint rules inspired by OWASP API Security Top 10, detecting potential vulnerabilities such as sensitive credentials in URL parameters, unbounded numeric schemas, and missing security scheme definitions.
  • Added new built-in lint rules for health check endpoints (health-*), pagination parameters and response structures (page-*), response header validation, and naming/structural constraint checks.
  • Added new lenient built-in ruleset into linter, which is now the default preset.
    • Includes all specmatic/* rules, but every rule is capped at warn so teams can adopt incrementally without breaking CI on day one.
    • Health endpoint rules (health-*) and pagination rules (page-*) are active at warn.
    • Naming/style conventions remain off.

Changed

  • WSDL parser performance was improved. Loading of complicated WSDLs should now be much snappier
  • Fixes to handle SOAPAction header case insensitively in mock, and fixes to other edge cases
  • Improved Arazzo workflow validation and example generation and runtime, including criteria-expression handling, runtime value resolution, interpolated expressions, clearer input validation, and more precise breadcrumbs for failures.
  • Configurable rules (custom YAML/JSON rule definitions) now execute natively in the linter engine, improving linting execution speed and removing external JavaScript runtime dependencies.
    • recommended ruleset is redefined. It now extends lenient and restores specmatic/* rules to their original severities (warn stays warn, error becomes error). Core correctness rules are promoted to error. Documentation-quality rules are newly active at warn. Naming conventions remain off.
    • strict ruleset is redefined. It now extends recommended and adds naming conventions at error (paths-kebab-case, json-property-names, path-parameters-snake-case, query-parameter-camel-case, schema-definition-camel-case, uri-names) and promotes documentation completeness fields to error.

1.19.0 (2026-06-30)

Added

Changed

  • Coverage CTRF reports now include spec-level coverageMetrics in each execution detail, including covered-operation counts and both filtered and total operation counts for the spec.
  • Improved bundled CTRF reporting so coverage execution details now include spec-level coverage metrics and match operations back to the correct spec more reliably across absolute, relative, and normalized paths.
  • Improved bundled backward-compatibility HTML reporting so breakages in shared specs are attributed to the shared spec that actually changed, instead of being misreported against a referring spec when only one consumer is affected.
  • Fixed a regression in negative test generation so undeclared 4xx response variants such as 405 Method Not Allowed and 415 Unsupported Media Type continue to be exercised instead of being filtered out.
  • Improved URL handling across Postman import, proxy routing, remote spec loading, and web-source caching so mixed-case schemes, authorities with underscores, preserved user-info, and explicit ports behave more reliably.
  • Improved config-driven target resolution so Specmatic preserves scheme, host, port, path-prefix, and certificate details separately instead of flattening them into a base URL.
  • Substitutions are now lenient by default, i.e. missing variables now use auto-generated values, while enabling strictMode restores the previous behavior of failing instead of generating.
  • Substitutions stored values and data lookups can now use composite JSON objects and arrays and interpolated expressions, and unresolved substitutions now fall back to dictionary-backed generation when available.
  • Resolved the issue with partialize example that led to metadata keys such as delay-in-seconds being omitted via Studio during the partialization process.

1.18.0 (2026-06-18)

Added

  • Added support for generating, validating, and using OpenAPI examples for 405 and 415 request-rejection responses across enterprise test, mock, and Studio example flows.
  • Improved rejection-example handling so repaired and generated 405 and 415 examples preserve the failing HTTP method or unsupported content type that triggered the response.
  • Improved example-validation breadcrumbs so 405 and 415 failures point back to the original external-example JSON paths for method and content-type fixes.
  • Studio now surfaces 405 example-generation failures more clearly and avoids stale editor diagnostics during teardown.

Changed

  • Breaking: Removed the deprecated interactive examples server. Mitigation: use Studio for example generation, validation, and other operations.

1.17.0 (2026-06-15)

Added

  • Added support for nested objects and arrays in query-parameter objects across bundled OpenAPI validation and example flows.

Changed

  • Improved query-parameter diagnostics so nested object and array failures point to the actual serialized keys, and collisions between scalar and object-style query params are handled more pragmatically.
  • Enterprise now loads and validates OpenAPI examples for 422 responses in the bundled runtime.
  • Improved OpenAPI source-location tracking so bundled validation and backward-compatibility failures can retain the original schema source pointer, including referenced schemas.
  • Improved specmatic config upgrade handling for legacy configurations so global mock and test settings stay under top-level specmatic.settings.
  • Updated bundled reporting and licensing flows so license-aware CLI operations support --debug trace logging while retaining backward-compatible --log-level support.
  • Improved bundled license CLI output with clearer success, warning, and error cues, including colorized log levels on ANSI-capable terminals.
  • Studio now renders the OpenAPI examples workspace natively instead of inside an iframe, with smoother generate, validate, bulk-fix, and drilldown flows.
  • Studio now shows backward-compatibility issues as structured editor diagnostics with direct jumps to the affected source locations, including flattened query-parameter paths.
  • Studio now detects older Specmatic config files during export and offers an in-place V2 to V3 upgrade before writing the workflow.

1.16.1 (2026-06-11)

Added

  • Added bundled MCP server support for contract tests, mock servers, and backward-compatibility execution flows.
  • Backward-compatibility CTRF reports now include structured metadata for each breaking change, including specFile:lineNumber:columnNumber and rule-violation information.

Changed

  • Reduced delays and timeout risk during DNS resolution when enterprise reporting flows connect to Specmatic Insights.
  • HttpStub can now load badRequest examples that include extra out-of-spec query parameters and respond with the example's provided response data.
  • Improved federated and filesystem-based CTRF metadata handling so spec-path reporting is more reliable in enterprise report flows.
  • Restored AsyncAPI v2 operation-exchange handling after a regression.
  • Improved Arazzo schema validation, drilldown scoping, and Studio mock event rendering.
  • Bundled linter updates now add HTML lint reports with line numbers, improve missing-field diagnostics, clarify built-in ruleset naming, and improve OpenAPI 3.0 rule behavior.

Dependency and Platform Updates

  • Updated the bundled Specmatic runtime to 2.46.5.
  • Updated the bundled linter to 0.1.6.

1.16.0 (2026-06-03)

Changed

  • Breaking: Removed legacy async coverage, stub-usage, and test-data report generation in favor of the newer CTRF plus HTML reporting flow. Mitigation: use the CTRF report instead.
  • Simplified async and gRPC reporting paths to align the enterprise distribution with the newer reporting model.
  • Improved Arazzo HTML report coverage and report-generation verification.
  • Fixed example loading across multiple directories (central repository and local filesystem) so examples are no longer incorrectly overridden.
  • Bundled linter capabilities now include profiles, rule categorization, maturity display values in reports, and better local config handling for --config.

1.15.0 (2026-06-01)

Added

  • Added test-executor/orchestrator configuration support to the enterprise distribution.
  • Bundled linter capabilities now include maturity levels and rule-catalog reporting.
  • Added support for oneOf in an OpenAPI XML schema.

Changed

  • Bundled the newer Specmatic runtime that removes legacy coverage and usage report outputs in favor of CTRF plus HTML reporting.
  • Improved backward-compatibility report path handling and source-location accuracy through the bundled runtime update.
  • Improved the diagnostic shown when a required form field is missing in a request payload.
  • External examples whose Content-Type carries a charset parameter are now matched to their API even when the spec's Content-Type omits the charset.

Dependency and Platform Updates

  • Updated the bundled linter to 0.1.2.

1.14.3 (2026-05-28)

Added

  • Added the enterprise lint command.
  • Added command-level backward-compatibility coverage for GraphQL and gRPC flows.
  • Introduced the bundled Specmatic linter into the enterprise distribution.

Changed

  • Bundled the newer Specmatic runtime with richer backward-compatibility CTRF reporting, including improved multi-spec support and WIP-aware reporting behavior.
  • Updated the enterprise build/runtime image setup to support extra APK dependencies such as Node.js, npm, and wget where needed.

1.14.2 (2026-05-21)

Added

  • Added support for GraphQL oneOf directive handling in the enterprise distribution.

Changed

  • Improved GraphQL schema resolution, argument matching, and request generation, especially for bare enum values and nested JSON structures in responses.
  • Temporarily pinned wire-schema for Java subprojects as part of the release packaging adjustments.

1.14.1 (2026-05-13)

Added

  • HTML report now shows WIP as an explicit status with an hourglass icon.
  • Coverage console report now shows a WIP remark when there are WIP tests.
  • WIP counts now appear under a WIP label instead of the errors label.
  • config upgrade can now auto-upgrade V2 Specmatic configs to V3.
  • Host and port no longer need to be configured; both are now optional.

Changed

  • Fixed WIP-test filtering so successful WIP tests are handled correctly in the HTML report.
  • GraphQL tests now generate scenarios where the request body is omitted.

1.14.0 (2026-05-11)

Added

  • Use the base URL as the SOAP URL for abstract WSDLs that provide no port.
  • Added WSDL attributeGroup support.
  • Added SOAP response header support for WSDL.
  • HTML reporter now renders before and after fixture details.
  • Added WSDL support for wildcards, inherited attributes, and simpleContent extensions.
  • Added support for style: form, explode: true when a query parameter is defined as an object.

1.13.1 (2026-05-05)

Added

  • Improved backward-compatibility check (BCC) performance.

1.13.0 (2026-05-04)

Added

  • Backward-compatibility check progress can now be viewed in real time; previously nothing was printed for long-running checks.
  • Backward-compatibility checks now render an operation-level verdict.
  • Running contract tests can now be halted from the Studio UI.

Changed

  • All enterprise commands now render usage help.

1.12.0 (2026-04-27)

Added

  • Studio can now enhance an existing OAS from the UI: when a test fails with an unexpected out-of-spec response, that response can be auto-added to the specification.
  • Upgraded Bouncy Castle dependencies to patch a CVE.

Changed

  • Fixed generative stub handling under Accept negotiation.
  • Fixed the selected/total counts in table headers when filters are applied.
  • Fixed "select to run" on OpenAPI Studio contract tests when the table has been filtered by filters or test statuses.
  • Editors now validate syntax before saving content to the filesystem.

1.11.1 (2026-04-23)

Changed

  • Filters can now be applied to schema resiliency tests, with corrected response status and content-type evaluation.
  • Fixed a regression resolving external discriminator refs.
  • Fixed Accept-header negotiation in mock response selection.

1.11.0 (2026-04-20)

Added

  • Improved the accuracy, consistency, and explainability of OpenAPI coverage, contract-testing, and stub-usage reporting, with richer metrics and reasoning data for test-execution decisions, skipped scenarios, and mock usage.
  • OpenAPI UI tables are now grouped on the five primary identifiers — path, method, request content-type, status, and response content-type — rather than just path, method, and status.

Changed

  • Breaking: Content-Type is now determined based on the SOAP version; previously any content-type was allowed. Mitigation: update your examples to specify the expected Content-Type, and ensure the backend follows SOAP standards for content-types.

1.10.1 (2026-04-15)

Added

  • Added backward-compatibility check (BCC) support for AsyncAPI.
  • Upgraded Kafka clients to patch a CVE.

Changed

  • Fixed an Avro bug serializing and deserializing union types containing null.

1.10.0 (2026-04-13)

Added

  • Added support for SOAP choice and simpleType.
  • A connectivity failure in any contract test is now handled explicitly and aborts the remainder of the suite.
  • HTML reporter now renders the appropriate test-detail message in the test details "detail" section.
  • Added support for "web" sources in V3 config (previously available in V1 but never added in V2).

Changed

  • Breaking: Request bodies are no longer marked optional unless explicitly specified; previously an unspecified request body defaulted to required. Mitigation: explicitly mark request bodies as required where needed.
  • Fixed a serialization exception when mtlsEnabled was set in a reffed-out runOptions.
  • --spec-file and --dir paths are now resolved against the command's working directory before validation, avoiding a spurious validation failure.
  • Fixed a typo in the BCC console output.
  • Fixed an Avro bug where integers could fall outside the applied min/max bounds.
  • Malformed GraphQL queries no longer throw an NPE during parsing.

1.9.3 (2026-04-02)

Added

  • Specs from specmatic.yaml are now loaded just before Studio starts, so they are available within the Studio session.

1.9.1 (2026-03-27)

Added

  • Improved the error message when a git clone fails due to authentication or permission issues.
  • validate now also checks specs registered in specmatic.yaml (e.g. in the central repo), in addition to those in the current directory.
  • Studio can now see .specmatic in the file tree.
  • validate now skips async specs that reference an Avro schema registry, since reaching the registry is not always possible.

Changed

  • Preserved the "partial failure" state when adding a breadcrumb or message to a failure.

1.9.0 (2026-03-24)

Added

  • New run-suite enterprise command that manages the full lifecycle of mocks and contract tests.
  • Studio now reports governance-criteria results, such as whether a minimum example-coverage percentage is met.
  • Async HTML report now shows retry and DLQ messages by retaining that information in the CTRF report under the outputs key.

Changed

  • Breaking: The CTRF report output field is now outputs and is an array of outputs instead of a single object. Mitigation: read outputs if you parse the CTRF report for internal usage.
  • Fixed Studio disabling interactions after run-suite execution, and improved performance for large drilldowns.

1.8.0 (2026-03-22)

Added

  • Added support for interpolated OAS paths, such as /order/{orderId}-${userId}.
  • With V3, adapters can now be specified per specification as well as globally; previously only global adapters and hooks were supported.
  • Unnecessary transport headers are now dropped when recording a spec via proxy.
  • Browser metadata is now dropped from proxy header recordings.
  • Dictionaries can now be generated from within Studio, with or without examples.
  • Studio can now bind to a specific host/port combination.
  • Studio now has a button to convert example data into a partial example.

Changed

  • Fixed regex matcher support on the mock side.
  • Fixed a matcher-token parsing issue where a regex matcher containing a comma would fail.
  • missedOperations and notImplementedOperations are now both derived from coverage status.
  • Studio mock server now loads the dictionary.

1.7.1 (2026-03-11)

Changed

  • Examples associated with a filtered-out API are now filtered out too, instead of appearing orphaned.
  • The "Bearer" prefix in bearer tokens is now treated case-insensitively.
  • Filtering now behaves consistently between test and mock.

1.7.0 (2026-03-09)

Added

  • Studio editors now support common cross-platform keybindings, mirroring shortcuts from editors like VS Code.
  • Async: added the ability to specify data constraints in the Avro schema and use them during contract testing and mocking.

Changed

  • Fixed resolution of reffed-out parameters from components/parameters in OAS 3.1.x.
  • Examples for a filtered-out operation are now ignored, fixing the unused-examples issue typically seen with --strictMode.
  • Fixed example import to handle no-body operations and to enable parameter importing for OAS.

1.6.0 (2026-03-05)

Added

  • Added support for mTLS in test and mock.
  • Added the ability to retrieve interactions recorded by the OAS HTTP mock.

Changed

  • Fixed mock logs broken by a recent change.
  • Fixed scrolling on the file tree in the left sidebar.

1.5.1 (2026-03-05)

Added

  • Studio now shows an alert when a failure is caused by hitting the license threshold, so the cause is clear.
  • Async: added support for key bindings.

Changed

  • HttpStub now uses the provided config file and generates the legacy stub-usage report correctly.

1.5.0 (2026-03-02)

Added

  • Studio mocks now auto-reload when a Specmatic config change is detected.
  • Enterprise now supports a Redis mock.
  • Studio can now auto-reload drill-down details for an operation, letting users view request and response details in real time.

Changed

  • Breaking: Fixed a loop-test failure caused by security-scheme overrides in the spec.
  • CLI arguments for test now consistently override config values.
  • HttpStub now responds with the spec-defined bad-request format for invalid incoming requests.
  • Filters now work for paths with a leading and trailing / in the OAS.
  • Fixed filtering of test operations in the Studio UI for shadowed paths.
  • Fixed array-of-objects support in GraphQL.

1.4.0 (2026-02-25)

Changed

  • Invalid dictionary-file references are now reported clearly instead of failing silently.
  • Fixed a regression where HttpStub did not log example directories on load.
  • HttpStub now renders inline example information when responding to a matching request, similar to external examples.
  • Fixed resolution of templated values in V3 config.
  • Fixed resolution of path-level parameters when parsing OAS 3.1.x.

1.3.1 (2026-02-24)

Changed

  • The CTRF report is now generated even when there is no mock interaction and no tests are run.

1.3.0 (2026-02-24)

Added

  • Specmatic mock now returns a Swagger URL when asked for the typical Swagger URL path.
  • Specmatic now exposes a _specmatic/health health-check endpoint to indicate when the mock and proxy are ready to serve requests.
  • Added support for paths reffed out to components/schemas/pathItems.

Changed

  • Two OpenAPI specs that are semantically and structurally identical except for example text are now correctly treated as backward-incompatible.
  • Specmatic no longer creates a .specmatic folder when no git repository is defined in the config file.
  • Arazzo now generates mermaid-safe IDs for workflows whose names contain spaces.
  • Arazzo can now handle nullable schemas across OAS 3.0 and 3.1.

1.2.2 (2026-02-21)

Added

  • Basic Accept-header negotiation is now performed when responding to mocks and when running contract tests.
  • HTML reporter now renders WIP coverage status.

Changed

  • Reformatted fixture-execution details shown in Studio for OpenAPI and AsyncAPI.
  • Backward-compatibility checks can now resolve and verify changes in reffed-out headers.
  • Fixed an AsyncAPI Arazzo workflow-generation regression; AsyncAPI operations are again visible in the sidebar for drag-and-drop creation.

1.2.1 (2026-02-18)

Added

  • The example server now writes examples to a directory specified in the Specmatic config, instead of always using the implicit examples directory.
  • Studio now shows fixture-execution details per OpenAPI and AsyncAPI test.

Changed

  • Fixed example validation for examples containing matchers.
  • Equality matches now work with floating-point values.
  • Dictionaries can now be generated from examples containing matcher expressions.
  • Fixed dictionary generation for reffed-out scalar schemas.

1.2.0 (2026-02-17)

Added

  • HTML reporter now renders the actuator URL in the Specmatic config section.

Changed

  • Fixed V3 config serialization for path fields.
  • Excluded operations now display clearly on the specification table with grayed-out rows.

1.1.4 (2026-02-15)

Added

  • HEAD /base-path is now used as a health check.
  • Added centralized warning logging for missing config-resolved spec files.
  • Before and after fixtures can now be run for a test by specifying them in an externalized example.
  • Test, mock, and other workflows started in a session can now be exported to a Specmatic config for use in CI and automation.
  • Studio now supports async example validation.
  • The interactive server now loads examples defined in the Specmatic config in addition to the implicit examples directory.
  • Protocol feedback is now suppressed for protocols the spec does not use, so meaningful feedback is not lost in the noise.
  • Studio now shows pre-hook requests and post-hook responses when an adapter is used for tests.
  • Studio can now automatically bring up mocks and run contract tests from a Specmatic config within the UI.

Changed

  • Studio now fills inputs based on V3 config, and empty objects no longer appear when exporting.
  • Fixed WSDL example paths being lost in config.
  • CTRF report paths are now relative to the project root.
  • HttpStub now loads unique examples even when a directory is specified multiple times.
  • The "config not found" error no longer appears when --version is called.
  • The CTRF report is now generated reliably.
  • Fixed example loading so examples are loaded from implicit, explicit, and configured directories.
  • Fixed disabled interactions on Studio screens.

1.1.3 (2026-02-10)

Added

  • mock is now the primary command, with aligned user-facing stub text.
  • WSDL specifications can now be interactively tested via Studio.
  • Added the ability to run async tests in Studio.
  • Added async mock support in Studio.

Changed

  • When coverage requirements are not met, the CTRF report is now always generated first instead of exiting immediately.
  • Fixed wiring that loads system properties (introduced while moving all configuration to config params and V3 config).

1.1.1 (2026-02-08)

Changed

  • Fixed BFF projects failing because example directories in a V3 spec were not loaded correctly.

1.1.0 (2026-02-08)

Added

  • Config V3 is now available, including a documented path for migrating from V2.
  • Before and after fixtures can now be specified per async test in externalized examples.

1.0.0 (2026-02-04)

Added

  • Interactive proxy in Studio.
  • Protocol is now sent when reporting feature utilization to the license module.
  • Lenient mode can now continue past an invalid OAS instead of exiting.
  • Environment variables can now be injected into specmatic.yaml by declaring templates in place of values.
  • Added regex support in matchers.
  • Added lenient test running (--lenient): tests can run with invalid examples, which are auto-skipped.
  • The log now shows the URL for an unreachable testBaseURL when running contract tests.
  • HTML report now shows the Specmatic config.
  • Config values in specmatic.yaml can now use fallback templates, e.g. license_path: "{HOME|USERPROFILE:unknown}/.specmatic".
  • Specmatic now allows configuring the output path for generated reports, defaulting to build/reports/specmatic.
  • V3 config now supports specifying examples at the spec level.
  • V3 config now supports async configuration instead of CLI arguments.
  • V3 config now supports gRPC configuration instead of CLI arguments.
  • The mock and test commands now work consistently across all spec types.

Changed

  • Breaking: 429 and 202 are no longer considered acceptable responses in a 200/201 test.
  • Breaking: The serviceType field in the CTRF report has been renamed to protocol for clarity.
  • Breaking: The GraphQL specType in the CTRF report has been renamed to graphqlsdl.
  • Fixed content-type and header handling in the proxy.
  • The actuator-not-found message is no longer logged unless an actuator URL was explicitly expected or set.
  • The fix button in the examples tab now removes extra out-of-spec headers.
  • Fixed a fuzzy-key-check bug (only when fuzzy mode is enabled) where the check could be downgraded to non-fuzzy.
  • Fixed a content-type matching regression so matching is attribute-aware and disallows ;charset=utf-8 when it should not be present.
  • Stopped generating a stub-usage report for WSDL mocks.
  • Handled recursive anyOf references in OpenAPI 3.1.
  • An inline response example with a request is now correctly rejected in strict mode instead of being used.
  • GET requests returning 404 are no longer marked invalid, fixing coverage issues in the CTRF and HTML reports.
  • CTRF report paths now use path-parameter style, e.g. /orders/{id} for /orders/123.
  • Fixed wiring of the bearer token from V3 config.
  • Mocks now stop gracefully when the SpecmaticContractTest interface is used.