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.
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.
Introduces 'Track run' as a new activity type in the backend, updating mappings and distance calculations accordingly. Removes debug print statements from FIT utils. Updates backend dependencies in poetry.lock and pyproject.toml, and bumps API version to v0.13.4. Adds new ignore rules for import error files in .gitignore. Minor updates to frontend components and i18n files.
Standardized gear type names in GEAR_ID_TO_NAME and GEAR_NAME_TO_ID, correcting typos and adding common variations. Updated the developer guide to reflect these changes and ensure consistency between code and documentation.
Introduces new activity types for stand up paddling (32) and surf (33) across backend and frontend, including mapping, UI options, i18n labels, and search filters. Adds gear type 8 (water sports board) with corresponding backend validation, model updates, documentation, and frontend display logic, including new avatar image and translations.
Introduces activity type 31 (Indoor walk) across backend and frontend, updates activity type mappings, and adds tracker_manufacturer, tracker_model, and import_info fields to the Activity model and schema. Updates Alembic migrations, improves activity media import/export logic, and standardizes Pydantic model config usage. Also updates documentation and docker-compose examples to use the new data directory.
[backend] add column windsurf_gear_id to users_default_gear
[backend] update comment on gear_type column on gear table
[docs] update docs to include .tcx and .gz
[frontend] updated translations to include .gz files on HomeView
[frontend] added windsurf default gear selection on profile settings
[README] update to include .tcx
[backend] added support for activity type mixed_surface_cycling
[frontend] added support for activity type mixed_surface_cycling
[frontend] centralized activity type validation for cycling and running on activityUtils
[backend] fixed invalid default value for JAEGER_ENABLED
[backend] added support for activity type indoor_cycling
[backend] fixed logging spacing and added docs to logger
[docker] fixed logging spacing
[docs] added support for activity type indoor_cycling
[frontend] added support for activity type indoor_cycling
[frontend] re added activityMaxHR to activitySummaryComponent.json
[backend] added alembic migration to add columns strava_client_secret and strava_client_id to users_integrations table
[backend] removed reference to STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET and STRAVA_AUTH_CODE
[backend] added logic for Strava link to use id and secret given by user in the frontend
[backend] added Strava schema for Strava client logic
[backend] simplified Strava routes
[docker] removed reference to STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET and STRAVA_AUTH_CODE
[docs] removed reference to STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET and STRAVA_AUTH_CODE
[frontend] removed reference to STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET and STRAVA_AUTH_CODE
[frontend] added new generic modal ModalComponentNumberAndStringInput component
[frontend] added default value to input number on ModalComponentNumberInput component
[frontend] adjusted Strava calls to match optimized Strava backend routes
[backend] added column default_activity_visibility to users table
[backend] added new column default_activity_visibility to crud and router logic
[backend] created alembic migration to add default_activity_visibility column
[backend] activity upload now takes user default_activity_visibility has visibility value
[docker] fixed issue in path
[docs] fixed issue in path
[frontend] added default_activity_visibility column logic to edit profile
[backend] bump version to v0.9.2
[frontend] bump version to v0.9.2
[docs] fixed typo in developer-guide example docker compose file
[docker] fixed typo in example docker compose file