feat(backend): initialisation du projet FastAPI

Structure en couches api / services / repositories / models, sens de
dependance unique, une session SQLAlchemy async injectee par dependance.

- Python 3.14, dependances gerees par uv et verrouillees dans uv.lock
- FastAPI expose par une factory : aucune configuration lue a l'import,
  ce qui rend tests et migrations independants de l'environnement
- Settings Pydantic, APP_SECRET_KEY et DATABASE_URL sans valeur par defaut
- Sondes /health/live et /health/ready, metriques Prometheus sur /metrics
- Lint et format ruff, mypy strict, pytest avec couverture
- Alembic branche sur DATABASE_URL et non sur alembic.ini
- Image Docker multi-stage, utilisateur non root, sonde de sante integree
This commit is contained in:
Johan LEROY
2026-09-14 12:26:20 +02:00
parent 26704831e4
commit 6161a432c3
36 changed files with 1795 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
from app.schemas.health import LivenessStatus, ReadinessStatus
__all__ = ["LivenessStatus", "ReadinessStatus"]
+15
View File
@@ -0,0 +1,15 @@
from typing import Literal
from pydantic import BaseModel
class LivenessStatus(BaseModel):
status: Literal["ok"]
service: str
version: str
environment: str
class ReadinessStatus(BaseModel):
status: Literal["ready"]
database: Literal["reachable"]