Is the core really free for commercial use?
Yes. The core is MIT-licensed and stays fully usable
for production integration work. Pro unlocks advanced
features — MLLP listener, PHI masking and batch
tools, FHIRPath, the full XSD catalogue, unlimited saved
test cases — and Enterprise adds the SOAP 1.1/1.2
client with WS-Security and priority support, but
nothing that blocks day-to-day HL7 work. The test case
library is in every tier, and teams share it as pack
files (Export… / Import…) that the free
CLI runs in CI.
How much does Pro cost?
Pro is €249 per seat per year (launch offer:
€199 for the first year on licenses bought by
31 December 2026).
Enterprise is €499/year and adds priority support
plus the SOAP 1.1/1.2 client with WS-Security (WSDL
import coming soon). One seat covers two
activations, e.g. desktop + laptop. Prices
exclude VAT; multi-seat discounts from 3 seats.
How does activation and renewal work?
You receive an activation code (BL-PRO-XXXX-XXXX-XXXX) by
e-mail. Paste it into the License dialog: the app makes a
single HTTPS call, receives a signed license and from then
on everything is verified locally — nothing to keep
online. At start-up the app re-checks the code in the
background about once a week (it keeps working if the
server cannot be reached). When you renew, the same code is
extended server-side — no new code to distribute:
the app picks the new expiry up on its own within two
weeks of expiry, or instantly via Update
license in the License dialog.
Air-gapped machine? Write to
info@techemv.it with
your Hardware ID for an offline key.
What happens when my subscription expires?
BridgeLab keeps working: it falls back to the Community
tier with a renewal banner. Your files, plugins and test
cases stay untouched. Renew and re-paste your code to
re-enable Pro features on the spot.
Can I point BridgeLab at a real live feed?
That is the primary use case. Start a listener on
port 2575 — set to accept other machines, since
it listens on this computer only until you say
otherwise — send HL7 via MLLP from your feed, see
received messages in the inbox and open any of them
in a new editor tab. Auto-ACK is configurable per
listener.
How do you handle 10 MB messages with base64 PDFs?
The Rust backend uses a streaming zero-copy parser.
The editor holds the full text but shows each long
field folded, as a chip such as
⟨Base64 · 78.1 KB #1⟩,
so Monaco never lays out megabytes of base64. Expand
one field from the context menu, or all of them from
the status bar; saving always writes the whole text.
Does it work offline?
Fully. Parsing, validation, MLLP and HTTP targeting
local hosts, anonymization, export, CLI — none
require network access. Activating with an online
activation code needs a single HTTPS call; afterwards
the license is verified locally via Ed25519 signatures
with no license server involved. Fully offline signed
keys are available on request for air-gapped sites.
Does BridgeLab connect to the internet?
On its own, in three cases only — and never with
message content, file names or host names:
-
License activation. One HTTPS call
to
license-api.techemv.it when you paste
an activation code (and when you deactivate). A
license activated online repeats that call in the
background at start-up once a week (once a day from
14 days before it expires) to pick up a renewal or
a revoked code. Community, trial and offline keys
never make it.
-
Telemetry — off unless you turn it
on in Settings → Privacy. Then, once a
day, usage counters with product name, app version,
OS and architecture, language, license tier, days
since installation, number of active plugin packs,
a timestamp, a random installation ID and — for
licenses activated online — the activation code
(used to flag revoked licenses) go to
license-api.techemv.it; the app shows the
exact JSON before you opt in. IT can force it off for
every user with BRIDGELAB_DISABLE_TELEMETRY=1
or the same policy.json.
-
New-version check. Once a day at
start-up, an anonymous request to
api.github.com for the latest release
number — nothing is downloaded or installed.
The installer (or the app, at first start) asks
before it ever runs; switch it off in Settings
→ Privacy, or for every user of a machine with
BRIDGELAB_DISABLE_UPDATE_CHECK=1 or a
policy.json.
Everything else goes only where you point it: MLLP,
HTTP/FHIR and SOAP to the endpoints you type, and
Help → Check for updates when you click
it. No crash reporting, no analytics, no fonts or
scripts from a CDN. On an air-gapped machine an offline
key needs no connection at all.
What about PHI and data residency?
BridgeLab processes every message locally. Nothing
leaves your machine unless you explicitly send it via
the Communication panel. Session tabs, test cases and
the communication history are kept in a local database
(on Windows in the roaming %APPDATA%, which
travels with roaming profiles). The history keeps the
full request and response of the latest 100 exchanges
(up to 256 KB each), messages received by the MLLP
listener included, so it holds the patient data they
carry. Telemetry is off by default
and, when enabled in Settings → Privacy, carries
usage counters, app version, OS, language, license tier,
a random installation ID and, for licenses activated
online, the activation code — never message
content or patient data. The exact JSON payload can be
previewed in the app before opting in; see the
privacy policy.
How do plugins work?
Drop a JSON file in
<config>/BridgeLab/plugins/validation/,
/fhir/ or
/anonymization/.
The app loads it at startup or on demand via
Settings → Plugins. No code runs — plugins
are declarative rules. Every tier runs every kind of
pack; Community keeps up to 3 active at once, Pro has
no cap. See
PLUGINS.md.
Which HL7 versions are supported?
v2.1 through v2.7.1 for segment / field schemas
(ten versions, 2,320 selectable message structures)
plus the 394 HL7 value tables behind the coded fields.
Custom (Z-) segments parse, edit and validate cleanly;
the Field Inspector shows their fields as not in the
HL7 standard, since it reads the built-in definitions
only. Plugin packs can add validation rules and PHI
fields for them.
Is there a CLI?
Yes —
bridgelab-cli validate,
info,
anonymize,
to-json,
batch,
test (runs the test case packs you export
from the app), fhirpath,
send (MLLP, fails unless the ACK is AA or CA)
and xsd. Free, no licence; reads files or
standard input and outputs JSON or JUnit XML so you can
wire it into CI. The Linux binary needs glibc 2.34 or
newer (Ubuntu 22.04, Debian 12, RHEL 9).