πͺ DoorOpener v1.13.0
π Security
- Fix: CSRF token missing for OIDC admin logins β admins authenticating via SSO were never issued an
admin_csrf_token, causing all CSRF-protected admin endpoints to be broken or bypassable for SSO users - Admin dashboard HTML now gated server-side β the full admin UI (forms, JS, API endpoint names) is only rendered when the session is authenticated; unauthenticated requests receive the login form only
- Fix: unauthenticated
GET /admin/backgroundβ endpoint now requires admin auth - IP-based rate limiting on
/admin/authβ the previous session-only limit could be bypassed by opening multiple browser sessions; failures now increment a per-IP counter so multi-session brute force is blocked - Replaced
imghdrwithfiletypeβimghdrwas removed from the Python stdlib in 3.13 and was unmaintained;filetypeuses proper magic-byte detection - Removed obsolete
X-XSS-Protectionheader β a no-op in all modern browsers and superseded by CSP test_modeandFLASK_DEBUGwarnings β both now log a prominent warning at startup (andtest_modeshows a banner in the admin panel) to prevent accidental production deployments with unsafe settings
β¨ New Features
- Public notice β post a short message from the admin panel that appears as a banner above the keypad (e.g. "Door out of service until Monday")
- Custom background image β upload a JPEG/PNG/GIF/WebP background from the admin panel (max 10 MB); the original default is preserved and can be restored at any time
- Pushbullet problem reporting β set
[pushbullet] api_tokeninconfig.inito enable a report button on the keypad; users can send messages directly to you, rate-limited to 3 per IP per hour - Optional page title β set
[server] page_titleto display a site name above the keypad
π¨ UI/UX
- Terminal-style "ACCESS GRANTED" animation on successful door open
- Access denied popup with scan line animation
- Page-bounce animation on Easter egg activation
- Toast notifications for door access errors
- Gear icon navigation button and GitHub link in the admin panel
- Admin panel layout refactored for better responsiveness
π¦ Dependencies
requests2.32.5 β 2.33.0authlib1.6.7 β 1.6.9filetype 1.2.0added (replacesimghdr)- Docker base image updated to Python 3.12
Full changelog: CHANGELOG.md