v0.17.0 - Swedish initial support, filter options for goals, PKCE support for mobile, HMAC-SHA256 for token reuse detection, QoL work for with added tests for users, health and server_settings backend modules, bug fixes
⚠️ Warning:
- The DB has schema changes, however no impacts are expected. Nevertheless backup your DB before applying the update.
- Your users sessions will be deleted on upgrade. Users will have to authenticate again
- Migration from previous dev versions is not supported!
Backend:
- Reorganized user management, sessions, and related modules into cleaner namespaces (
users,users_session, etc.) for better maintainability. - Migrated multiple database fields, including activity visibility, units, currency, and user enums, from integers to string-based enums. This improves database readability and API consistency.
- Implemented PKCE support for mobile.
- Enhanced Refresh Token Rotation with HMAC-SHA256 for secure reuse detection.
- Improved authentication error handling with more detailed and unified error messages.
- Added signup rate limiting and improved database error handling using new decorators.
- New filtering capabilities and improved duration input handling for user goals.
- Added encrypted storage for tile server API keys.
- Improved Identity Provider (IdP) user synchronization.
- Significant increase in unit test coverage for users, sessions and goals modules.
- Updated backend dependencies.
Frontend
- Admin can now change fields
email_verifiedandpending_admin_approvalon users add/edit modal #490 - Swedish (sv) Language Support
- New filtering capabilities and improved duration input handling for user goals.
- Added encrypted storage for tile server API keys.
- New login default image
- Updated frontend dependencies.
Fixes:
- Differentiated token delivery mechanisms for web vs. mobile clients (bug introduced on v0.16.5).
- Fixes refresh button not working (again!) #488
- Fixes issues with SSO login #494
- Fix for initialize routine creates directories with wrong permissions #489
New contributors
- @marcdjulien in #479