github sassanix/Warracker 1.0.2

19 hours ago

⚙️ Release 1.0.2 – CSV Import Enhancements & Permission Handling Upgrade

Version 1.0.2 introduces major improvements to the CSV import process and backend permission management, enhancing both data flexibility and system reliability.
This release focuses on better handling of real-world import scenarios, improved error tolerance, and more robust permission management for Docker-based deployments.


📄 CSV Import Improvements

🕒 Exact Expiration Date Support

  • Added support for a precise ExpirationDate field in CSV imports.
  • Automatically used when duration fields (WarrantyDurationYears, WarrantyDurationMonths, WarrantyDurationDays) are empty or zero, and IsLifetime is FALSE.
  • Documentation updated to reflect the new field and its conditional logic.
  • Modified files: backend/warranties_routes.py, README.md

Result: Enables direct import of warranties with specific expiration dates — improving data accuracy and reducing manual adjustments.


⚙️ Partial Commits with Per-Row Error Reporting

  • CSV imports now commit successful rows even when others fail.
  • The API response includes detailed per-row error messages.
  • Returns 200 for partial success and 400 only if all rows fail.
  • Modified file: backend/warranties_routes.py

Result: Easier troubleshooting and improved reliability for large or mixed-quality CSV files.


🔁 Automatic Duplicate Name Suffixing

  • If a ProductName already exists for the same PurchaseDate (in the database or within the same file), the importer now automatically renames it to Name (1), Name (2), etc.
  • Prevents hard failures on legitimate, duplicate product entries with unique serials or metadata.
  • Modified file: backend/warranties_routes.py

Result: Seamless import of multiple products sharing identical names and purchase dates.


🧰 Permission Handling Enhancements

  • Updated entrypoint logs to clearly indicate permission fixing:
    "Fixing permissions (database and upload folder)".
  • Refactored the logic into fix_upload_folder_permissions() and fix_database_permissions() for clearer scope and maintainability.
  • Ensures recursive ownership of uploads to warracker:warracker (uid:999, gid:999), with improved logging and connection retry handling.
  • Modified files: Docker/entrypoint.sh, backend/fix_permissions.py

Result: More reliable startup and consistent file/database permissions in containerized environments.

💡 Credit: Enhancement contributed by @Erwan-loot
🔗 Reference: PR #180


🧭 Upgrade Notes

  • No database migrations required.
  • Existing CSV templates remain valid; optional new ExpirationDate field can be added.
  • Recommended for all users importing CSV data or running in Docker environments.

This 1.0.2 release enhances import flexibility, error handling, and permission robustness, ensuring a smoother and more reliable experience for all Warracker deployments.

Don't miss a new Warracker release

NewReleases is sending notifications on new releases.