Commit Graph
3 Commits
Author SHA1 Message Date
Johan LEROY d14b3afc8e chore: ajoute une cible de rapports de tests
make test-cov produit la couverture HTML et XML et les resultats au format
JUnit, sans alourdir make test qui reste la boucle de developpement. Les trois
artefacts sont ignores, contrairement au junit.xml versione cote frontend.
2026-09-15 09:59:17 +02:00
Johan LEROY 351e928309 feat(db): bootstrap PostgreSQL et extension TimescaleDB
Service `db` du docker-compose racine sur timescale/timescaledb-ha:pg17,
volume nomme et cibles Makefile db-up / db-down / db-reset / db-logs / db-psql.

- db/init/100-extensions.sql declare l'extension attendue, db/init/110 cree
  la base enervision_test utilisee par la suite de tests du backend.
- Numerotation a partir de 100 : l'image depose ses propres scripts 000, 001
  et 010, et un prefixe a deux chiffres se trie avant 010 en locale C.
- Volume monte sur /home/postgres/pgdata/data, PGDATA de cette image. Monte
  au chemin habituel de l'image postgres, il ne retiendrait rien sans erreur.
- Port publie 5433 par defaut, 5432 etant souvent deja pris sur un poste.
2026-09-14 14:19:25 +02:00
Johan LEROY 6161a432c3 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
2026-09-14 12:26:20 +02:00