Security

Security, as built

Every statement on this page describes a mechanism that exists in the software today.

  • Sign-in

    One identity provider per tenant on OpenID Connect (authorization code with PKCE). Roles are granted per facility and checked against a fine-grained permission set on every request. Platform operators use a time-based second factor.

  • Tenant isolation

    A request for the wrong host is refused before any code runs; a token of another tenant is refused; a cell refuses to open another tenant's database. An automated isolation suite verifies this at every release.

  • Least privilege in the database

    Each module connects with its own database role and has rights on its own schemas only, so a module cannot write into another module's tables by accident. Connection limits per role bound what any one module can take.

  • Encryption

    TLS 1.2 and 1.3 everywhere, with publicly trusted certificates renewed automatically. Signing and encryption keys of the identity provider are protected at rest. The backup repository is encrypted.

  • Reports and files

    Report links are signed and short-lived, so a report cannot be opened outside the application. Files are written under new keys and never overwritten in place.

  • This website

    No cookies, no analytics, no third-party scripts or fonts. The demo-request form is rate-limited and size-capped, and a request creates nothing by itself: an operator reviews it first.

Reporting a vulnerability

Please write to shadi.alnamroti@phoenixhealth.sa. Our security.txt is at /.well-known/security.txt.