Documentation
Everything you need to validate HL7v2 messages and FHIR resources from a terminal, a CI pipeline, or your live integration engine.
5-minute quickstart
Both tools authorize the same way: run the binary, open a URL the binary prints, click Authorize. No token copy-pasting.
# CLI — for build-time / CI validations curl -fsSL https://interoperall.com/install/cli | bash interoperall login # opens a browser approval page interoperall validate --spec my-spec ./*.hl7 # Bridge agent — for live MLLP traffic from an integration engine ./interoperall-bridge # prints a URL + 8-char code # (open the URL on any logged-in device, click Authorize, agent finishes setup)
On the approval page you choose which org to bind the agent to, and the agent gets a revocable token bound to that org. The token never appears in your shell, your terminal history, or a downloaded config file. Revoke any time from Settings → HL7 Bridge agent.
How it fits together
Three surfaces, one validation engine on our side, one shared contract package:
┌────────────────────┐ ┌──────────────────────┐ │ Bridge agent │ MLLP │ Your integration │ │ (runtime traffic) │ ◄───────────────►│ engine (Mirth, etc.)│ │ │ └──────────────────────┘ │ ───── HTTPS ──── ▶ /api/v1/agent/validate/<slug> │ │ └────────────────────┘ ┌────────────────────┐ ┌──────────────────────┐ │ CLI │ exec │ CI runner (Actions, │ │ (build-time) │ ◄───────────────►│ Jenkins, GitLab) │ │ │ └──────────────────────┘ │ ───── HTTPS ──── ▶ /api/v1/agent/validate/<slug> └────────────────────┘
Both tools speak to the same authenticated REST endpoint, share the same iob_ token format, and surface the same validation results — so a rule failure looks identical whether it surfaces as an HL7 ACK from the agent or a JUnit XML test from the CLI.
Where to go next
Pick your scenario:
- Install the Bridge agent — for validating live MLLP traffic
- Install the CLI — for build-time validation and CI
- Validation API reference — for building your own integration
- Data handling promise — what we store, what we don't