⚙️ 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 ExpirationDatefield in CSV imports.
- Automatically used when duration fields (WarrantyDurationYears,WarrantyDurationMonths,WarrantyDurationDays) are empty or zero, andIsLifetimeisFALSE.
- 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 200for partial success and400only 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 ProductNamealready exists for the samePurchaseDate(in the database or within the same file), the importer now automatically renames it toName (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()andfix_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 ExpirationDatefield 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.