v1.4.3 Release Notes
Changes since v1.4.1, covering 27 Aug 2026 to 9 Sep 2026. Frontend, plus one CI/release-workflow change. No server-side or backend behaviour changes.
Connections & CDR Compatibility
- Each saved connection now has a CDR Type that selects the REST path prefix sitting between the server origin and the openEHR resource path. Three options are available:
- EHRbase — uses EHRbase's non-standard
/ehrbase/rest/openehr/v1context (and/ehrbase/rest/adminfor the Admin API). - ferroEHR — uses the spec-style
/rest/openehr/v1layout (and/rest/openehr/v1/admin). - Custom — the openEHR API base path and an optional Admin API base path are entered by hand; leaving the Admin path blank marks the connection as having no Admin API.
- EHRbase — uses EHRbase's non-standard
- The CDR URL field is now the server origin only (e.g.
http://localhost:8080); the REST path is appended automatically from the CDR type. For preset types the Settings screen shows the resolved request base URL beneath the selector so it is clear where calls will go. - Existing stored connections are migrated automatically: they are assigned the EHRbase type, and any legacy
/ehrbase/rest/openehr/v1or/rest/openehr/v1suffix that was previously typed into the CDR URL (following older documentation) is stripped back to the origin. - Switching to a preset CDR type fills the base-path fields with that preset's values, so they form a sensible starting point if the user later switches to Custom; switching to Custom keeps whatever paths are already present.
- Admin-only actions (currently: deleting a stored query) now check whether the active connection exposes an Admin API. If it does not, the screen shows a form error explaining that the connection's CDR type has no Admin API instead of issuing a request that would fail.
Composition Format
- How a chosen composition representation (JSON, XML, FLAT, STRUCTURED) is carried on the wire is now driven by the active connection's CDR type:
- EHRbase keeps its non-standard
?format=query parameter alongside a plainapplication/json/application/xmlmedia type. - ferroEHR and Custom connections follow the openEHR spec and carry the representation entirely in the
Accept/Content-Typeheader (application/openehr.wt.flat+json,application/openehr.wt.structured+json), with noformatquery parameter.
- EHRbase keeps its non-standard
- This applies across the composition screens (create, update, get, and the example/skeleton view).
cURL Command
- Every screen that makes a CDR request now shows a cURL button on its response panel, and each entry in the Request History list shows one too.
- The button opens a popup containing the request that was just made, rendered as a copy-pasteable, multi-line cURL command with syntax highlighting that matches the app's other code blocks in both light and dark mode.
- JSON request bodies are pretty-printed in the rendered command for readability; other bodies are shown as sent.
- The
Authorizationheader stays redacted in the cURL output, exactly as the Request Diagnostics panel already displays it — the reader substitutes real credentials before running the command.
Build / Release
- The desktop release workflow now also builds macOS. A
macos-latestmatrix entry installs theaarch64andx86_64Rust targets and builds with--target universal-apple-darwin, producing a single universal.dmgattached to each tagged release alongside the existing Windows and Linux packages.
Versioning
- ehr-ctrl version bumped from 1.4.1 to 1.4.3 (1.4.2: multi-CDR connection types and media-type-driven composition format; 1.4.3: cURL command popup).