254 Commits

Author SHA1 Message Date
sassanix 6b1cb4ed83 Fix first user registration failure on fresh deployments
Resolved a critical issue preventing the first user from registering on newly deployed instances. The fix includes:

- Added missing logger import in `backend/auth_routes.py`, resolving a "logger not defined" error.
- Improved the `owner` check in `backend/app.py` to account for missing `is_owner` column during initial database migrations.
- Implemented graceful error handling for column existence checks to prevent runtime failures during startup.
- These fixes ensure smooth initial registration without internal server errors on fresh deployments.
0.10.1.2
2025-06-16 08:14:52 -03:00
sassanix ea4b28fb0b Update README.md 2025-06-15 23:36:55 -03:00
sassanix 47a42fb388 feat: Add currency controls, owner role, OIDC-only mode & key enhancements
This major update introduces several significant new features, critical bug fixes, and key enhancements across the application, focusing on user customization, administration, and system stability.
New Features
Currency Position Control: Allows users to choose whether the currency symbol appears on the left or right of numbers. This setting is applied universally across the app, including warranty cards and forms, and is saved per-user.
Super-Admin (Owner) Role: Implements an immutable Owner role for the primary administrator, who cannot be deleted or demoted. A secure ownership transfer process has been added to the admin settings.
OIDC-Only Login Mode: Adds a site-wide setting to enforce OIDC-only authentication, which hides the traditional username/password login form to streamline SSO environments.
Product Age Tracking & Sorting: Displays the age of a product (e.g., "2 years, 3 months") on warranty cards and adds a new "Sort by Age" option to organize items by their purchase date.
Global View Photo Access: Permits users to view product photos on warranties shared in global view, while ensuring other sensitive documents like invoices remain private to the owner.
Persistent View Scope: The application now remembers the user's last selected view (Global or Personal) and automatically loads the appropriate data on page refresh for a seamless experience.
Export Debug Tools: Introduces a comprehensive debugging system, including a new debug page and API endpoint, to help administrators troubleshoot and verify warranty exports.
Key Enhancements
About Page Redesign: A complete visual overhaul of the "About" page with a modern, card-based layout, prominent community links, and improved branding.
Flexible Apprise Notifications: Admins can now configure Apprise notifications to be a single global summary or sent as per-user messages. Additionally, the scope can be set to include warranties from all users or only the admin's warranties.
Larger Product Photo Thumbnails: Increased the size of product photo thumbnails in all views (grid, list, and table) for better product visibility.
Smart Currency Default: The "Add Warranty" form now intelligently defaults to the user's preferred currency setting, rather than always using USD.
Bug Fixes
Critical OIDC & Proxy Fixes: Resolved two major OIDC issues: a RecursionError with gevent workers and incorrect http:// callback URLs when behind an HTTPS reverse proxy, enabling reliable OIDC login.
Critical User Preferences Persistence: Fixed a bug where user settings for currency symbol and date format were not being saved correctly to the database.
Apprise & Notification Settings: Corrected an issue preventing user notification channel and Apprise timing settings from saving. The Apprise message format is now standardized, and the admin UI has been cleaned up.
CSV Import Currency: Ensured that warranties imported via CSV correctly use the user's preferred currency instead of defaulting to USD.
Maintenance & Refactoring
Authentication System Refactoring: Migrated all authentication-related routes from app.py into a dedicated Flask Blueprint (auth_routes.py) to improve code organization and maintainability.
Legacy Code Cleanup: Removed over 290 lines of orphaned and commented-out legacy OIDC code from the main application file.
0.10.1.1
2025-06-15 23:26:23 -03:00
sassanix 10635c0fdf Update README.md 2025-06-12 16:02:45 -03:00
sassanix 89c0e3095f Update README.md 2025-06-12 11:27:33 -03:00
sassanix 56862a20f1 New screenshots and acknowledgement for apprise 2025-06-12 10:53:41 -03:00
sassanix 5fc8cbe56c Create .gitignore 2025-06-11 20:07:22 -03:00
sassanix 71a406d20e Created .dockerignore 2025-06-11 20:01:48 -03:00
sassanix e43d32ab40 Update README.md 2025-06-11 08:46:07 -03:00
sassanix 997466824d Updated features 2025-06-10 22:36:53 -03:00
sassanix 7535e8d1ef Public Global View, Apprise Integration, Filtering, and Major Fixes
### Major Features
- **Public Global Warranty View:** All authenticated users can now view global warranties. Admins retain full control; regular users get read-only access to others’ warranties.
- **Global View Admin Controls:** Admins can now toggle global view availability and limit it to admins only via site settings.
- **Global Status Dashboard View:** Extended global view to warranty statistics and dashboards with full permissions enforcement.
- **Apprise Push Notifications:** Integrated Apprise for multi-platform warranty alerts with extensive backend and frontend support (80+ services).
- **Warranty Type Filtering/Sorting:** Introduced dynamic, case-insensitive filtering and sorting by warranty type on the main page.
- **Admin Global Warranty View:** Dedicated admin tools and UI for viewing all warranties with enhanced styling and user info.

### UX/UI Enhancements
- **Product Photo Thumbnails:** Added interactive, responsive photo previews on warranty cards across all views.
- **Updated Footer Links:** All "Powered by Warracker" footers now link to the official website (`https://warracker.com`).

### Fixes and Stability Improvements
- **Status Dashboard Chart Fixes:** Resolved canvas reuse errors and chart switching issues.
- **CSS Cache Busting:** Ensured consistent styling across domain/IP access by versioning CSS/JS and updating service worker.
- **Settings Access Fixes:** Regular users can now access the settings page without triggering admin-only API calls.
- **Settings Persistence Fixes:** Addressed major frontend/backend issues preventing correct saving/loading of user preferences.
- **Notification Timing Overhaul:** Rewrote logic for precise notification delivery and implemented duplicate prevention.

### Security and Technical Enhancements
- Global view maintains secure ownership enforcement.
- Improved permission checks, graceful degradation, and responsive design across all new features.
0.10.1.0
2025-06-10 21:59:17 -03:00
sassanix 1dc69e16d5 Update README.md 2025-06-07 12:21:36 -03:00
sassanix 4ed6a9faef Update README.md 2025-06-05 11:20:16 -03:00
sassanix 0d720165e3 Update README.md 2025-06-05 11:20:04 -03:00
sassanix f50da9ac44 Update README.md 2025-06-05 11:19:53 -03:00
sassanix a030d1e1b4 Update README.md 2025-06-05 11:19:41 -03:00
sassanix ea4cb2d9c7 Update README.md 2025-06-05 11:19:19 -03:00
sassanix a66d41134a Updated Discord Logo on Readme 2025-06-05 07:33:33 -03:00
sassanix 130c5e66e9 Fix view preference persistence, password management, SMTP port 587 support, and UI consistency; enhance footer branding links
This update resolves several critical bugs and introduces enhancements for improved reliability and UX:

View Preference Persistence:
Fixed issues where user view preferences (Grid/List/Table) weren't retained across logins or tabs. Changes span both backend and frontend to ensure proper key prefixing and prevent overwrites or sync issues.

Password Management Fixes:
Added missing /api/auth/password/change endpoint. Fixed password reset behavior and improved frontend error handling for clarity and accuracy.

SMTP Port 587 (STARTTLS) Support:
Updated email logic to reliably support both SMTPS (port 465) and STARTTLS (port 587), ensuring compatibility with major email services.

UI Consistency:
Standardized headers across auth pages and made the app title consistently clickable for improved navigation.

Branding Enhancement:
Updated footer links from GitHub to the official Warracker site across all major pages for better branding and user guidance.
0.10.0.0
2025-06-04 23:04:27 -03:00
sassanix 209640465d Update .env.example 2025-06-03 10:17:23 -03:00
sassanix f517409680 Update README.md 2025-06-02 19:13:49 -03:00
sassanix 1752167ac0 Update README.md 2025-06-02 19:13:23 -03:00
sassanix c968d8660c Update README.md 2025-06-01 17:29:07 -03:00
sassanix 5834c25db9 Update README.md 2025-06-01 17:27:16 -03:00
sassanix 06a600a142 Update README.md 2025-06-01 17:26:06 -03:00
sassanix a97f429345 Update README.md 2025-06-01 17:25:14 -03:00
sassanix d596516c4f Update README.md 2025-06-01 17:11:11 -03:00
sassanix 8c2d7281e3 Update README.md 2025-06-01 17:08:04 -03:00
sassanix 171ea570c6 Update README.md 2025-06-01 17:06:26 -03:00
sassanix 86d0438f89 Update README.md 2025-06-01 16:51:47 -03:00
sassanix 8637472447 Update README.md 2025-06-01 16:50:46 -03:00
sassanix 13c4fce05c Update README.md 2025-06-01 16:47:52 -03:00
sassanix 10fefe09c6 Update README.md 2025-06-01 16:39:09 -03:00
sassanix cb45f4ad57 Update .env.example 2025-06-01 16:37:30 -03:00
sassanix 8cf6e0313a Update README.md 2025-06-01 16:35:07 -03:00
sassanix 613b7796ec Update README.md 2025-06-01 16:26:18 -03:00
sassanix f720e446b6 Update README.md 2025-06-01 16:25:29 -03:00
sassanix 139ccd9c33 Update docker-compose.yml 2025-06-01 16:24:06 -03:00
sassanix 6416ff51e6 Add OIDC SSO, exact expiration dates, memory optimization, and major UI/UX enhancements
This update introduces comprehensive OpenID Connect (OIDC) Single Sign-On support with dynamic configuration via the database and full frontend/backend integration. Key additions include:

- OIDC SSO login via external providers (e.g., Google, Keycloak), with automatic user provisioning and session linking.
- Admin settings UI for enabling/disabling SSO and managing provider credentials.
- Provider-branded SSO buttons with dynamic labels, icons, and styles.
- Exact warranty expiration date support alongside duration-based input, with full validation and UI enhancements.
- Full UI responsiveness for warranty field updates, tag creation, and note editing.
- Memory usage optimization for low-resource deployments via configurable modes (optimized, ultra-light, performance).
- Numerous fixes for SSO authentication flow, UI sync issues, database constraints, and modal interactions.
- Upgraded dependencies for security, performance, and compatibility (Flask 3.0.3, Gunicorn 23.0.0, etc.).
- Frontend improvements: Chart.js loading fix, tooltips for long product names, and dark/light mode-compatible footer.

This release significantly improves authentication flexibility, performance, and user experience across all major components.
0.9.9.9
2025-06-01 15:02:43 -03:00
sassanix b65428e1af Update README.md 2025-05-29 12:49:38 -03:00
sassanix 8a6f6f34d0 Update README.md 2025-05-29 11:23:47 -03:00
sassanix 7ceb5870c3 Update README.md 2025-05-29 11:09:26 -03:00
sassanix a70f78758b Update README.md 2025-05-29 11:06:25 -03:00
sassanix 0d707e8315 Update README.md 2025-05-29 11:04:28 -03:00
sassanix 1918240799 Update README.md 2025-05-29 11:00:20 -03:00
sassanix 50b23e1015 Update README.md 2025-05-29 10:35:03 -03:00
sassanix fe59c09832 Update README.md 2025-05-29 10:34:41 -03:00
sassanix 11fc065404 Update README.md 2025-05-29 10:33:49 -03:00
sassanix 1ac5de8f4a Update README.md 2025-05-28 23:00:13 -03:00
sassanix 7f966544aa Update README.md 2025-05-26 08:09:24 -03:00