# 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.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [1.4.3] - 2026-01-01 ### Fixed - Manually extract and send session cookies for Authentik flow auth (fixes cross-domain cookie handling) ## [1.4.2] - 2026-01-01 ### Fixed - Use Authentik domain URL (auth.schweitz.net) instead of IP to fix cookie domain matching ## [1.4.1] - 2026-01-01 ### Fixed - Authentik config now uses AUTHENTIK_USERNAME/PASSWORD to match production env vars ## [1.4.0] - 2026-01-01 ### Added - **Authentication & User Management** - Authentik integration for user synchronization - `GET /auth/me` - Get current authenticated user info - `GET /auth/users` - List all users with search and pagination - `POST /auth/users/sync-from-authentik` - Bulk sync users from Authentik admin API - PostgreSQL database integration with async SQLAlchemy - Alembic database migrations for schema management - Database models: User, Role, UserPreferences, ApiKey - Token validation via Authentik userinfo endpoint - Role synchronization from Authentik groups - Health check now includes database connectivity status ### Changed - Authentik configuration now uses username/password for admin API access - Health endpoint includes database status in diagnostics ## [1.3.1] - 2025-12-31 ### Changed - Simplified configuration: all settings now read from environment variables/.env only - Removed Docker socket fallback for container operations (Portainer API is now required) - Updated default search provider to SearXNG ### Removed - `src/credentials.py` - credentials now managed via environment variables - Docker socket fallback methods from Portainer client - Unused search API settings (Brave, Google) ## [1.3.0] - 2025-12-31 ### Added - **Stack Management Endpoints** for Tatlock Control Room integration - `GET /infrastructure/stacks/{stackId}/compose` - Get stack Docker Compose YAML - `PUT /infrastructure/stacks/{stackId}/compose` - Update stack Docker Compose YAML - `GET /infrastructure/stacks/{stackId}/env` - Get stack environment variables - `PUT /infrastructure/stacks/{stackId}/env` - Update stack environment variables - `POST /infrastructure/stacks/{stackId}/deploy` - Redeploy stack - `POST /infrastructure/stacks/{stackId}/rebuild` - Pull images and recreate containers - `DELETE /infrastructure/containers/{id}` - Delete container with optional force flag - Portainer client methods: `get_stack_file`, `redeploy_stack`, `update_stack_env`, `delete_container`, `restart_container` ### Removed - REQUESTED_SERVICES.md - endpoint specifications now implemented ## [1.2.1] - 2025-12-17 ### Fixed - Device control endpoint now returns correct new state after action (added 300ms delay for HA state propagation) ### Added - AGENTS.md with project coding guidelines and release flow documentation ### Changed - Removed obsolete web scraper settings from .env.example ## [1.2.0] - 2025-12-17 ### Added - **Housekeeping API** - Home Assistant integration for smart home control - `GET /housekeeping/health` - HA connection status - `GET /housekeeping/devices` - List controllable devices with optional domain/area filtering - `GET /housekeeping/devices/{entity_id}` - Get device details - `POST /housekeeping/devices/{entity_id}/control` - Control devices (turn_on, turn_off, toggle, set_brightness) - `GET /housekeeping/scenes` - List available scenes - `POST /housekeeping/scenes/{scene_id}/activate` - Activate a scene - `GET /housekeeping/scripts` - List available scripts - `POST /housekeeping/scripts/{script_id}/run` - Run a script - `GET /housekeeping/automations` - List automations - `POST /housekeeping/automations/{automation_id}/toggle` - Enable/disable automation - `GET /housekeeping/history` - Query state history - `GET /housekeeping/areas` - List rooms/areas - Home Assistant REST API client (`src/clients/homeassistant_client.py`) - Home Assistant configuration in credentials and settings - Comprehensive test suite with 65% code coverage (285 tests) - Tests for NPM client, Ollama client, AI client, OIDC authentication - Tests for infrastructure, health, tools, and housekeeping endpoints ### Removed - **Web Scraper** - Entire web scraping module removed - `src/web_scraper/` directory deleted - `/web-scraper/scrape` endpoint removed - Trafilatura and BeautifulSoup dependencies removed from scraping use ### Changed - Updated README.md with current architecture and all endpoints - Tools controller now only contains DNS lookup functionality - Health controller endpoints list updated to reflect current features ## [1.1.2] - 2024-12-14 ### Added - Version field to /health endpoint response ## [1.1.1] - 2024-12-14 ### Added - Watchtower trigger step in CI workflow for automatic container updates ## [1.1.0] - 2024-12-14 ### Removed - Uptime Kuma integration (kuma_client.py deleted) - All /infrastructure/monitors endpoints - Kuma monitor pause/resume from service start/stop operations - Uptime percentage display from service control widget - Kuma-related configuration and credentials - Stale memory tests (memory functionality moved to core-ai service) ### Changed - Service control widget now uses Portainer container status exclusively - Simplified widget-data endpoint response (removed monitors field) - Updated service start/stop to only manage containers via Portainer ## [1.0.0] - 2024-12-14 ### Added - Initial release of Core Code API service extracted from portainer-core - Infrastructure management endpoints for Portainer, NPM, and Uptime Kuma - Web scraping service with content extraction - DNS management endpoints - Health check endpoints with diagnostics - OIDC authentication support via Authentik - Ollama integration for embeddings - OpenAPI documentation (Swagger UI and ReDoc) - Docker containerization with CI/CD workflow