# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [1.8.0] - 2026-03-06 ### Added - Connections dashboard (`/connections`) — unified page for all service integrations with online/offline status indicators - Add-connection page (`/connections/add`) — shows only unconnected services; "all connected" state when none remain - VK OAuth connection — connect VK account via OAuth, store access token and profile info - Background health checker — runs every 10 minutes, checks Evotor and VK tokens, updates `is_online` / `last_checked_at` - Sync configuration page (`/sync`) — master enable/disable toggle, confirm-and-start button, filter summary, warnings for missing connections - Catalog browser (`/catalog`) — browse Evotor stores, groups, and products in table views with cache auto-refresh on first visit - Catalog filter management — include/exclude rules per store/group/product via inline dropdown; rules stored in `sync_filters` table - Catalog CSV export — download stores, groups, or products as UTF-8 BOM CSV (Excel-compatible) - Alembic migrations for all new tables: `evotor_connections` (health fields), `vk_connections`, `sync_configs`, `sync_filters`, `cached_stores`, `cached_groups`, `cached_products` - `run/read_config.py` — CLI helper for shell sync scripts to read per-user sync config as JSON ### Changed - Navbar: replaced "Эвотор" link with "Подключения", added "Каталог" and "Синхронизация" links - Evotor and VK connect/disconnect flows now redirect to `/connections` - Back links on `/evotor` and `/vk` pages updated to "Вернуться к подключениям" - VK connection card icon changed to `bi-bag` (shopping bag) to reflect VK Market use case - Password reset and email confirmation pages: replaced dev-mode console instructions with user-facing copy ## [1.7.3] - 2026-03-06 ### Added - Nginx reverse proxy configuration — SSL termination, HTTP→HTTPS redirect, proxy to uvicorn - `scripts/init-letsencrypt.sh` — automated Let's Encrypt certificate provisioning via certbot webroot challenge - Request logging for Evotor token exchange errors to aid debugging ### Fixed - Evotor OAuth token exchange — move `client_id` and `client_secret` from HTTP Basic Auth to form body fields (resolves `invalid_client` errors) - Docker environment — pass `EVOTOR_CLIENT_ID` and `EVOTOR_CLIENT_SECRET` to web container via docker-compose ### Changed - Default `BASE_URL` changed to `https://evosync.ru` for production deployment - `docker-compose.yml` — web service now exposes port 8000 internally only (accessed via nginx) - Added `refresh_token` field to `EvotorConnection` model for future token refresh logic ## [1.7.2] - 2026-03-05 ### Other - Add user registration and auth web app - Update docker-compose.yml: remove database service, adjust ports and host - Integrate Bootstrap 5 and Bootstrap Icons into UI ## [1.0.0] - 2026-02-02 ### Other - Initial commit - V1.