Security by design
Your data cannot leak between centres or to an attacker.
- Row-level security on all 27 tenant tables, enforced by Postgres. The table list is derived from the schema, so it cannot fall out of date.
- The operator console requires an authenticator app on top of an emailed code. Recovery codes are stored hashed.
- The sign-in page returns an identical response for known and unknown email addresses, so it cannot reveal who is enrolled.
