Added a blank line for readability in the bare-metal installation guide and updated the navigation title in mkdocs.yml to 'Bare-Metal installation guide' for consistency.
Session retrieval endpoints now return empty lists and log access attempts when ENVIRONMENT is set to 'demo'. Also, updated session cookie security to treat 'demo' like 'production', and clarified ENVIRONMENT options in documentation. Unused imports were removed from users/user/router.py.
Added instructions for updating to a new version of Endurain, including steps for stopping the service, removing old files, downloading the latest release, building the frontend, setting up the backend, and starting the service.
Implements optional session idle and absolute timeout logic, including new environment variables for configuration. Adds last_activity_at to sessions, enforces timeouts on token refresh, and introduces a scheduler job to clean up idle sessions. Also introduces progressive lockout for failed logins and updates documentation and examples accordingly.
Replaced all references to 'joaovitoriasilva/endurain' with 'endurain-project/endurain' across documentation, templates, Docker examples, and code. Updated badge URLs, Docker image paths, and author email in backend metadata to reflect the new organization. This ensures consistency and correct attribution following the repository migration.
Updated backend and frontend version numbers to 0.16.1. User-Agent headers in backend now use the API version from config. Improved migration guide wording. Added placeholders to weight input fields and set their default values to null in HealthWeightAddEditModalComponent. #438
Eliminated default-libmysqlclient-dev and pkg-config from the bare-metal installation instructions for Endurain on Debian, as they are no longer required.
Expanded the documentation to include installation and configuration steps for both Caddy and Nginx Proxy Manager as reverse proxies. The guide now provides clearer separation of Docker, Caddy, and Nginx Proxy Manager installation steps, and includes an example Nginx Proxy Manager config inline. Removed the standalone npm_endurain.conf file, as its contents are now integrated into the documentation.
Updated the application to read SMTP_PASSWORD using the read_secret method, enabling support for Docker secrets via SMTP_PASSWORD_FILE. Documentation was updated to reflect this new option for configuring SMTP credentials.
Added new screenshots for health, settings, and authentication pages, updated several existing images, and removed obsolete ones. The gallery documentation was updated to reflect the new and reorganized screenshots, providing a more comprehensive and up-to-date visual overview of the application's UI. Minor formatting cleanups were also made in the developer and getting started guides.
Added new 'Features' section in docs. Renamed 'sleep-scoring.md' from 'getting-started' to 'features' and updated mkdocs.yml navigation to reflect this change.
Added fields for resting heart rate and average skin temperature deviation to the HealthSleepAddEditModalComponent, including support in form data, submission logic, and i18n translations for both English and Portuguese. Updated documentation to mention DB_HOST as a required environment variable. #426
Introduces a comprehensive sleep scoring module with detailed calculation logic and integration into health sleep creation and editing endpoints. Refactors HealthSleep model and schema to use integer types for heart rate, SpO2, respiration, and sleep stress fields. Updates related tests and documentation to reflect the new scoring system and data type changes.
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.
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.
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.
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.
Changed example SMTP settings in .env.example to use ProtonMail and generic email address. Added detailed SMTP environment variable documentation to advanced-started.md. Updated index.md to mention Apprise and password reset via email.
Renamed geocoding-related config variables for clarity and consistency, defaulted REVERSE_GEO_PROVIDER to 'nominatim', and updated related usages in activity utils. Removed unused GEOCODES_MAPS_API from .env.example. Updated documentation and example compose file to reflect changes. Upgraded Python dependencies in poetry.lock.
Changed the default value of REVERSE_GEO_PROVIDER from 'nominatim' to 'geocode' in the configuration and updated the documentation to reflect this new default.
Introduces support for Nominatim as a reverse geocoding provider alongside geocode and photon. Updates configuration and documentation to include NOMINATIM_API_HOST and NOMINATIM_API_USE_HTTPS environment variables, sets Nominatim as the default provider, and refactors related logic in utils.py.