Security by default. Privacy by design.

Clinical systems earn trust with mechanics — not slogans. Here is what the evaluation build actually does, and where honesty still matters.

🔐 scrypt passwords

Never cleartext. Never logged. Minimum length enforced on register. Demo seed password is documented for evaluation only.

🪪 HMAC identity tokens

Role and subject bound — cannot forge another clinician’s principal or mint arbitrary roles.

🧊 AES-256-GCM sessions

API JSON bodies encrypt after login for the 8-hour session window with live timer and auto sign-out.

📜 Consent on every read

Kernel enforces TREAT grants on FHIR search and chart assembly. Companion revoke is immediate.

🧾 Append-only audit

Event streams are hash-chained; tampering fails integrity checks. Lossless replay is a kernel gate.

🚫 No body logging

Clients avoid payload analytics. Tokens stay out of third-party telemetry on this stack.

Honest limits

Browser DevTools on a compromised device can still inspect memory. Transport encryption hardens Network-tab snooping — it is not a substitute for device posture, SSO, HSTS, hardened CSP, and organisation policy in production deployments.

DPDP posture

Purpose-limited processing, patient ownership, revoke paths in Companion, and organisation-controlled retention for real deployments.

ABHA / ABDM

Demo OTP linking and directory scaffolds exist for national identity paths. Production binds to sandbox and programme rules.

AI safety doctrine

AI drafts. Humans sign. Nothing unsigned enters the kernel. Rx checks are advisory flags only.

Session discipline

8-hour window, live elapsed/remaining chrome, auto logout on expiry, encrypted session key held in client memory only.

ControlMechanism
Password storagescrypt hash · never cleartext
API identityHMAC-bound principal
Transport (post-login)AES-256-GCM body encryption
Clinical readsx-consent-ref / TREAT grant
IntegrityAppend-only hash-chained events