3.0.0 (2026-10-15)
⚠ BREAKING CHANGES
- auth against re-identify via api keys is no longer possible. A JWT has to be fetched from an IdP first instead.
- the application fails to start without a specified anonymization config. This breaks deployments relying on the default anonymization.yaml.
- kafka: required to be set by default if kafka processing is enabled. Changes message keys and downstream routing.
- Any *__RequestRetryCount settings are now ignored
- smaller length keys will now fail validation
- previous MetricsEnabled and MetricsPort config now ignored.
- pseudonymization service is now unset by default, anyone relying on gPAS will now encounter an error. If using gPAS, at leat version 2023 is required.
- this serializer may be less lenient than the pervious default
- URIs that look like FHIR server URLs and contain ~ or - are now processed identical to URIs without those values. E.g. the system https://example-test/fhir/Patient/123 was previously hashed to by replacing the entire value with a hash, now, just the 123 is hashed. This is a fix towards the more correct behavior.
- The v6 libs may be more strict when it comes to parsing resources. Additionally, all timestamps are now searialized with sub-second precision.
Features
- added more metrics and ready-to-import dashboard (aaaabd8)
- correctly encrypt/hash uri systems that contain ~, - (#429) (17c3fc1)
- default to PseudonymizationService: None instead of gPAS and remove gPAS version config (#431) (18b8307)
- default to using the System.Text.Json-based FHIR serializer (#430) (2056c17)
- kafka: setting for crypto-hashing message keys (#439) (7f86690)
- moved chart from miracum/charts to this repo (#451) (5bf6add)
- moved metrics config inside a dedicated Metrics key (#432) (746c042)
- moved retry config into a dedicated config object (#435) (3b1d60d)
- removed default anonymization config (#448) (b2c2e0c)
- replaced api key auth with JWT tokens (#449) (ffa9c0a)
- require at least 32-byte long keys (#433) (46ea1a8)
- updated to FHIR.NET v6 (#373) (7cf89e8)
Bug Fixes
- bubble up non-transient Vfps pseudonymization errors to the caller (4733fb5)
- client-side gRPC load-balancing with more aggressive timeouts (#442) (af1d47e)
- dont write in-flight messages to the DLQ on shutdown exceptions (#437) (6570162)
- kafka: same commit guarantees for provenance as for output messages (#440) (10852b2)
- support dynamic settings and config in $re-identify (#450) (ec3d996)
Performance Improvements
Documentation
- added a dedicated docs site (#446) (655da66)
- fixed outdated cryptohash documentation and re-prettier'd everything (#441) (15d2cc6)
- minor docs updates (#447) (4cbb4ea)
- updated README benchmark numbers (ed0625f)