MedVertical
Open menu

Developers · Records CLI

Run a FHIR quality gate from any pipeline.

Start with local files and machine-readable output. Connect the same CLI to Records when you need runs, baselines, deltas, and evidence.

Available now · v0.1.1 · Apache-2.0

Smallest useful example

Turn a directory into a CI contract.

Run the same command locally and in CI. Machine-readable output and the process exit code let the pipeline own the gate.

Run a local gateShell
npx @records-fhir/cli@0.1.1 validate-file ./fhir \  --format junit

Expected contract

What comes back

A deterministic exit status plus JUnit output that can be published by the existing test-reporting step in the pipeline.

RuntimeWorkstation or CI runner with a supported Node.js LTS release (22 or 24)
Local modeBasic structural checks on files and directories; no account or Records instance required
Connected modeAdds configured runs, accepted baselines, comparison and evidence through Records

One input, a concrete finding, a verified correction.

Recorded local CLI execution with downloadable input and output.

Validate a fileShell
records validate-file patient-before.json --format json
1 · Input · ExcerptJSON

patient-before.json

{  "active": "true"}
String instead of boolean
2 · Finding · ExcerptJSON

Patient.active

{  "message": "'active' must be boolean (JS boolean), got string"}
1 error · Exit 1
3 · Correction · ExcerptJSON

patient-after.json

{  "active": true}
0 errors · Exit 0

Change Patient.active from "true" to true. Revalidation changes the exit code from 1 to 0.

Synthetic FHIR R4 · CLI 0.1.3 · Executed locally on 15 September 2026

View complete JSON
CLI · InputJSON

String instead of boolean

{  "resourceType": "Patient",  "id": "synthetic-cli-patient",  "active": "true"}

A hosted CI job and a connected workspace run are separate integrations.

Built for one clear integration job

Choose the functions your integration needs.

No-install local validation

Validate one file or a directory directly from npx.

CI-native contract

Use deterministic exit codes plus JSON or JUnit output in any Node.js pipeline.

Connected Records workflows

Point the CLI at Records for configured profile sets, runs, baselines, comparison, and export.

Saved runs, comparisons and reports require a Records workspace.

Scope

The boundary

Know what this surface owns before you put it into a workflow.

What remains outside this surface

Local mode validates the files you provide. It does not create Records run history, compare live environments, or produce governed evidence until connected to a Records instance.