Vue d'ensemble
Auralith est une stack classique : Angular 21 + FastAPI + Postgres pour la base d'app, plus des adaptateurs vers les DB cibles que vous lui faites introspecter.
Couches
Composants principaux
- Frontend : Angular 21, signals + computed, OnPush partout, lazy routes, i18n FR + EN (1030 cles parite).
- API : FastAPI sur
/api/v1. Routes par feature (projects, connections, patches, etc.). OpenAPI auto-genere a/docs. - Service layer : logique metier. Decouple des routes. Reutilisable par les workers.
- DB adapters : un par dialecte. Implementent
test_connection, introspection, builders SQL (mass_patch, seed, anonymize) avec quoting et types adaptes. - App DB : Postgres dedie. Stocke users, projects, audit, jobs, etc.
- Background workers : email, cleanup, drift_check, webhooks, usage_reporter, access_sweeper. Tasks asyncio dans le lifespan FastAPI.
Auth
- Cookies httpOnly + CSRF middleware pour les sessions browser.
- API keys (bearer) scopees par projet pour l'API publique.
- OAuth Google / GitHub via
oauth_service. - SAML 2.0 + SCIM 2.0 pour Enterprise.
- 2FA TOTP optionnel par user.
Observabilite
- Logs structures JSON avec
trace_idpropage par middleware. - Prometheus :
/metricsstandard exposees. - OpenTelemetry tracing : opt-in via
OTEL_ENABLED=true. - Health endpoint :
/health(root, hors/api/v1pour kubelet).
Persistance
- Alembic pour migrations de la base d'app. Baseline + migrations numerotees (001 a 012+).
- Index FK automatiques sur toutes les colonnes FK (perf join).
- Soft delete sur projets / users :
is_deleted=trueou anonymize plutot que DELETE direct.