We have just released version 5.58.6. Here is a list of the changes that came with the release:
Features
- Added near-miss diagnosis for unmatched HTTP requests with a per-field comparison table showing match/mismatch indicators, stub name headings, a "View Stub" link to edit the stub directly, and a "Show full stub JSON" toggle
- Added HTTP Request Log page with auto-refresh, expandable request details, and near-miss display for unmatched requests
- Added HTTP Passthrough Proxy mode that forwards unmatched requests to a real backend, with a blue "Proxied" badge in the request log and one-click stub creation from proxied requests
- Added FTP and SFTP drivers for file mocking, enabling record and replay of file-based integrations over remote FTP and SFTP servers alongside the existing local file system driver
- Added HAR file import support on the HTTP Import page, allowing you to import HTTP Archive files exported from browser DevTools to create stubs from captured traffic
- Added preview and filter for HAR and OpenAPI imports, with host, method, status, and URL filters plus per-entry selection and duplicate detection before importing
- Added REST API for importing mappings via curl or other HTTP clients, supporting all import formats (HAR, OpenAPI/Swagger, RAML, WireMock ZIP) including filtered import with
hostFilter,methodFilter,statusFilter, andurlFilterparameters - Added matches SWIFT field body matcher for IBM MQ, JMS, and File messaging mappings, enabling field-level matching on SWIFT MT messages by tag number and regex
- Added
swiftFieldHandlebars helper for extracting SWIFT MT message field values in dynamic response templates - Added header matcher types for HTTP stub creation, supporting
contains,matches(regex), anddoesNotMatchmatchers in addition to the defaultequalTo - Added HlsStreamTransformer for simulating HLS video streaming — serves dynamically generated
.m3u8playlists and.tsvideo segments from a single wildcard mapping, including multi-variant adaptive-bitrate (ABR) playlists with scenario-state-driven variant switching - Added enable/disable toggle for HTTP mappings — temporarily disable a mapping without deleting it using the eye icon in the mapping list
- Added support for uploading precompiled protobuf file descriptor sets (
.descand.protosetfiles) via the gRPC skeleton import UI, in addition to.protosource files - Messaging export/import (JMS, File) now includes the
data/directory in the exported ZIP, so dataSource-backed mappings (CSV lookup, Excel lookup, object store) work correctly when imported on another instance - Added strict error handling mode for Handlebars helpers via
trafficparrot.virtualservice.handlebars.throwErrors, which causes helper errors to throw exceptions (HTTP 500 or messaging failures) instead of embedding inline error strings in responses - Added
scanConsistencyparameter to the Couchbase N1QL dataSource helper, allowing you to choose betweenREQUEST_PLUS(consistent, default) andNOT_BOUNDED(faster) query scan consistency, plus improved error handling that returns error messages instead of exceptions - Added JMS performance monitoring to log total processing time of JMS messages, matching the existing IBM MQ performance monitoring capability
- Added namespace support to the
manageStateHandlebars helper usingnamespace/variableNamesyntax, allowing state isolation between different test scenarios - Added namespace support to the State Management REST API, enabling isolated state per scenario or test case:
- Create or update namespaced state using
PUT /api/state/{namespace}/{name} - Get namespaced state using
GET /api/state/{namespace}/{name} - List all state in a namespace using
GET /api/state/{namespace} - Clear all state in a namespace using
DELETE /api/state/{namespace} - Existing
/api/state/global/{name}routes remain unchanged for backward compatibility
- Create or update namespaced state using
- Added
PUT /api/configuration/files/{file}endpoint for creating new configuration files programmatically (returns 201 Created, or 409 Conflict if file already exists) - OpenAPI import now fetches content from
externalValueURLs in named examples, using the fetched response body as the mock response instead of a placeholder message - Added HMAC response signing built-in response transformer — computes an HMAC signature of the response body and adds it as a Base64-encoded header, configured via
transformerParameters.hmacSigningin the mapping JSON, supporting HmacSHA1, HmacSHA256, and HmacSHA512 algorithms for simulating webhook and API gateway authentication - Added OpenAPI schema check that validates HTTP mappings against OpenAPI specification files at startup, preventing startup if any mapping references a URL path or method not found in the specifications — enable with
trafficparrot.virtualservice.openapi.check.mapping.schema.on.startup=true - Added configurable IBM MQ response headers (
replyToQueueManagerName,replyToQueueName) in mapping JSON files with Handlebars template support, allowing dynamic control of response message routing headers - Added
trafficparrot.ibmmq.connect.options.accessQueue.inputproperty to configure how IBM® MQ queues are opened for input (consumer) operations, mirroring the existingaccessQueue.outputproperty for producers
Fixes
- Broker configuration panels (JMS, IBM MQ, File messaging) now show empty configuration fields as blank rather than rendering the literal text "null" when no value is configured
- Added path traversal prevention to the
objectStoreHandlebars helper to ensure file access stays within the data directory - Fixed OpenAPI 3.1 import to correctly handle JsonSchema types, generating proper example responses instead of failing with an error
- Fixed binary schema fields in OpenAPI imports to show a
(binary)placeholder instead of corrupted text - Improved error messages for unsupported external
$refschema references in OpenAPI imports
Changes
- Upgraded web UI framework from Bootstrap 3 to Bootstrap 5
- Upgraded from WireMock 2 to WireMock 3
- Simplified the HTTP Record page to show a single Recording URL input by default for the common case of recording one backend; click Record from multiple URLs to reveal URL pattern fields and record from multiple backends in one session
- Added
trafficparrot.virtualservice.grpc.tls.enabledandtrafficparrot.virtualservice.grpc.non.tls.enabledproperties to allow independently enabling/disabling each gRPC server port - New code should use the
TransformedRequest.like(Request)static factory method in place of the deprecatedTransformedRequestpublic constructor; the deprecated constructor remains available for backwards compatibility - IBM MQ client library updated from
com.ibm.mq.allclienttocom.ibm.mq.jakarta.client. If upgrading, replacecom.ibm.mq.allclient.jarwithcom.ibm.mq.jakarta.client.jarin yourlib/external/folder — see JMS and IBM MQ documentation for details. Existing javax.jms plugins continue to work without source changes; support for javax-based plugins will be removed in a future major release.

