Repository navigation
v3.2.0
FUME Community 3.2.0
This release strengthens the HTTP error contract, updates the FUME mapping runtime, and improves FHIR package installation compatibility.
HTTP error redaction
Verbose HTTP error responses are now filtered at the FUME Community API boundary. Undeclared nested error data, including raw sourceError objects, request configuration, authentication details, and other upstream payload fragments, is removed before a response is returned.
The OpenAPI schema and runtime response now consistently use fhirParent. Diagnostics received from an upstream dependency that still use instanceOf are normalized to fhirParent for compatibility.
Clients using ?verbose=true should rely only on the documented diagnostic fields: code, message, position, start, line, fhirParent, fhirElement, severity, level, and timestamp.
Updated dependencies and runtime behavior
FHIR package installation
FUME Community now uses fhir-package-installer 1.13.1. When a downloaded FHIR package does not include package/.index.json, installation now creates a strict FHIR-spec-compatible legacy index while retaining the richer internal .fpi.index.json. Existing package-provided .index.json files are preserved. This applies to both package materialization and tarball extraction.
FHIR client behavior
FUME Community now uses @outburn/fhir-client 1.6.0. HTTP transport failures used by FHIR operations are normalized to the package's supported safe error contract instead of exposing raw Axios errors. This complements the HTTP response redaction described above by preventing Axios request configuration and nested authentication data from reaching serialized error payloads.
Mappings that use paginated $search calls can now apply an inline FUME function as a transform when fetchAll: true is enabled. The transform runs for every fetched resource, including included resources; returning no value filters that resource from the result. maxResults continues to apply before transform filtering.
FUME mapping runtime
FUME Community now uses fumifier 2.4.0, which adds the following mapping capabilities:
- Higher-order functions:
$safe,$all,$any, and$memoize. - Formatting support for
$rightNow(), plusdate,dateTime,instant, andtimealiases for$now(),$fromMillis(), and$rightNow(). - Canonical UTC conversion when numeric epoch-millisecond values are assigned to FHIR
date,dateTime, orinstantprimitives. Invalid, non-finite, or out-of-range numeric values now raiseF5111instead of being emitted as strings.
The runtime update also fixes nested block comments, FLASH wildcard assignments such as $value := *;, nested array pattern injection, parser recovery around regular expressions and division, and diagnostic source locations. Verbose diagnostics retain more accurate helper and function-call positions.
Upgrade notes
- Nested
sourceError,error, andcausepayloads are no longer available in verbose HTTP diagnostics or wrapped mapping errors. Consume the documented safe fields instead. - Consumers of exported mapping ASTs or browser tokens should read regular-expression metadata from
valueandflags; liveRegExpinstances are no longer exposed. $memoize()rejects argument trees containing functions or symbols.$searchtransforms are valid only withfetchAll: true.
Build and distribution
- CI and container builds now run on Node.js 24.
- The published Docker image now uses the Node.js 24 Alpine base image, reducing the base image vulnerability exposure.
Dependency release notes
What's Changed
- Fix/secret redaction by @mechanik-daniel in #187
- Release/v3.2.0 by @mechanik-daniel in #189
Full Changelog: v3.1.1...v3.2.0