Plan your launch

Security · measured Aug 27, 2026 · 15:01 UTC

Isolation you can check, not a page you have to believe.

Most security pages describe intentions. The controls below are read from the database catalogue when you load this page, so they describe the system as deployed. If someone on this team ships a table without row-level security, the number moves that day — not at the next audit.

passingEvery published control passes

Measured from the database catalogue at the moment you loaded this page, not from a document written at audit time.

Measured controls

Row-level security on every tenant table

209 / 209pass

Tenancy is enforced by the database, not by a WHERE clause someone can forget. Counted from pg_catalog, so a table shipped without it moves this number the same day.

every ah_ table has row level security enabled

No privileged function in the public schema

0 / 0pass

A SECURITY DEFINER function in `public` runs as its owner and is reachable by anyone holding execute. Every one of ours lives in a private schema behind an explicit grant.

Privileged implementations live in ambition_private, never in public

The anonymous role reaches no privileged function

0 / 0pass

An unauthenticated caller holds execute on nothing in the private schema. Measured by asking the catalogue, not by reading the grant statements we intended to write.

anon holds execute on no privileged implementation

The anonymous role can read no tenant table

0 / 0pass

Before any policy is consulted, the anonymous role has no select privilege on a single tenant table. Policies are the second line here, not the first.

anon holds select on no ah_ table

Every compliance scan names the rulebook that judged it

pass

A scan result is only evidence if you can say which version of the rulebook produced it. Scans without that attribution are counted and reported internally.

The model

Tenancy is resolved from membership, not from a request

A caller's organisation and brand are derived inside the database from their membership rows. Nothing a client sends — no header, no body field, no query parameter — can widen what they can see, because the identity the policies consult is never taken from the request.

Policies are role-qualified

Every policy names the roles it applies to rather than relying on a single permissive rule. A policy written for an operator does not accidentally hold for an anonymous caller, which is the failure that turns one missing predicate into a full table read.

Privileged code lives outside the reachable schema

Functions that need to run with elevated rights sit in a private schema and are granted individually. The public schema — the only one an API client can reach — contains no privileged implementation at all, so there is nothing there to find.

Second-factor state is enforced in the database

Administrative surfaces require a second factor, and that requirement is evaluated in the same policies that evaluate tenancy. An application bug cannot route around it, because the application is not the thing checking.

Isolation test suite

1,725Database assertions run against every migration
67Suites, each transactional and leaving no fixtures behind
36Suites that assume a real unprivileged role rather than testing as an administrator

The third figure is the one worth reading. A database test that runs as the owner never consults row-level security at all, so it proves the query works and nothing about who may run it. 36 of these suites switch into the real anon or authenticated role first and then assert what that role can and cannot reach — including one suite dedicated to the anonymous role specifically. This figure is generated from the suite files, so a suite that stops doing it lowers the number here.

SuiteCoversAssertionsRuns as
0015_sprint_zero_database_contracts.sqlThe test is transactional and leaves no fixtures behind2admin only
0016_sprint_zero_contract_lock.sqlSprint 0 contract-phase adversarial behavior tests7authenticated
0017_sprint_one_provider_task_lifecycle.sqlSprint 1 provider-task lifecycle adversarial contract6authenticated
0018_sprint_one_communication_roundtrip.sqlSprint 1 governed communication round-trip adversarial contract9authenticated
0019_st021_fresh_rls_matrix.sqlST-021: fresh-database authorization contract148anon, authenticated
0020_onboarding_writers.sqlOnboarding writers: multi-store and 503A partner activation contract15authenticated
0021_st027_invite_membership.sqlST-027: invitation identity, delivery, acceptance, and membership contract80authenticated
0022_st028_membership_context.sqlST-028: multi-organization context and effective membership administration64authenticated
0023_st029_membership_resolution.sqlST-029: membership-native identity helpers, RLS, and cross-role context40authenticated
0024_st030_totp_aal2.sqlST-030: TOTP readiness, AAL2 network-admin enforcement, and audit boundary24authenticated
0025_sprint_1_2_control_plane.sqlSprint 1/2: control-plane isolation, environment guards, and portal scope28authenticated
0026_launch_and_environment_path.sqlLaunch finalization and the customer environment path16authenticated
0027_brand_scope_and_theme.sqlMulti-brand operator scope and per-brand storefront theming12authenticated
0028_brand_logo.sqlBrand logo: storage posture and the cross-brand boundary12authenticated
0029_claim_provenance_and_formulary.sqlClaim provenance, the formulary refusal, and the publish gate22admin only
0030_api_credentials.sqlSelf-serve API credentials: the secret is never recoverable, and the resolver is never reachable by a tenant16admin only
0031_gateway_delivery_engine.sqlThe webhook delivery state machine21admin only
0032_pharmacy_licensure_routing.sqlPharmacy licensure is enforced at routing, and refusals are evidence15admin only
0033_subscription_compliance.sqlSubscription billing, held to the complaint the FTC actually files20admin only
0034_clinical_guardrails.sqlContraindications stop a prescription, and a compounded one needs a determination that is actually about the patient14admin only
0035_reliability_evidence.sqlA published number has to be a measured one16admin only
0036_security_posture_and_analytics.sqlPosture read from the catalogue, and the revenue mix that screens an operator16admin only
0037_analytics_surface_wrappers.sqlThe sprint 13–20 analytics are reachable by the server and by nobody else13admin only
0038_slo_measurement.sqlThe collector derives observations and never invents them18admin only
0039_multi_brand_at_scale.sqlBrand templates, honest batches, and the formulary ratchet44admin only
0040_marketplace.sqlThe three marketplaces, and the one thing they all have to get right57admin only
0041_enterprise_readiness.sqlEnterprise readiness: what the SSO, BAA, SLA, and accreditation controls must refuse41admin only
0042_pharmacy_hold_reason_constraint.sqlA held pharmacy carries a reason, and the constraint can actually say no7admin only
0043_role_guard_null_safety.sqlA caller with no role is refused by the guards written to refuse them17authenticated
0044_onboarding_formulary_selection.sqlThe formulary selection an operator records before they sign44authenticated
0045_funnel_and_refill_adherence.sqlThe funnel refuses to round, and adherence refuses to comfort30admin only
0046_enterprise_enforcement.sqlEnterprise enforcement: what the wired controls actually refuse21authenticated
0047_launch_gate_enforcement.sqlThe launch gate: what it derives, what it refuses, and what it records31authenticated
0048_domain_tls_provisioning.sqlCertificate provisioning, and a live hostname a check cannot darken44authenticated
0049_tenant_audit_export.sqlTenant audit export: what it must refuse, and what it must never render as "no activity"16authenticated
0050_append_only_grants.sqlAn append-only table withholds the grants it is append-only about6admin only
0051_configuration_gate_and_sso_revocation.sqlThe readiness predicate is uniform, and a revoked membership stops enforcing10admin only
0052_iam_capability_projection.sqlFourteen roles the database called one, told apart40authenticated
0053_iam_workflow_safe_mutations.sqlA command that cannot be gone around, and a grant that is actually gone31authenticated
0054_iam_exact_role_cutover.sqlExact-role cutover contract19admin only
0055_identity_lifecycle_and_ownership.sqlTECH-IAM-007: environment-bound invitations, authority revalidation, two-party ownership transfer, and session/invitation invalidation30authenticated
0056_governed_asset_uploads.sqlTECH-IAM-008: authorization-first quarantine, scan, finalize and cleanup29authenticated
0057_hosted_auth_posture.sqlHosted Auth signup abuse and admission posture7admin only
0058_service_role_append_only_acl.sqlService-role append-only ACL normalization6admin only
0059_clinical_identity_and_credential_truth.sqlTECH-DATA-006/007: no fabricated identity or array-only licensure22authenticated
0060_prescription_and_copy_tuple_truth.sqlTECH-DATA-002/005: prescription readiness is one exact clinical tuple21admin only
0061_payment_subscription_and_financial_rls_truth.sqlTECH-DATA-003/004 + P0-RLS-01: exact financial tuples and scoped reads25authenticated
0062_operational_task_state_machine.sqlTECH-DATA-009: overdue work is a durable, authorized operating loop29authenticated
0063_evidence_chain_server_verification.sqlTECH-DATA-011: verification is recomputed and attested by the server24authenticated
0064_durable_support_loop.sqlSprint 3 support is one durable, idempotent operating loop from patient acceptance through workforce resolution32authenticated
0065_gateway_worker_loop.sqlSprint 3 gateway worker leases, settles, recovers, and opens owned exceptions25admin only
0066_gateway_exact_audience.sqlGateway metadata is exact-role, exact-tenant, and safe-column scoped16authenticated
0067_operations_snapshot.sqlST-024 / TECH-DATA-009: the operations projection is one bounded command, but remains at least as strict as the row policies it replaces11authenticated
0068_participant_workspace_snapshots.sqlST-024 / TECH-PERF-002: clinician and patient pages collapse their reads without weakening the exact participant tuple or the provider MFA boundary18authenticated
0069_native_prescription_rail.sqlNative prescription rail: immutable signature, exact states, narrow browser writes44admin only
0070_native_prescription_rail_compatibility.sqlLegacy synthetic fixtures coexist with strict native Rx tuples5admin only
0071_real_launch_authorization.sqlReal-patient production authority is exact, independent, and re-derived34admin only
0072_immutable_clinical_encounter.sqlEncounter notes are append-only drafts, one AAL2-signed record, and sealed addenda28admin only
0073_prescription_clarification_roundtrip.sqlPharmacy clarification responses are exact, AAL2-signed, durable, and delivered separately30admin only
0074_prescription_supersession.sqlSigned prescriptions are corrected only through an exact, separately signed replacement25admin only
0075_real_launch_operations_workspace.sqlThe real-launch cockpit is minimum-necessary, AAL2-only, and scoped to the exact administrator, prescriber, or 503A partner assignment28authenticated
0076_service_role_guarded_acl.sqlHosted default privileges must not broaden the worker beyond its reviewed read-only gate and payload contract14admin only
0077_cross_organization_clinical_record_ownership.sqlAn independent medical-group membership can document care for a tenant-owned brand without changing which organization owns the resulting clinical record11authenticated
0078_regulated_workforce_invitations.sqlPrescriber and pharmacy-partner invitation lifecycle23authenticated
0079_patient_referral_invitations.sqlInvite-only patient enrollment: exact referral scope and fail-closed acceptance34authenticated
0080_scoped_real_launch_authorization.sqlA real-launch authorization now carries an approved *set* of states, products, and prescribers instead of one scalar triple34admin only
0081_prescriber_credentialing.sqlCredentialing a prescriber is the operational bottleneck of a multi-state programme: the work is "verify one licence" repeated per state28authenticated

What this page does not claim

These are structural measurements, not a certification. A passing posture means the controls described above are in force in the deployed database; it does not mean an independent assessor has reviewed them. Where a third-party attestation exists we will link it here and say who performed it and when — an unattributed badge is not evidence.

Reliability is measured separately and published on the status page, including objectives we are currently missing. The compliance rulebook and formulary that gate what a brand may publish are readable without an account at the API reference.