New Features, Enhancements & Fixes
This release brings full OIDC SSO integration, new exact expiration date input, fine-grained registration control, smoother UI responsiveness, and memory optimization for lower-resource environments. It also includes a range of bug fixes and visual improvements.
Many thanks to all users who’ve submitted issues and shared feedback , your input directly shapes Warracker’s development!
✨ New Features
OIDC Single Sign-On (SSO)
Users can now log in using external identity providers (Google, GitHub, Keycloak, etc.) via OIDC.
- Supports dynamic OIDC client configuration.
- New “Login with SSO Provider” button initiates secure flow.
- Automatic user provisioning on first login (when enabled).
- Seamless integration with existing settings and login flow.
Files:
backend/app.py
,backend/oidc.py
,frontend/auth-redirect.html
,frontend/script.js
,frontend/settings-new.html
,frontend/settings-new.js
Registration Control for SSO
New toggle prevents SSO-based account creation when general registration is disabled.
- First account is always allowed (for bootstrapping).
- Blocks unauthorized new user creation via SSO.
Files:
backend/app.py
,frontend/auth-redirect.html
,frontend/script.js
Provider-Aware Branding for SSO
SSO login buttons now show recognizable labels and brand colors.
- Automatically detects major providers (Google, Microsoft, GitHub).
- Falls back to generic label if unknown.
Files:
frontend/script.js
,frontend/style.css
Exact Expiration Date Input
Users can now select a specific expiration date for each warranty.
- Option to toggle between "duration" and "exact date".
- Displays calculated duration when exact date is entered.
Files:
frontend/index.html
,frontend/status.html
,frontend/script.js
,backend/app.py
Instant UI Updates for Warranty Fields
Warranty changes now reflect immediately in the interface.
- No need to reload the page after edits.
Files:
frontend/script.js
,frontend/status.html
Memory Optimization Modes
New environment variable enables lighter server modes:
WARRACKER_MEMORY_MODE=optimized
(~60MB)ultra-light
(<50MB, reduced features)performance
(4 workers, ~200MB)
Files:
backend/app.py
,docker-compose.yml
🔄 Changes
Environment-Based OIDC Config
OIDC settings can now be injected via environment variables:
OIDC_CLIENT_ID
,OIDC_ISSUER_URL
, etc.- Simplifies configuration for Docker deployments.
Files:
docker-compose.yml
,backend/app.py
UI & Styling Improvements
- Added hover states and brand color schemes to SSO buttons.
- Streamlined modal UX for editing warranties.
- Enhanced error validation and transitions.
Files:
frontend/script.js
,frontend/style.css
🐛 Fixes
- Blank Redirect Fix: Resolved issue with blank screen post-SSO login.
- Missing Element Check: Avoided JS crashes from null
classList
references. - Duplicate JS Loading: Removed repeated imports of
auth.js
. - Tag Creation Errors: Fixed DB constraint issues when users created tags with identical names.
- Token Usage: Replaced direct
localStorage
access withauth.getToken()
for better SSO handling. - Dropdown Menu IDs: Unified logic for user menu buttons.
- Modal Display Bugs: Fixed layout inconsistencies on the warranty modal.
- Logout Button on About Page: Ensured logout flow works reliably across all views.
- Date Calculations: Improved handling of leap years and month rollovers for duration inputs.