Security
Phase 1 preview — pages render fixture data only; no changes are saved.
What lives where. The fields below are stored in the settings table. Session lifetime, secure cookies and sign-in throttling are environment-only and listed read-only underneath.
Controlled by the environment (read-only)
These behaviours have no settings screen in the legacy app. Change them in the server environment.
| Behaviour | Environment variable | Effective value | Actions |
|---|---|---|---|
| Session lifetime | SESSION_LIFETIME | 12000 minutes | |
| Expire session on browser close | EXPIRE_ON_CLOSE | No | |
| Secure cookies | SECURE_COOKIES | On (HTTPS only) | |
| Failed sign-ins before lockout | LOGIN_MAX_ATTEMPTS | 5 | |
| Lockout duration | LOGIN_LOCKOUT_DURATION | 60 seconds | |
| Two-factor codes per minute | TWO_FACTOR_MAX_ATTEMPTS_PER_MIN | 5 | |
| Password reset link validity | RESET_PASSWORD_LINK_EXPIRES | 900 seconds | |
| Password re-confirmation window | PASSWORD_CONFIRM_TIMEOUT | 10800 seconds | |
| Force SAML sign-in | REQUIRE_SAML | No | |
| Demo lock | APP_LOCKED | Off |
OIDC bearer validation
DisabledConfigured in the environment, not here: legacy has no settings screen for it, and none is invented. It only validates bearer tokens presented to the API; it is not an interactive sign-in.
| Environment variable | Purpose | Actions |
|---|---|---|
| OIDC_API_ENABLED | Master switch (default off). | |
| OIDC_API_ISSUERS | Comma-separated list of accepted token issuers (iss). | |
| OIDC_API_AUDIENCE | Comma-separated list of accepted audiences (aud). | |
| OIDC_API_JWKS_URI | Optional. Otherwise discovered from each issuer's .well-known/openid-configuration. | |
| OIDC_API_ALGORITHMS | Accepted signing algorithms (default RS256, RS384, RS512, ES256; HS* and none are never accepted). | |
| OIDC_API_USERNAME_CLAIM | Claim matched to a local username (default preferred_username). | |
| OIDC_API_LEEWAY | Clock skew allowance in seconds (default 60). |