github sassanix/Warracker 0.10.1.7
0.10.1.7-beta

latest releases: 0.10.1.10, 0.10.1.9, 0.10.1.8...
one month ago

πŸ“¦ Release 0.10.1.7 – Config Made Right, Modular Codebase, Zero-Hassle Setup

Thanks again for all your feedback! This release is a major step forward in configuration reliability, code maintainability, and PostgreSQL compatibility. From fixing tricky environment variable issues to restructuring the backend into clean Flask Blueprints, this version is all about making the system smarter, leaner, and easier to deploy.


βš™οΈ Configuration Just Works Now

🧬 Environment Variables Now Take Precedence

  • Fixed critical bug where environment variables (e.g., OIDC, Apprise, email settings) were ignored on fresh setups.
  • Respected priority order:
    • Env Variable > DB Setting > Hardcoded Default
  • Applied across:
    • OIDC (OIDC_ENABLED, etc.)
    • Apprise (APPRISE_URLS, etc.)
    • Base URL (APP_BASE_URL)

βœ… Impact: Fresh Docker-based setups can now be fully configured via .env files without touching the DB. Frontend correctly reflects OIDC state.


πŸ§ͺ PostgreSQL That Doesn’t Fight Back

πŸ” Graceful Migration Handling for Limited DB Privileges

  • Fixed startup-blocking errors caused by missing CREATEROLE privileges.
  • Migrations now use safe DO blocks with exception handling.
  • Advanced role grants are attempted but skipped with warnings if not permitted.

βœ… Impact: Works out of the box with non-superuser PostgreSQL roles. No more blocked migrations!


🧩 Modular Backend with Flask Blueprints

🧼 Clean Code, Isolated Features

Massive refactor: extracted major backend routes into dedicated Blueprint modules:

Feature Area New Module Lines Extracted
Warranty Logic warranties_routes.py ~1,500 lines
Admin Management admin_routes.py ~635 lines
Statistics statistics_routes.py ~390 lines
Tag Management tags_routes.py ~323 lines
File Handling & Paperless file_routes.py ~781 lines

βœ… Impact: Smaller app.py, easier maintenance, no behavior changes.


πŸ—οΈ Flask Application Factory Implemented

  • Converted to modular app creation using create_app() method.
  • Added:
    • config.py for environment-aware settings
    • Centralized extensions.py for clean extension loading
  • Updated:
    • Dockerfile now runs with gunicorn "backend:create_app()"

βœ… Impact: Production-ready architecture. Easier testing. Real separation of config, extensions, and entry logic.


🧩 Critical Endpoint Restorations

  • Fixed accidental removal of key endpoints:
    • /api/currencies (for frontend dropdowns)
    • /api/settings/global-view-status (for user permissions)

βœ… Impact: Frontend UI loads correctly again, no more 404s on currencies or permissions.


πŸ” Status Page + Document Fixes

πŸ“‹ Status Page Now Shows Full Warranty Details

  • Added missing /api/debug/warranty/<id> endpoint
  • Fixed JavaScript bug in toast notifications

βœ… Impact: Clicking a row now shows full details + documents, without console errors.

πŸ“„ Paperless-ngx Documents Now Visible

  • Updated logic to include Paperless-ngx docs in:
    • Warranty cards
    • Status page
  • Clearly distinguishes local vs cloud storage with icons

βœ… Impact: Users now see all attached docs, no matter the source.


Modified Files:

  • backend/__init__.py, app.py, config.py, extensions.py
  • backend/auth_routes.py, notifications.py, oidc_handler.py, apprise_handler.py
  • backend/admin_routes.py, warranties_routes.py, statistics_routes.py, tags_routes.py, file_routes.py
  • backend/migrations/009z_*.sql, 010_*.sql, 011_*.sql
  • frontend/script.js, frontend/status.js, frontend/settings-new.js
  • Dockerfile

Don't miss a new Warracker release

NewReleases is sending notifications on new releases.