Repository navigation
Releases
0.0.32
Changed
- Breaking for crate users:
ihe-iti0.11.0 requiresihe-atna0.19,
andnl-generic-functions0.11.0 requiresihe-iti0.11. Their public
API carriesihe-atnatypes (the audit user an exchange is made for), so
a consumer movesihe-atna, andehds-loggingwith it, to 0.19 in the
same change and links one copy. The server pinsihe-atna0.19.0, which
changes nothing FerroPIX records (#663).
Fixed
- The server and the operator console move to ferrohealth-telemetry 0.5, ferrohealth-server 0.9 and ferrohealth-usage-report 0.5, whose subscriber installs its own bridge from the
logcrate in place oftracing-log'sLogTracer. Under a console filter that lets a target through above its default level, such asinfo,ferrohealth_smart=debug, a dependency'slog::log_enabled!check no longer drops the next event on its thread, which lost the request line of a request that ran such a check (FerroHEALTH/FerroSYS#388) (#662).
Support period
Only the newest release is supported: there are no maintenance branches, no long-term-support line and no backports, and upgrading is free. Under the Cyber Resilience Act, Cadasto B.V. commits to keep publishing security fixes for at least five years after each release (Art 13(8)) and ships them only in the newest release (Art 13(10)). For this release that commitment runs until the end of November 2031 (Regulation (EU) 2024/2847 Art 13(19)); see SECURITY.md.
0.0.31
Added
- The ITI-93 sender authenticates to each Patient Identity Consumer named
in[[pmir.feed.consumers]], the family's endpoint table: a message to a
subscription whose channel endpoint lies under the entry'surlcarries
its IUA client credentials token (credentials.oauth), renewed once when
the Consumer answers401, and presents its client certificate for ATNA
mutual TLS (tls.client_identity_file), as PMIR 1.6.0 §2:3.93.5 asks.
The token replaces anyAuthorizationheader the subscription names,
and an endpoint under no entry gets no credential. A401or403after
the renewal is retried within[pmir.feed]and then sets the
subscription toerrornaming the refusal (#655). ihe-iti0.10.1 makespmir::subscription::Subscribed::atpublic: a
PMIR subscriber that keeps no state between requests rebuilds the
subscription handle from theLocationit stored, to read its status or
delete it. ALocationoff the Registry's[base]/Subscriptionis
refused as before, so the subscriber's credential never goes elsewhere (#658).
Changed
- FerroPIX moves to
ferrohealth-smart0.21,ferrohealth-session0.16,
ihe-atna0.15,ferrobridge-term0.8 andferrobridge-hl7v20.12, the
releases on the smart line that chooses the described SMART issuer by one
shared rule and adds the optionaldescribed_issuerkey toAuthSection(#647). - Breaking for crate users:
ihe-iti0.7.0 requiresferrohealth-smart
0.21 andihe-atna0.15, andnl-generic-functions0.7.0 requires
ferrohealth-smart0.21 andihe-iti0.7. Their public API carries the
types of those crates (the outbound client, the endpoint table and the
audit user), so a consumer moves to the same lines (#647). - FerroPIX moves to
ferrohealth-smart0.22,ferrohealth-session0.17,
ihe-atna0.16,ferrobridge-term0.9 andferrobridge-hl7v20.13, the
releases on the smart line whereDpopSectionno longer carries
external_url. FerroPIX sets no[auth.dpop], so no configuration key
changes (#649). - Breaking for crate users:
ihe-iti0.8.0 requiresferrohealth-smart
0.22 andihe-atna0.16, andnl-generic-functions0.8.0 requires
ferrohealth-smart0.22 andihe-iti0.8. Their public API carries the
types of those crates (the outbound client, the endpoint table and the
audit user), so a consumer moves to the same lines (#649). - Breaking: a Basic user's scopes move out of
[[auth.basic.users]],
which holds the credential alone (user,password_hash,
password_hash_file), into FerroPIX's own[basic_grants.<user-id>]
table withscopesandroles. Ascopesorroleskey in
[[auth.basic.users]]now refuses the start as an unknown key, and so
does a[basic_grants]table naming a user[[auth.basic.users]]does
not list. A grantedsystem/scope or role is refused as before, now
namingbasic_grants.<user-id>. Upgrade: move each user'sscopesline
into a[basic_grants.<user>]table named by itsuser(#651). - FerroPIX moves to
ferrohealth-smart0.24,ferrohealth-session0.19,
ihe-atna0.18,ferrobridge-term0.10 andferrobridge-hl7v20.14,
the releases on the smart line where the caller classification asks each
issuer's standing source. FerroPIX keeps its client lists in[auth],
the default source, so no further configuration key changes (#651). - Breaking for crate users:
ihe-iti0.9.0 requiresferrohealth-smart
0.24 andihe-atna0.18, andnl-generic-functions0.9.0 requires
ferrohealth-smart0.24 andihe-iti0.9. Their public API carries the
types of those crates (the outbound client, the endpoint table and the
audit user), so a consumer moves to the same lines (#651). - Breaking for crate users:
ihe-iti0.10.0 reads the state of every
Patient an ITI-93 message carries.pmir::feed::PatientIdentitynow has
activeand everyPatient.link, read aspmir::feed::Linkwith its
LinkType(FHIR R4link-type) and the other reference, and
Feed::readrefuses a created, updated or merged Patient that omits
active(FeedError::NoActive) or a link with an unknown type or no
reference (FeedError::Link). A subscriber reads an unmerge, an update
withactivetrue and noreplaced-bylink, from the message alone.
nl-generic-functions0.10.0 requiresihe-iti0.10 (#656). - The ITI-93 feed FerroPIX sends states
activeand the current links of
everyPatient, and a steward's revert of a merge is one message with
both patients as they now stand, eachactivetrue with no
replaced-bylink (PMIR 1.6.0 §2:3.93.4.1.3) (#656).
Support period
Only the newest release is supported: there are no maintenance branches, no long-term-support line and no backports, and upgrading is free. Under the Cyber Resilience Act, Cadasto B.V. commits to keep publishing security fixes for at least five years after each release (Art 13(8)) and ships them only in the newest release (Art 13(10)). For this release that commitment runs until the end of November 2031 (Regulation (EU) 2024/2847 Art 13(19)); see SECURITY.md.
0.0.30
Changed
- FerroPIX moves to
ferrohealth-smart0.20,ferrohealth-session0.15,
ihe-atna0.14,ferrobridge-term0.7 andferrobridge-hl7v20.10. A
refusal of a role issuer (ConfigError::RoleIssuer) renders the issuer
with its userinfo masked (#643). - Breaking for crate users:
ihe-iti0.6.0 requiresferrohealth-smart
0.20 andihe-atna0.14, andnl-generic-functions0.6.0 requires
ferrohealth-smart0.20 andihe-iti0.6. Their public API carries the
types of those crates (the outbound client, the endpoint table and the
audit user), so a consumer moves to the same lines (#643).
Support period
Only the newest release is supported: there are no maintenance branches, no long-term-support line and no backports, and upgrading is free. Under the Cyber Resilience Act, Cadasto B.V. commits to keep publishing security fixes for at least five years after each release (Art 13(8)) and ships them only in the newest release (Art 13(10)). For this release that commitment runs until the end of November 2031 (Regulation (EU) 2024/2847 Art 13(19)); see SECURITY.md.
0.0.29
Changed
- FerroPIX moves to
ferrohealth-smart0.19,ferrohealth-session0.14,
ihe-atna0.13,ferrobridge-term0.6 andferrobridge-hl7v20.9. The
issuer[[auth.attributes]],[[auth.federation]],[[auth.party]]and
auth.scopeless_subjectsname is aSecretUrlnow, so a password in its
userinfo appears in noconfig checkoutput, no written-back
configuration and noDebugrendering (#636). - Breaking for crate users:
ihe-iti0.5.0 requiresferrohealth-smart
0.19 andihe-atna0.13, andnl-generic-functions0.5.0 requires
ferrohealth-smart0.19 andihe-iti0.5. Their public API carries the
types of those crates (the outbound client, the endpoint table and the
audit user), so a consumer moves to the same lines (#636).
Fixed
- The Helm chart moves to 0.3.21 for FerroPIX 0.0.28. The v0.0.28 release
raised the chart'sappVersionwithout raising the chart version, so its
chart leg refused to publish over 0.3.20. A pull request that changes the
packaged chart now has to raise its version (#632). - A
private_key_jwtclient assertion the server signs, for an OAuth 2.0
client of an outbound lane or of[auth.issuer.introspection], is valid
for 60 seconds, down from 300, so an authorization server that caps the
assertion lifetime below SMART App Launch 2.2.0's five-minute ceiling
accepts it. FerroPIX moves toferrohealth-smart0.19.1,
ferrohealth-secret0.2.1,ferrohealth-config0.4.4,
ferrohealth-telemetry0.4.1,ferrohealth-server0.8.4 and
ferrohealth-usage-report0.4.1;ihe-itiandnl-generic-functions
move to 0.5.1 and take the same lines (#640).
Support period
Only the newest release is supported: there are no maintenance branches, no long-term-support line and no backports, and upgrading is free. Under the Cyber Resilience Act, Cadasto B.V. commits to keep publishing security fixes for at least five years after each release (Art 13(8)) and ships them only in the newest release (Art 13(10)). For this release that commitment runs until the end of November 2031 (Regulation (EU) 2024/2847 Art 13(19)); see SECURITY.md.
0.0.28
Fixed
ferropix-console config checkand every other rendering of the console's configuration
show an[oidc]issuer,redirect_uriorpost_logout_redirect_uri
written with userinfo ashttps://***@…, never its password. The console
moves toferrohealth-session0.13, which holds the three URLs as
SecretUrl(#627).
Support period
Only the newest release is supported: there are no maintenance branches, no long-term-support line and no backports, and upgrading is free. Under the Cyber Resilience Act, Cadasto B.V. commits to keep publishing security fixes for at least five years after each release (Art 13(8)) and ships them only in the newest release (Art 13(10)). For this release that commitment runs until the end of November 2031 (Regulation (EU) 2024/2847 Art 13(19)); see SECURITY.md.
0.0.27
Added
- Each release attaches the quickstart as one self-contained
compose.yaml,
with its.sha256sum. The server's configuration and the database role
are inlined as Compose configs, so the file needs Docker Compose 2.23.1 or
newer and no checkout, and the README and book quick start download it
from the latest release.scripts/quickstart/compose-configs.shholds
each inlined copy to its source in the repository, and CI runs the
quickstart tour over that same file (#619).
Changed
- FerroPIX moves to
ferrohealth-smart0.18,ferrohealth-session0.12,
ihe-atna0.12 andferrobridge-term0.5. A configured issuer is a
SecretUrlnow, so a password in an issuer's userinfo appears in no
config checkoutput, no written-back configuration and noDebug
rendering. The start still refuses such an issuer, naming it masked (#624). - Breaking for crate users:
ihe-iti0.4.0 requiresferrohealth-smart
0.18 andihe-atna0.12, andnl-generic-functions0.4.0 requires
ferrohealth-smart0.18 andihe-iti0.4. Their public API carries the
types of those crates (the outbound client, the endpoint table and the
audit user), so a consumer moves to the same lines. Where an
issuer is read, use.expose(), and build one withSecretUrl::new(#624).
Removed
- The Helm chart's values schema, which refused
config.auth.audienceby
name in the charts of v0.0.26. The value now reaches the server's
configuration as an unknown key under[auth], and theconfig check
each image runs over the rendered configuration refuses it. Write each
issuer'saudienceunderconfig.auth.issuer, as v0.0.26 asked (#605).
Fixed
[auth]refuses the start on a table FerroPIX would read and never
apply, naming the key:[auth.dpop](FerroPIX checks no DPoP proof),
[[auth.party]]and[auth.idp](FerroPIX binds no login to a party),
and a Basic user'sroles(the permission table reads scopes). A
configuration that sets one of them must drop it.
[[auth.federation]]and[[auth.attributes]]are applied, and the book
documents both. The IHE IUA attributes that an[[auth.attributes]]table
reads from a token (the user's name, role, purpose of use, provider id and
organisation) now appear on the BALP record's user agent, as BALP 1.1.4
§3:5.7.5.4 maps them (#595).- With
[pmir]on,GET {base}/fhir/metadatadeclares the ITI-93 message
assenderand asreceiver, as the PMIR 1.6.0 Patient Identity Registry
statement does: the Registry sends the feed to each subscriber. With
[pixm]and[pdqm]on as well, the statement instantiates
https://profiles.ihe.net/ITI/PMIR/CapabilityStatement/IHE.PMIR.PatientIdentityRegistry.
implementation.descriptionnow names the IHE actors the instance
serves (#597). - docs.rs documents every module of
ihe-itiandnl-generic-functions.
Both crates turn no feature on by default, and docs.rs built them with
their default features, so the published API reference listed no item.
Each manifest now carries[package.metadata.docs.rs] all-features = true,
published withihe-iti0.4.0 andnl-generic-functions0.4.0, and CI builds each
crate's docs the way docs.rs does (#598). - An
[[auth.issuer]]that setsrole_claimsrefuses the start, naming
auth.issuer[N].role_claims: FerroPIX's permission table reads scopes,
so a role read from the token would never apply. Drop the key from the
issuer's table (#616). - The
CapabilityStatementdeclares the Subscription Profile for PMIR,
https://profiles.ihe.net/ITI/PMIR/StructureDefinition/IHE.PMIR.Subscription.Request,
as thesupportedProfileofSubscription. That is the profile PMIR
1.6.0 §2:3.94.4.1.2.1 constrains an ITI-94 create with, and the profile
the PMIR Patient Identity Registry statement declares. The statement
declared the baseIHE.PMIR.Subscriptionbefore (#617).
Support period
Only the newest release is supported: there are no maintenance branches, no long-term-support line and no backports, and upgrading is free. Under the Cyber Resilience Act, Cadasto B.V. commits to keep publishing security fixes for at least five years after each release (Art 13(8)) and ships them only in the newest release (Art 13(10)). For this release that commitment runs until the end of November 2031 (Regulation (EU) 2024/2847 Art 13(19)); see SECURITY.md.
0.0.26
Changed
- Breaking for a crate user:
ihe-iti0.3.0 andnl-generic-functions0.3.0 requireferrohealth-smart0.17, whoseOutboundClientand endpoint tables their clients are built from, andihe-itirequiresihe-atna0.11. In smart 0.17 every token and introspection endpoint a configuration table names is aSecretUrl, so a password in its userinfo reaches no rendering of the running configuration. Upgrade: takeferrohealth-smart0.17 andihe-atna0.11, and buildOauthSection::token_endpointwithSecretUrl::newand read it with.expose(). The server and the console move toferrohealth-smart0.17.0,ferrohealth-session0.11.0,ferrohealth-config0.4.3,ferrohealth-server0.8.2,ihe-atna0.11.0,ferrobridge-term0.4.0 andferrobridge-hl7v20.6.0, with no configuration key changed (#591).
Fixed
- The Helm chart 0.3.18, published ahead of this release, and this release's chart 0.3.19 fix the defaults. Chart 0.3.17 could not start FerroPIX 0.0.25 at its defaults: its values set
config.auth.audience, which the server stopped reading when the audience moved into each[[auth.issuer]]entry, so every install, standalone or as a dependency, stopped at start with "unknown fieldaudience". The values carry no audience now, the values schema refusesconfig.auth.audienceby name and points atconfig.auth.issuer[].audience(in the charts of this release, 0.3.18 and 0.3.19, only; the chart of the next release refuses it as any other value the server does not read), and the chart refuses to render without aconfig.auth.issuerentry, each with itsissuer,kindandaudience. Upgrade: move the audience into each issuer entry and give each itskind. CI and the release's chart leg now render the chart over every value set underdeploy/helm/ci, the defaults among them, and run the server's and the console'sconfig checkover the configuration it renders, so a chart whose values its images refuse is never published (#585).
Support period
Only the newest release is supported: there are no maintenance branches, no long-term-support line and no backports, and upgrading is free. Under the Cyber Resilience Act, Cadasto B.V. commits to keep publishing security fixes for at least five years after each release (Art 13(8)) and ships them only in the newest release (Art 13(10)). For this release that commitment runs until the end of November 2031 (Regulation (EU) 2024/2847 Art 13(19)); see SECURITY.md.
0.0.25
Changed
- Breaking for a crate user: every client of
ihe-iti0.2.0 (PixmClient,PdqmClient,McsdClient,PmirSubscriber,XcpdClient) and theNviClientandMitzClientofnl-generic-functions0.2.0 is built fromferrohealth-smart0.16'sOutboundClient, asihe-atna'sFeedRepository::newis, so a product configures each service with its shared endpoint table: the base URL, the TLS, the timeouts, no redirect, theretrytable and the credential, HTTP Basic or a client credentials token with itsDPoPproof and its one renewal on a401(IUA ITI-72 §3.72.4.3). Upgrade: buildOutboundClient::build(&endpoint, key, tls)and pass it,PixmClient::new(client)forPixmClient::new(base, http), and the same for the others;MitzClient::newandunencrypted_for_developmentreturnInvalidInput. The call'stimeoutbounds every try theretrytable allows. A credential that cannot be had is each client'sUnauthenticatederror over the outbound client'sSendError, whichXcpdErrorandMitzErrorgain, andXcpdClient::discoverrefuses a gateway off the origin of the table'surlwithXcpdError::ForeignGatewaybefore anything is sent (#580).
Removed
- Breaking for a crate user:
ihe-iti0.2.0 drops theauthorizerandsmartfeatures with theihe_iti::authorizermodule (Authorizer,Authorizableandwith_authorizer,AuthorizerError,Retry,send, andsmart::TokenAuthorizer), andnl-generic-functions0.2.0 dropsNviClient::with_authorizerandmitz::error::ClientError. The credential an authorizer made comes from the endpoint table of the client'sOutboundClient; the send every client goes through is the newoutboundfeature'sihe_iti::outbound::send(#580). - The server and the console no longer refuse by name the configuration keys
v0.0.24 renamed or moved, under the one-release rule for removal aids: the
millisecond, second, day and byte keys of FerroPIX's own sections
(timeout_ms,retention_days,spool_max_bytesand the rest), the
earlier[terminology]keys (base_url,timeout_ms,retry,
credentials,tls) andaudit.url,audit.timeout_msand
audit.retry_max_msthat moved underendpoint, the renamed keys of the
shared[server],[auth],[telemetry],[session]and[oidc]
sections, and the console'spix.timeout_ms. Each now fails at start as
an unknown key, named in the refusal; write the key that replaced it, as
the v0.0.24 entries say (#582).
Support period
Only the newest release is supported: there are no maintenance branches, no long-term-support line and no backports, and upgrading is free. Under the Cyber Resilience Act, Cadasto B.V. commits to keep publishing security fixes for at least five years after each release (Art 13(8)) and ships them only in the newest release (Art 13(10)). For this release that commitment runs until the end of November 2031 (Regulation (EU) 2024/2847 Art 13(19)); see SECURITY.md.
0.0.24
Changed
- The ITI-21 RSP^K22 is checked against RSP_K21 as IHE ITI TF-2 constrains it before it leaves: QRI optional (Table 3.21-6) and QPD-3 repeating, one parameter a repetition (§3.21.4.1.2.3), through
ferrobridge-hl7v20.4.0'sIHE_ITI_21. An answer that does not conform, such as a PID with no name, is answeredAE, as the RSP^K23 is (#538). - The compose quickstart and the Helm chart's CI values run the development OpenID Provider
mock-oauth2-server6.1.5, and the release and image scans run Trivy 0.76.2 (#557). ihe-iti0.0.84 requiresferrohealth-smart0.15 (caret0.15.0) andihe-atna0.9 (caret0.9.0), andnl-generic-functions0.0.51 requiresferrohealth-smart0.15 andihe-iti0.0.84. Both nameferrohealth-smartandihe-atnatypes in their public API, so a product on those lines needs this release; no signature of either crate moves. Upgrade: moveferrohealth-smartto 0.15.0 andihe-atnato 0.9.0 beside them (#561).- Breaking for an operator: the server and the console move to
ferrohealth-smart0.15.1,ferrohealth-session0.9.0,ihe-atna0.9.1,ferrohealth-config0.4.0,ferrohealth-server0.8.0,ferrohealth-telemetry0.4.0 andferrohealth-usage-report0.4.0, so the lock holds one copy of each family crate. Every span of time and size in the sections those crates own is now a string with its unit, under a key that names none, and a bare number is refused. Upgrade: in[server]writebody_limit = "1MiB",request_timeout,header_read_timeout,idle_timeout,drain_delay,shutdown_timeout,retry_afterandcompression_min_size(each was…_ms,…_sor…_bytes) and[server.tls] reload_interval; in each[[auth.issuer]]writeclock_skew,jwks_max_age,jwks_refresh_intervalandtimeout, withintrospection.cache_max_age,[auth.basic] cache_ttland the OAuth tables'refresh_marginandtimeout; moveauth.ca_fileto[auth.tls] trust_roots_file, and the OTLP collector'strust_roots_fileandclient_identity_fileunder[telemetry.otlp.tls]. In the console write[session] sign_in_timeout,idle_timeoutandabsolute_timeout("30min", notidle_timeout_s = 1800) and[oidc] timeout, and moveoidc.ca_fileto[oidc.tls] trust_roots_file. Each old key fails the start as an unknown key, and the loader names the new one where it can. The[auth]keys of the shapes beforeferrohealth-smart0.9 now fail as unknown keys too, without naming their replacement (#561). - Breaking for an operator: FerroPIX's own sections write every span of time and size the same way, under a key that names no unit. Upgrade:
[audit] spool_max_size = "64MiB"andspool_write_timeout, with the delivery'stimeoutandretry.max_backoffunder[audit.endpoint](below);[outbox] retention = "30d";[pmir.feed] initial_backoffandmax_backoff;[hl7v2] frame_limit,idle_timeoutandframe_timeout, each consumer'sconnect_timeoutandreply_timeout, and[hl7v2.notification] initial_backoffandmax_backoff;[xcpd] delivery_initial_backoff,delivery_max_backoffanddelivery_timeout; the terminology server'stimeoutwith itsretry.initial_backoffandretry.max_backoffunder[terminology.endpoint](below); and the console's[pix] timeout. In this release each old key refuses the start and names the key that replaces it, all of them in one refusal; from the next release each fails as an unknown key (#561). - Breaking for a crate user:
ihe-iti0.1.0 requiresferrohealth-smart0.16 (caret0.16.0) andihe-atna0.10 (caret0.10.0), andnl-generic-functions0.1.0 requiresferrohealth-smart0.16 andihe-iti0.1.0. Both nameferrohealth-smartandihe-atnatypes in their public API, so the move of those public dependencies takes each crate's minor step, and a product on those lines needs this release; no signature of either crate moves. Upgrade: moveferrohealth-smartto 0.16.0 andihe-atnato 0.10.0 beside them (#571). - Breaking for an operator: the server reaches the audit repository and the terminology server through
ferrohealth-smart's outbound client, each configured by its endpoint table, so the lock holds one copy of each family crate (ferrohealth-smart0.16.2,ferrohealth-session0.10.0,ihe-atna0.10.0,ferrohealth-config0.4.1,ferrohealth-server0.8.1,ferrobridge-term0.3.0,ferrobridge-hl7v20.5.0). Upgrade: write the audit repository as[audit.endpoint]withurl,timeoutand[audit.endpoint.retry] max_backoff(wasaudit.url,audit.timeout_msandaudit.retry_max_ms); itsmax_backoffis also the wait between two delivery rounds, and the table takesconnect_timeout,retry.max_attempts,tlsandcredentials(HTTP Basic or the client credentials grant) as well. Write the terminology server as[terminology.endpoint]withurl,timeout,retry,credentialsandtls(wasterminology.base_url,timeout_ms,[terminology.retry],[terminology.credentials]and[terminology.tls]); compose and the Helm chart (0.3.16) name itFERROPIX__TERMINOLOGY__ENDPOINT__URLandconfig.terminology.endpoint.url. In this release each old key refuses the start and names its place under the endpoint table; from the next release each fails as an unknown key (#571). - A configuration the server or the console does not start on is refused with a line that opens
cannot start(exit 78), andhealthcheckwith one that opensnot up(exit 1), throughferrohealth-server's run path; the server's line openedthe configuration is refusedbefore (#571). ihe-iti0.1.0 andnl-generic-functions0.1.0 require the FerroBRIDGE crates by caret ranges,fhir-search0.1.130andfhir-types0.1.130, whereihe-iti0.0.84 requiredfhir-searchexactly, so a product whose other family crates take another compatible patch of them builds with one copy (#543) (#571).- The keys of the family sections that v0.0.24 renamed are refused by name in this release, each with the key that replaces it, all of them in one refusal, read from the file, the environment and
--setbefore the rest of the configuration. On the server:[server]request_timeout_ms,header_read_timeout_ms,idle_timeout_ms,body_limit_bytes,drain_delay_ms,shutdown_timeout_ms,retry_after_s,compression_min_bytesandtls.reload_interval_s;auth.ca_file,auth.basic.cache_ttl_seconds,auth.dpop.max_age_secondsandclock_skew_seconds; each[[auth.issuer]]entry'sclock_skew_seconds,jwks_max_age_seconds,jwks_refresh_interval_seconds,timeout_msandintrospection.cache_max_age_seconds; the OAuth tables'refresh_margin_ms,timeout_ms,ca_file,client_certificate_file,client_key_fileandprevious_key_overlap_ms; and the OTLP collector'strust_roots_fileandclient_identity_file. On the console:[session]sign_in_timeout_s,idle_timeout_sandabsolute_timeout_s,[oidc]timeout_sandca_file,[oidc.tls]client_certificate,client_keyandclient_key_file, and the OTLP collector's files. From the next release each fails as an unknown key (#575).
Removed
- The named refusal of
[xcpd] client_certificate_file,client_key_fileandreply_trust_file, which v0.0.22 retired in favour of[xcpd.tls]. Each key now fails the start as an unknown key of[xcpd](#561).
Fixed
- The server exports its spans and metrics over the TLS
[telemetry.otlp.tls]names: it installs its telemetry throughferrohealth-server's installer, which reads the collector's trust roots and client identity, where before it built the exporter without them (#571).
Support period
Only the newest release is supported: there are no maintenance branches, no long-term-support line and no backports, and upgrading is free. Under the Cyber Resilience Act, Cadasto B.V. commits to keep publishing security fixes for at least five years after each release (Art 13(8)) and ships them only in the newest release (Art 13(10)). For this release that commitment runs until the end of November 2031 (Regulation (EU) 2024/2847 Art 13(19)); see SECURITY.md.
0.0.23
The re-cut of v0.0.22, whose release run published nothing. Read the
v0.0.22 section below for what this release changes: the HL7 v2 face needs
the new [terminology] section before you upgrade. Nothing else in the
server, the console or the crates differs from v0.0.22.
Fixed
- v0.0.22 was tagged, and its release run published nothing: the performance gate handed the v0.0.21 server it measures against a
[terminology]setting that release does not know, so the run could not judge it. The gate now hands each server only the settings its own source defines. v0.0.23 is the first published release with the changes of v0.0.22, and changes nothing else in the server, the console or the crates (#568).
Support period
Only the newest release is supported: there are no maintenance branches, no long-term-support line and no backports, and upgrading is free. Under the Cyber Resilience Act, Cadasto B.V. commits to keep publishing security fixes for at least five years after each release (Art 13(8)) and ships them only in the newest release (Art 13(10)). For this release that commitment runs until the end of November 2031 (Regulation (EU) 2024/2847 Art 13(19)); see SECURITY.md.