8cd5bfe821eb6790470a442ef6cef48b981a8c8c
Avec prevent_initial_call=True, le callback ne s'exécutait pas lors de la chaîne initiale (_generate_csrf_token → csrf-token), laissant le champ csrf_token vide au premier chargement direct de /connexion → erreur 400. Ajoute des tests comportementaux avec CSRF activé (comme en production) et un test architectural qui vérifie que le callback reste appelable initialement. Corrige aussi les assertions de redirection post-login (/compte/abonnement). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
decp.info
Outil d'exploration et de téléchargement des données essentielles de la commande publique.
=> decp.info
Installation et lancement
# Copie et personnalisation du .env
cp template.env .env
nano .env
# Pour la production
uv run gunicorn app:server
# Pour avoir le debuggage et le hot reload
uv run run.py
Déploiement
- Production (branche
main, decp.info) : déploiement manuel via un déclenchement de la Github Action Déploiement - Test (branche
dev, test.decp.info) : déploiement automatique à chaque push sur la branchedev, via la même Github Action.
Ne pas oublier de mettre à jour les fichier .env.
Sauvegarde de la base utilisateurs
users.sqlite est sauvegardée toutes les heures sur S3 via un timer systemd. Pour lister les sauvegardes disponibles :
python -m src.backup list
Pour restaurer une sauvegarde, arrêtez le service, restaurez la base, puis redémarrez :
systemctl stop decpinfo
python -m src.backup restore backups/users-YYYYMMDDTHHMMSSZ.sqlite.gz.enc
systemctl start decpinfo
Migrations de base de données
Les migrations SQLite s'appliquent automatiquement au démarrage de l'app — aucune action manuelle requise. Il suffit de redémarrer le service après un déploiement.
Pour vérifier quelles migrations ont été appliquées :
sqlite3 users.sqlite "SELECT id, applied_at FROM schema_migrations ORDER BY applied_at;"
Pour ajouter une migration, voir les instructions dans src/migrations.py.
Liens connexes
- decp-processing (traitement et publication des données)
- colin.maudry.com (blog)
Notes de version
Voir CHANGELOG.
Description
Outil d'exploration et de téléchargement des données essentielles de la commande publique
Releases
33
Languages
Python
95.2%
CSS
3.6%
JavaScript
1.2%