0.9.2 (October 28, 2026)
- The Docker image's health check is the new
hl7-edge-gateway healthcommand, which reads the gateway's configuration and uses HTTPS when the console has TLS. Before, a gateway with a TLS console showed as unhealthy although it worked.
Downloads as for 0.1.1, below.
0.9.1 (October 27, 2026)
- Pausing, resuming or retrying a pass-through route through the admin API (it has no queue) answers 400 instead of doing nothing, and a refused pause or resume is in the audit trail.
Downloads as for 0.1.1, below.
0.9.0 (October 27, 2026)
Security and HIPAA safeguards, in every edition. See Security and HIPAA.
- Console users and roles (viewer, operator, auditor, admin) with single sign-on (OpenID Connect), local users with Argon2id passwords and lockout, and named API tokens. Seeing message contents is a separate grant.
- Server-side sessions shared by a cluster, with automatic logoff after 15 minutes idle; signing in needs HTTPS.
- An audit trail of sign-ins, changes, message views, refusals, license changes and starts and stops, kept 6 years, hash-chained and checked with
hl7-edge-gateway audit verify; the console's Audit card with CSV export; optional JSON-lines files. - AES-256-GCM encryption of stored messages, on the embedded store and in JetStream, with keys from files or environment variables, rotation and
store reencrypt; a node with the wrong key refuses to start. - New commands
hash-password,hash-token,generate-key,store reencryptandaudit verify. The Helm, Bicep and Terraform templates take users, single sign-on and store keys.
Downloads as for 0.1.1, below.
0.8.1 (October 26, 2026)
CAQH CORE batch results. See CAQH CORE.
- New
caqh_coresource: picks up 835s, 277CAs and 999s waiting on a CORE server everypoll_interval, takes each in as an X12 interchange and sends the gateway's 999 back. New metrichl7edge_core_retrievals_total. - TA1 and 999 acknowledgments keep the line breaks of the interchange they answer.
- A 999 for a missing segment that begins a loop (such as the subscriber's NM1) reports that segment only, not the loop's following segments too.
- The console's Filter and Transform testers ask for X12 on X12 routes.
Downloads as for 0.1.1, below.
0.8.0 (October 26, 2026)
X12 EDI and CAQH CORE. See X12 EDI and CAQH CORE.
- Routes with
format = "x12"carry X12 interchanges (HIPAA 5010) over HTTP, SFTP and Service Bus: 837P/I/D, 835, 277CA, 999, TA1, 270/271, 276/277, 278, 834 and 820. - Every interchange is checked (envelope, control numbers, loops, segment order, required segments and elements, types, lengths and code lists) and answered with a 999 and, when asked for, a TA1; only accepted sets go on. SFTP sources write the answers to
ack_directory. - A destination's
envelopesends interchanges under the gateway's own ISA/GS, with control numbers that never repeat, in a cluster too. - Filters take X12 and loop paths (
2010BA/NM1-9); transform rules work on X12;x12 = "json"turns a transaction into JSON by its loops; templates can make X12. - New
caqh_coredestination: real time and batch, CORE C4.0.0 (MTOM, client certificates, OAuth 2.0) and 2.2.0 (UsernameToken, MIME). Batch results retrieval is planned for 0.8.1. - New command
hl7-edge-gateway x12; new metricshl7edge_x12_acks_totalandhl7edge_core_requests_total. - X12 is free for test interchanges (ISA-15 =
T); production ones need the paid license.
Downloads as for 0.1.1, below.
0.7.0 (October 21, 2026)
HL7 v2 to FHIR R4. See HL7 v2 to FHIR.
- A transform's new
fhirstep makes a FHIR R4 transaction Bundle of ADT, ORU^R01, ORM^O01, OML^O21 and VXU^V04 messages with built-in Liquid templates: Patient, Encounter, RelatedPerson, AllergyIntolerance, Condition, Coverage, ServiceRequest, DiagnosticReport, Observation, Specimen, Immunization and Practitioner. - Stable ids and conditional requests, so a resent message updates what it made, and results and orders never overwrite the Patient that ADT keeps. HL7 times get the offset of the configured time zone.
hl7-edge-gateway fhir-templatesexports the templates and code tables; a folder of changed ones overrides the built-ins by name.- New
fhirdestination: the Bundle is POSTed to the server, and its answer decides entry by entry; a refused message is dead-lettered with the server's OperationOutcome. New metrichl7edge_fhir_entries_total. - FHIR and HTTP destinations sign in with Entra ID managed and workload identities, and Google service accounts, besides OAuth2 (SMART backend services) and static headers.
- The console shows a route's transform when the route has one destination too.
- Tested against HAPI FHIR 8.12: every stored resource passes
$validate.
Downloads as for 0.1.1, below.
0.6.0 (October 21, 2026)
Message transformation: each destination can receive its own version of a message. See Transforms.
- Rules set, copy, move, clear and map fields through code tables (inline or CSV), delete and add segments, replace text, reformat dates and hash identifiers; each only
whena filter matches, orforeachsegment group. - A Liquid template, last, makes JSON, XML, text or another HL7 message, checked before it is sent and sent with its content type.
- The queue keeps the message as it arrived, so a fixed transform applies to messages still waiting. A message a transform fails on is rejected for that destination only, with the failing step in the reason; new metric
hl7edge_transform_failures_total. - New command
hl7-edge-gateway transform(with--diff); the console's Transform tester and an "as sent" message view;POST /api/transform-test. - Service Bus destinations take
content_type. The Helm chart takestransformFiles. Sample transforms insamples/transforms/.
Downloads as for 0.1.1, below.
0.5.1 (October 21, 2026)
Fixes to the hl7-edge-gateway filter command. See Filters.
filter -f @filereads a file with comments above an inline filter (# …, then{ … }). 0.5.0 said "not valid TOML".filter -clines up destination names longer than 16 characters, such asinfection-control.
0.5.0 (October 19, 2026)
Several sources and destinations per route: X in, X out. See Several sources and destinations.
- Several
sourcesfeed a route's queues in arrival order; severaldestinationseach get a queue of their own, so one that is down holds up no other. - Filters on MSH fields and on segment field paths (
PV1-2,OBR-4.1, one occurrence or repetition withOBR[2]-4.1orPID-3[2].1), combined withany(OR) andnot, and tied to one segment group (an OBR and its OBX) withgroup, decide which messages a destination gets;on_unmatcheddecides about the rest. See Filters. - Check filters before you deploy them: the new
hl7-edge-gateway filtercommand, and the console's Filter tester, show which destinations get a message and why. - Pass-through routes answer with their
primarydestination and copy what it accepted to the others. - Retries, dead letters, pause and Retry now per destination, in the console and the admin API (
?destination=); metrics with adestinationlabel. - Routes with one source and one destination work as before and keep their queues. The Helm chart accepts
sourcesanddestinations.
Downloads as for 0.1.1, below.
0.4.0 (October 19, 2026)
HL7 files on SFTP servers, as a source and a destination. See SFTP files.
- Sources poll a folder and read finished files, oldest first: one message, messages back to back, or HL7 batches. Files are deleted, moved or renamed once all their messages are accepted; lines that are not HL7 can go to an error folder.
- A source keeps its place in each file in the store, so a restart partway through a file sends nothing twice.
- Destinations write one file per message, or batch files (back to back, or HL7 batches with FHS/BHS/BTS/FTS) closed by count, size or age. Files are written as
.partand renamed when complete. - Password or private key sign-in, with the server's host key pinned. New command:
hl7-edge-gateway host-key. - In a cluster, one node polls a folder, and all nodes add to the same batch file.
Downloads as for 0.1.1, below.
0.3.0 (October 19, 2026)
Azure Service Bus as a source and a destination. See Azure Service Bus.
- Sources: a queue, or a topic subscription, received one message at a time; AA completes a message, AE abandons it for redelivery, AR dead-letters it with the reason.
- Destinations: a queue or topic, with MSH-10 as the message ID and the message type and sender as application properties for subscription filters.
- Sign-in with Entra ID (managed identity, AKS workload identity, or a client secret) or a shared access key, over AMQP (5671) or AMQP over WebSockets (443).
Downloads as for 0.1.1, below.
0.2.0 (October 19, 2026)
Routes now connect any source to any destination: MLLP, MLLPS, HTTP and HTTPS, with REST or SOAP.
- New sources: HTTP and HTTPS endpoints, REST (the ACK back as 200/400/503, or JSON) and SOAP 1.1/1.2. Several routes can share one port by path. See HTTP, SOAP and MLLP out.
- New destinations: MLLP and MLLPS, for sending into MEDITECH and other receivers, and SOAP web services from an envelope template.
- Security: OAuth2 / OpenID Connect tokens with required scopes or roles, API keys per caller, and IP allowlists on sources; OAuth2 client credentials and Salesforce sign-in for destinations. See Security.
- Each route has a
sourceand adestination; configurations from 0.1.1 keep working unchanged. The console shows both, and the Helm chart accepts them.
Downloads as for 0.1.1, below.
0.1.1 (October 16, 2026)
First release of the Lambogenius HL7 Edge Gateway: MLLP and MLLPS to HTTPS.
- Port mapping: one route per MLLP port, each posting to one HTTPS URL. See Routes.
- Pass-through or store-and-forward delivery, chosen per route, with strict ordering, retries and dead letters. See Delivery modes and ACKs.
- MLLPS with optional client certificates; private CAs, client certificates and custom headers for targets. See TLS.
- High availability on NATS JetStream: AA after quorum replication, one message per route in flight per cluster. See High availability.
- Admin console,
/health,/readyand Prometheus/metrics. - Licensing: a free developer license for test traffic (MSH-11
TorD); production traffic needs a paid license. See Licensing.
Downloads
| File | Runs on |
|---|---|
| Linux x86_64 (static binary) | Any 64-bit Intel or AMD Linux distribution, such as RHEL, Ubuntu, Debian or Alpine. No libraries needed. Includes systemd service files. |
| Windows x86_64 | 64-bit Windows 10 and 11, and Windows Server 2016 and later. |
| Docker image (linux/amd64) | Docker or Kubernetes on amd64 hosts. Signed with cosign; see Verify the Docker image in the Quick start. |
Download them from lambogenius.com after signing in, and check each file against SHA256SUMS.txt. There are no macOS or ARM builds yet. Verify the Docker image before loading it.