feat(core): implement ConnectionService and DbExecutor for direct DB insert (US11-US12)

- ConnectionService: CRUD for DatabaseConnection in GlobalSettings with
  EncryptionManager-backed password encryption/decryption, test connectivity
- DbExecutor: asyncpg (PostgreSQL) and clickhouse-connect (ClickHouse) drivers
  with per-connection connection pooling
- config_models.py: promote GlobalSettings.connections from list[dict] stub
  to list[DatabaseConnection] with full Pydantic model validation
- settings.py: +5 CRUD endpoints for connections (create, read, update, delete, test)
- requirements.txt: add asyncpg>=0.29.0, clickhouse-connect>=0.7.0
- seed_permissions.py: register settings.connections.manage permission
This commit is contained in:
2026-06-11 19:12:15 +03:00
parent 4044fd5f6f
commit b56bf65b7b
6 changed files with 1034 additions and 3 deletions

View File

@@ -57,6 +57,10 @@ playwright
tenacity
Pillow
ruff>=0.11.0
# Direct database drivers for DbExecutor (optional)
asyncpg>=0.29.0
clickhouse-connect>=0.7.0
pymysql>=1.1.0
sqlparse>=0.5.0
lingua-language-detector==2.1.1
testcontainers[postgres]>=4.0