mirror of
https://github.com/getumbrel/umbrel.git
synced 2026-10-12 02:14:08 +00:00
Replace JWT-based authentication and the separate app-auth/app-proxy containers with opaque, server-side sessions managed by umbreld. Centralizing authentication reduces moving parts and secret sharing while enabling reliable revocation, session management, and cleaner future multi-user authorization. - Issue separate credentials for the dashboard API, browser HTTP endpoints, and app gateways, plus short-lived one-time app handoffs and WebSocket tickets. Only credential hashes are persisted, and active credentials remain stable when sessions renew. - Move app authentication and proxying into umbreld while preserving LAN and Tor access, HTTP and HTTPS, existing `app_proxy` configuration, public path rules, WebSockets, and branded app startup errors. - Protect file, media, log, upload, and dashboard API requests with paired, session-bound credentials so leaking either a URL token, cookie, or bearer token is insufficient on its own. - Update the dashboard login, renewal, and logout flows; transparently authenticate app launches; and add Active Sessions to Advanced Settings with signed-in/last-seen details and controls to revoke one, other, or all sessions. - Consolidate app authentication into the shared UI build and remove the legacy JWT, auth-server, app-proxy containers, and their dependencies. Existing JWTs are intentionally not migrated, so users sign in once after the OTA. New sessions then persist across umbreld restarts and future updates. --------- Co-authored-by: lukechilds <[email protected]>