portal_auth
JWT authentication for the client portal. 72-hour sessions.
Connections
- database: portal_users.db (SQLite)
- built with: bcrypt, PyJWT, FastAPI
- consumed by: all /portal/* routes
- separate: intake-auth (intake portal has own JWT)
Notes
- Roles: scheduler, assistant, goa, triage, up_admin, up_owner
- Cookie-based JWT with 72hr expiry
- SQLite user database at /data/portal-auth/portal_users.db