refactor(connections): remove ConnectionConfig, migrate mapper to SQL Lab

Backend:
- Remove ConnectionConfig model, CRUD routes (connections.py), and tests
- Remove ensure_connection_configs_table from database.py
- Migrate MapperPlugin from psycopg2 direct PostgreSQL to SupersetSqlLabExecutor
- Add DatasetMapper.get_sqllab_mappings() with default information_schema query
- Update MapColumnsRequest: connection_id → database_id + sql_query
- Fix pydantic_settings v2 deprecation (Field(env=...) → validation_alias)
- Clean up app.py, routes/__init__.py, database.py imports

Frontend:
- Remove DatabaseConnectionsTab, ConnectionForm, ConnectionList components
- Remove /settings/connections route page and Navbar link
- Remove connectionService.js, connections i18n files
- Update MapperTool.svelte: postgres → sqllab source
- Update Map Columns modal: database selector + SQL query instead of connection_id
- Clean up settings page tabs, nav links, test mocks
- Clean up i18n keys (settings, nav, mapper)

Tests: 25/25 pass (14 030-feature + 11 route tests)
Build: succeeds
This commit is contained in:
2026-05-21 18:47:41 +03:00
parent bb11b6f9e5
commit 74e646225f
35 changed files with 269 additions and 1315 deletions

View File

@@ -14,7 +14,7 @@
import os
from pydantic import Field, field_validator
from pydantic_settings import BaseSettings
from pydantic_settings import BaseSettings, SettingsConfigDict
# #region AuthConfig [TYPE Class]
@@ -23,19 +23,21 @@ from pydantic_settings import BaseSettings
# @POST: Returns a configuration object with validated settings.
# @RELATION INHERITS -> pydantic_settings.BaseSettings
class AuthConfig(BaseSettings):
model_config = SettingsConfigDict(env_file=".env", extra="ignore")
# JWT Settings
SECRET_KEY: str = Field(default="", env="AUTH_SECRET_KEY")
SECRET_KEY: str = Field(default="", validation_alias="AUTH_SECRET_KEY")
ALGORITHM: str = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES: int = 480
REFRESH_TOKEN_EXPIRE_DAYS: int = 7
# Database Settings
AUTH_DATABASE_URL: str = Field(default="", env="AUTH_DATABASE_URL")
AUTH_DATABASE_URL: str = Field(default="", validation_alias="AUTH_DATABASE_URL")
# ADFS Settings
ADFS_CLIENT_ID: str = Field(default="", env="ADFS_CLIENT_ID")
ADFS_CLIENT_SECRET: str = Field(default="", env="ADFS_CLIENT_SECRET")
ADFS_METADATA_URL: str = Field(default="", env="ADFS_METADATA_URL")
ADFS_CLIENT_ID: str = Field(default="", validation_alias="ADFS_CLIENT_ID")
ADFS_CLIENT_SECRET: str = Field(default="", validation_alias="ADFS_CLIENT_SECRET")
ADFS_METADATA_URL: str = Field(default="", validation_alias="ADFS_METADATA_URL")
@field_validator("SECRET_KEY", mode="after")
@classmethod
@@ -60,9 +62,6 @@ class AuthConfig(BaseSettings):
"Set it in .env or export it before starting the server."
)
class Config:
env_file = ".env"
extra = "ignore"
# #endregion AuthConfig
# #region auth_config [TYPE Variable]