Sunday, 31 May 2026

Traffic Parrot 5.59.2 released, what's new?

We have just released version 5.59.2. Here is a list of the changes that came with the release:

Features

  • Added matches FIX field body matcher for IBM MQ, JMS, and File messaging mappings, enabling tag-level matching on FIX protocol messages by tag number and regex (version-agnostic across FIX 4.2, 4.4, 5.0, and FIXT)
  • Added {{fixField}} Handlebars helper for extracting FIX protocol message field values in dynamic response templates by tag number
  • Added {{#fixWithChecksum}} block helper with inline {{fixBodyLength}} and {{fixCheckSum}} placeholders that auto-compute FIX 4.x tag 9 (BodyLength) and tag 10 (CheckSum) for FIX response templates, removing the need to hand-calculate these values
  • Added {{image}} Handlebars helper for generating placeholder PNG images (grey rectangle with dimensions overlay) directly from a mapping body, with configurable width, height, and overlay text arguments — JDK-only, no external dependencies, deterministic within a single JVM
  • Added base64-decode-body built-in response transformer that Base64-decodes the rendered response body and serves it as raw bytes, enabling binary responses (PNG, PDF, ZIP, etc.) from JSON mappings when paired with helpers such as {{image}}
  • Added a Transformer parameters editor under Advanced parameters on the HTTP Add/Edit mapping form, so the response.transformerParameters JSON block (used by HmacSigningTransformer and other parameter-driven response transformers) can be authored and edited in the GUI instead of only in the mapping JSON file. The editor auto-formats the JSON on blur (2-space indent) and validates on save (invalid JSON prevents submit with an inline error). Existing mappings round-trip semantically through the form (whitespace is normalised; field order is preserved). See Editing transformer parameters in the GUI for details.
  • Added a Query parameters section to the HTTP Add/Edit mapping panel, with per-parameter rows that support equal to, contains, matches regex, and absent matchers (see Request query parameter matchers). Saving produces standard WireMock queryParameters JSON; loading an existing mapping with a queryParameters block populates the rows on the form. This replaces the previous workarounds of putting the full query string in urlEqualTo or hand-writing a lookahead regex in urlMatching — both of which continue to work for existing mappings.
  • Added a Convert query string to rows link under the Request URL field on the HTTP Add/Edit mapping panel. Clicking it parses name=value pairs out of a pasted URL's query string, appends one equal to row per pair to the Query parameters section, and strips the query string from the URL field. URL-encoded values (e.g. %20) are decoded automatically. The conversion is staged client-side — you still need to click Save to commit the changes.
  • JSON and XML request and response bodies are now pretty-printed in the expanded detail of the Request Log. Each body block is collapsible and has a Copy button that copies the original, unformatted body. Bodies that are truncated (over 10 KB), malformed, or not JSON/XML continue to be shown raw. The same formatting applies to the gRPC requests page and the JMS, IBM MQ, and file messaging requests pages.
  • Added support for supplying the license through the TRAFFICPARROT_LICENSE environment variable (base64-encoded), so it can be injected at runtime from a Kubernetes Secret, Docker secret, or secrets manager instead of being baked into a Docker image. The system property -Dtrafficparrot.license.content takes precedence over the environment variable, which takes precedence over the classpath trafficparrot.license file; if neither is set, the classpath file is read as before (no change for existing installations). A set-but-invalid value fails fast with a clear error rather than silently falling back to the file.
  • The HTTP Add/Edit mapping form now shows a Response from file note above the response body field when a mapping's response is served from a bodyFileName file, making it clear that the body is loaded from the __files directory rather than typed inline.

Changes

  • Removed the unused SOAP message signer dropdown from the HTTP Add/Edit mapping form's Advanced parameters section. SOAP message signing continues to work via the SoapMessageSigner entry in the trafficparrot.http.responsetransformers startup property (see Properties) and the per-mapping Response transformers multiselect.
  • The tooltip shown when hovering over the URL Matcher or URL cell in the HTTP mappings list now shows the complete request match for that mapping — the HTTP method, the URL matcher type, the full untruncated URL or pattern, and each query parameter matcher (previously not visible anywhere in the list).
  • The tooltip shown when hovering over the gRPC method cell in the gRPC mappings list now shows the complete request match for that mapping — the gRPC method, the request message matcher, and each request metadata matcher (previously not visible anywhere in the list).
  • Deleting an HTTP mapping while recording now suppresses re-recording of that endpoint (matched by method and normalised URL path) for the rest of the current recording session, instead of immediately re-creating it the next time the same request is proxied. The suppression is session-scoped — it is cleared when recording stops and at the start of each new recording session.

No comments:

Post a Comment