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.