Changed DATA_DIR to use BACKEND_DIR for consistency in config.py and removed unused import in fit/utils.py. Added documentation for FRONTEND_DIR, BACKEND_DIR, DATA_DIR, and LOGS_DIR environment variables in advanced-started.md to clarify their usage.
Introduces 'Inline skating' as a new activity type (ID 45) across backend and frontend. Updates schemas, utility mappings, i18n files, UI components, and search functionality to handle inline skating activities. #411
Introduces 'Snow shoeing' as a new activity type (ID 44) across backend and frontend. Updates schema, activity mappings, goal calculations, developer documentation, i18n files, activity utilities, and UI components to support the new activity. Ensures snow shoeing is selectable, filterable, and properly displayed throughout the application. #411
Introduces Sailing (type 43) as a supported activity throughout the backend and frontend. Updates activity mappings, i18n files, UI dropdowns, and utility functions to include Sailing. Adjusts search and filtering logic to handle the new activity type and corrects some error message keys in SearchView. #411
Introduces kayaking as a new activity type (ID 42) in backend and frontend. Updates activity mappings, i18n labels, UI components, and search logic to support kayaking alongside rowing where appropriate. #411
Introduces 'Cardio training' as a new activity type (ID 41) across backend and frontend. Updates activity mappings, enums, goal logic, UI components, and i18n files to support the new type. Also fixes goal list initialization in SettingsUserGoals.vue.
Introduces Slovenian (SL) as a supported language across backend and frontend, including language enum, language switchers, and i18n resources. Updates documentation to credit the contributor, and increments version numbers in backend and frontend to 0.15.7.
Refactored backend/app/core/config.py to simplify and clarify docstrings and comments, improving readability and maintainability. Updated the MariaDB to Postgres migration guide to use Endurain's built-in export/import functionality instead of pgloader, providing a more user-friendly migration process. Removed obsolete pgloader migration files and transformation scripts.
Introduces secure reading of sensitive environment variables (DB_PASSWORD, SECRET_KEY, FERNET_KEY) via _FILE variants for Docker secrets. Updates backend to use new read_secret utility, adds validation for Fernet keys, and documents usage in advanced setup guide. Bumps version to 0.15.3 and provides a docker-compose secrets example.
Reformatted migration steps and troubleshooting sections for clarity and consistency. Changed numbered lists to bullet points and headings, improved step descriptions, and clarified solutions to common migration issues.
Standardized code block formatting in the MariaDB to Postgres migration documentation by removing redundant 'bash' and 'sql' language specifiers. This improves readability and consistency throughout the guide.
Introduces a comprehensive migration guide for moving from MariaDB to PostgreSQL, including troubleshooting and step-by-step instructions. Adds pgloader configuration files and custom transformation functions for handling data conversion, and updates mkdocs navigation to include the new migration documentation.
Replaced double quotes with backticks for menu items, file names, and field names in the gear import documentation for consistency and improved readability.
Improved formatting and readability in Strava gear import utilities and router, including better line breaks and removal of redundant blank lines. Updated documentation for Strava and Garmin Connect integrations, clarifying import instructions and reorganizing integration details for clarity.
Implements endpoints and frontend modals for users to link/unlink external identity providers (IdPs) to their accounts, including backend logic for secure OAuth linking and session management. Adds ModalComponentMFASetup for multi-factor authentication setup, refactors modal input components for accessibility and consistency, and updates documentation and trademark policy. Adjusts scope constants and permissions for identity provider management.
Introduces Galician (gl) as a supported language across backend and frontend. Updates language enums, language switchers, user profile, signup, and user modal components. Also updates documentation and version numbers to 0.15.1.
Removed MariaDB support from documentation and backend code, standardizing on PostgreSQL as the only supported database. Updated backend dependencies in poetry.lock and pyproject.toml, removing mysqlclient and updating several packages. Documentation and example files were updated to reflect the database change.
Replaces get_user_id_from_access_token/refresh_token with get_sub_from_access_token/refresh_token and introduces get_sid_from_access_token/refresh_token for session ID extraction. Updates all router dependencies to use new methods, refactors session CRUD to use session ID instead of hashed refresh token, and improves token creation and validation logic for more robust session management. Also updates session_utils and token_manager to support new session ID claim and token structure.
Enhanced gear nickname parsing by stripping whitespace after decoding in gear CRUD functions. Updated documentation for Strava bulk import to clarify import steps, note removal of '+' and whitespace, and correct development timelines for shoes and activity metadata imports.
Documents the multi-factor authentication (MFA) login flow, including request/response formats for web and mobile clients, error handling, and important notes about session management. This addition clarifies the two-step authentication process for users with MFA enabled.
Introduces activity type 36 for E-Mountain Bike ride in backend activity and user goals utilities. Updates mapping and calculation logic to include E-Mountain Bike rides as bike activities. Also updates documentation and i18n files to reflect the new activity type. Dependency bump
Introduces E-Bike ride as a new activity type (ID 35) across backend, frontend, and documentation. Updates mappings, i18n labels, modal options, cycling type checks, icon assignment, and search filtering to support E-Bike rides.