The controls a clinical operations buyer actually asks for.
Tenant isolation, role-based access, append-only audit history, secure patient links, and PHI-conscious notifications are built into Rosiflow's core. This page sets out the security model and the joint operational + legal posture each clinic adopts before going live with PHI.
How Rosiflow handles protected health information.
Rosiflow ships the technical primitives for handling protected health information: row-level security, append-only auditing, role-based access, encrypted transport, and PHI-conscious notification design. HIPAA coverage is a joint operational + legal posture between Rosiflow and the covered-entity clinic. The deployment checklist at the bottom of this page sets out what each side completes before a clinic uploads live PHI.
The database is the boundary.
Six roles enforced at every layer.
Every clinic operation is gated by one of six named roles. Permissions are enforced at the database through security-definer helpers — not just in UI.
Append-only. No delete UI.
Every state-changing server function writes one audit row. Support sessions write rows too — including the close event with the count of attempted writes.
Read-only impersonation — no exceptions, no toggles.
MFA + IP allowlist for superadmin access (operator-toggled).
For platform-admin operations on top of the read-only impersonation model, three env vars give the operator additional control: SUPERADMIN_REQUIRE_MFA=true checks the Supabase JWT for AAL2 assurance; SUPERADMIN_ALLOWED_IPS takes a comma-separated CIDR / exact-IP list; SUPERADMIN_SECURITY_MODE picks warn (audit + UI hint, never block) or enforce (audit + UI hint + 403 on failed check). Recommended rollout: warn for a week of observation, then enforce. Allowlist contents are never logged — only the SHA-256 hash of the caller IP enters the audit metadata.
Cited, branded, never fabricated.
No identifiers in email envelopes.
We never email patient identifiers, MRN, or diagnosis text. The email envelope contains only a portal link or a notification subject like "New intake submitted." The clinical context lives behind the portal link / app session — both require Supabase Auth. Patient portal tokens are stored as SHA-256 hashes on the server; the raw token never enters the database after the initial generation.
Where Rosiflow's compliance posture is heading.
Bring your security team.
We walk reviewers through the controls, the gating checklist, and the read-only impersonation matrix. Conservative answers — no hand-waving.