Public Access
feat(auth): harden sessions + HA Ingress support
- backend: settings SESSION_COOKIE_SECURE + TRUSTED_NETWORK_AUTO_AUTH, require_session uses secrets.compare_digest and respects trusted-network opt-in, main.py adds require_family_session middleware gating all /api/ routes except auth/admin/email-vote-token paths - docker-compose: pass SESSION_COOKIE_SECURE + TRUSTED_NETWORK_AUTO_AUTH through to backend + scheduler (fixes env-file changes not reaching runtime) - frontend: Ingress path-prefix support (APP_BASE_PATH, BrowserRouter basename, vite base './'), Login redirect honors APP_BASE_PATH - nginx: no-cache headers on root + /assets/ - docs: Home Assistant Ingress install/troubleshooting + plan file - tests: test_auth expects 401 on no-session GET Defaults: SESSION_COOKIE_SECURE=false, TRUSTED_NETWORK_AUTO_AUTH=true (HA is the auth boundary; MealPlanner must not be port-forwarded directly).
This commit is contained in:
@@ -25,6 +25,8 @@ services:
|
||||
- SECRET_KEY=${SECRET_KEY}
|
||||
- ADMIN_TOKEN=${ADMIN_TOKEN}
|
||||
- SESSION_PASSWORD=${SESSION_PASSWORD}
|
||||
- SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE:-false}
|
||||
- TRUSTED_NETWORK_AUTO_AUTH=${TRUSTED_NETWORK_AUTO_AUTH:-true}
|
||||
- EMAIL_BACKEND=${EMAIL_BACKEND:-console}
|
||||
- ADMIN_EMAIL=${ADMIN_EMAIL:-}
|
||||
- APP_BASE_URL=${APP_BASE_URL:-http://localhost}
|
||||
@@ -63,6 +65,8 @@ services:
|
||||
- SECRET_KEY=${SECRET_KEY}
|
||||
- ADMIN_TOKEN=${ADMIN_TOKEN}
|
||||
- SESSION_PASSWORD=${SESSION_PASSWORD}
|
||||
- SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE:-false}
|
||||
- TRUSTED_NETWORK_AUTO_AUTH=${TRUSTED_NETWORK_AUTO_AUTH:-true}
|
||||
- EMAIL_BACKEND=${EMAIL_BACKEND:-console}
|
||||
- ADMIN_EMAIL=${ADMIN_EMAIL:-}
|
||||
- APP_BASE_URL=${APP_BASE_URL:-http://localhost}
|
||||
|
||||
Reference in New Issue
Block a user