Skip to content
Security posture

What is enforced, what is verified, and what is missing.

Written so an evaluator can decide without a call. The gaps are listed at the same weight as the controls, because you will find them anyway.

The grade is a live self-test

Every deployment can grade itself A–F. The probe creates a synthetic patient, drives real requests through the running stack, and checks seven properties against what actually comes back. Nothing is asserted from configuration.

Check it against the running deployment

app.healthclaw.io/r6/fhir/$conformance

This page prints no grade. It would be a copy of a number that changes, and a stale copy always reads as the better one. The check runs on request, so what you get is what is true when you ask.

What the grade is not

It is a self-test of the guardrail layer, not an audit, not a certification, and not a HIPAA compliance determination. It says the controls fired on a synthetic record a moment ago. It says nothing about the organisation running the deployment, its hosting, or its staff.

The seven properties

These are the names in the code, so a result you read here matches a result you get from the endpoint.

PropertyWhat passing means
phi_redactionNames, phone numbers and identifier-class fields do not come back in full on reads or searches.
audit_trailEvery resource access writes an AuditEvent, and the audit detail itself carries no PHI.
step_up_enforcementA write without a valid signed token is refused.
human_in_the_loopA clinical write without human confirmation is blocked with a 428, and an approved one is accepted.
tenant_isolationA request scoped to one tenant cannot read another's records.
medical_disclaimerClinical reads carry a disclaimer, applied by the server rather than the prompt.
error_fidelityFailures are reported truthfully: an upstream auth failure is not reported as "not found", and a degraded read is not reported as an empty one.

The last one is the unusual entry, and it is the one this project cares about most. A guardrail that returns nothing when it could not check looks identical to a guardrail that checked and found nothing. Every serious defect found in this codebase has been a version of that.

Where PHI can and cannot go

What is missing

If any of these is disqualifying for your process, it will still be disqualifying in month three.

No SOC 2, no HITRUST

There is no third-party audit report today. What exists instead is the live conformance check, a public test suite, and a public incident history. That is evidence, not a substitute for an audit.

Redaction is Safe-Harbor-style, not a determination

Field redaction removes identifier-class fields. It is a compensating control. It is not HIPAA Expert Determination and must not be described as de-identified data in a filing. A profile-specific recursive allowlist and an Expert Determination path are on the roadmap.

Not a covered entity or business associate

An organisation running this against real patient data owns its own compliance, agreements and controls. Terms, section 5 is the governing text.

One maintainer

There is no support rota and no contractual response time. For a design partnership that is usually acceptable. For a production dependency it is a risk you should price.

Controls that are in place

Reporting a vulnerability

Email security@healthclaw.io. Please include what you did, what you expected, and what happened. If it involves patient data on a deployment you do not operate, report it without retrieving more of it than the report needs.

Findings are fixed in the open. The repository carries the write-ups, including the ones that were the maintainer's fault.

If you are evaluating this formally

Available today, on request: the conformance output for your own deployment, the test suite and its coverage of these properties, the architecture documentation, and a written account of known gaps that matches this page.

Not available today: a SOC 2 report, a signed BAA, or a penetration test report from a third party. Ask anyway if you need them, because knowing who is asking changes what gets built next.