Files
core-api/CHANGELOG.md
T
Jeroen SchweitzerandClaude Opus 4.5 49be935b5d
Build and Push / build (release) Successful in 1m10s
feat: add link_type field to quick links
Adds link_type column to quick_links table for iframe vs new_tab behavior.
Includes Alembic migration and schema updates.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 14:38:10 +01:00

8.0 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.6.1] - 2026-01-03

Added

  • link_type field to quick links for iframe vs new tab behavior

[1.6.0] - 2026-01-03

Added

  • Dashboard API - Quick links and widgets management for Organizr-style dashboard
    • GET /dashboard/quick-links - List quick links with category/visibility filtering
    • GET /dashboard/quick-links/{id} - Get single quick link
    • POST /dashboard/quick-links - Create quick link
    • PUT /dashboard/quick-links/{id} - Update quick link
    • DELETE /dashboard/quick-links/{id} - Delete quick link
    • POST /dashboard/quick-links/reorder - Reorder quick links by position
    • GET /dashboard/widgets - List dashboard widgets
    • GET /dashboard/widgets/{id} - Get single widget
    • POST /dashboard/widgets - Create widget
    • PUT /dashboard/widgets/{id} - Update widget
    • DELETE /dashboard/widgets/{id} - Delete widget
  • Database migrations for quick_links and dashboard_widgets tables
  • Static file controller for serving Organizr widgets (/static/widgets)
  • Default local user authentication when OIDC is disabled

Changed

  • Domain-based architecture - Refactored codebase to domain-driven structure
    • src/domains/ - Domain modules (auth, dashboard, health, housekeeping, infrastructure, tools)
    • src/shared/ - Shared utilities (base, config, database, logging, security, clients)
  • Test suite updated for new domain structure (285 tests passing)

[1.5.0] - 2026-01-01

Added

  • Groups Management - Authentik group synchronization
    • GET /auth/groups - List all groups with search and pagination
    • POST /auth/groups/sync-from-authentik - Bulk sync groups from Authentik admin API
  • Database model and migration for groups table

[1.4.6] - 2026-01-01

Changed

  • Code cleanup: move inline re import to top of auth/service.py

[1.4.5] - 2026-01-01

Fixed

  • Separate httpx and SQLAlchemy async contexts in bulk sync (fixes greenlet error)

[1.4.4] - 2026-01-01

Fixed

  • Use uuid field instead of pk for Authentik user sync (pk is integer, uuid is proper UUID)
  • Skip internal_service_account type users during bulk sync

[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