feat(apps): archive vers Garage puis supprime les chunks anciens de reading

Nouveau module app.etl.reading_retention : pour chaque chunk de `reading` entièrement plus
vieux que APP_READING_RETENTION_DAYS (1095 jours), export CSV gzip reproductible vers Garage
(SSE-C, sha256 en métadonnées), relecture et comparaison, puis drop_chunks ciblé sur ce seul
chunk dans une transaction dédiée. --dry-run. Réglages APP_S3_* optionnels, jamais exigés par
l'API. DAG Airflow `retention` quotidien à 03h20. 44 tests unitaires sans réseau ni base,
tests d'intégrité du DAG, vérification --help dans l'image Airflow en CI. Docs 40-data et
20-backend.

Closes #36
This commit is contained in:
Johan LEROY
2026-09-24 10:36:09 +02:00
parent 0462dd01ba
commit fa815f49b6
10 changed files with 1292 additions and 14 deletions
+2
View File
@@ -19,6 +19,7 @@ dependencies = [
"aiosmtplib>=5.1.3",
"httpx>=0.28.1",
"pandas>=3.0.5",
"boto3>=1.43.101",
]
[dependency-groups]
@@ -29,6 +30,7 @@ dev = [
"pytest-asyncio>=1.4.0",
"pytest-cov>=7.1.0",
"pandas-stubs>=3.0.5.260914",
"types-boto3[s3]>=1.43.101",
]
[build-system]