Placeholder

Security notes

A short, honest account of what this build does and does not do. It is a description of the code, not a certification.

Implemented

  • Authorisation is decided server-side in every page, Server Action and route handler. The proxy only routes; it never grants access.
  • Every query is scoped to one clinic, and clinician sessions are further scoped to their own patients through the appointment relationship.
  • Natural-language questions select from a fixed allowlist of query plans. No SQL is generated or executed from model output.
  • Suspended accounts cannot obtain a session, and every authenticated page load re-checks the account behind the token.
  • Content-Security-Policy, nosniff, frame-ancestors, Referrer-Policy and Permissions-Policy on every response; HSTS in production only.
  • Sign-in and demo entry are rate limited; exports and role changes are written to an audit log.

Not implemented

  • Rate limiting is in-process. On a multi-instance deployment it is per-instance, not global.
  • No multi-factor authentication, no session revocation list, no encryption at rest beyond what the database provider supplies.
  • No penetration test, no third-party audit, no compliance programme.

CliniqOps is a portfolio project, not a commercial product. Nothing on this page is a legal agreement, and no certification or regulatory compliance is claimed or implied.