348da79175b28d7c07987050a2a9f8fe2a1289c1
test_admin_non_admin_gets_404 asserted the same /admin 404 that anonymous visitors also get, without first confirming the login actually went through. A broken login (falls back to /connexion on bad credentials, unverified email, etc.) would leave the session anonymous and the test would keep passing for the wrong reason, silently degrading into a duplicate of test_admin_anonymous_gets_404. Now waits for the post-login redirect to /compte/abonnement (this user has no subscription) before exercising the admin guard.
colibre
Note: Ce projet a été rebaptisé de decp.info à colibre en 2026.
Outil d'exploration et de téléchargement des données essentielles de la commande publique.
=> colibre.fr
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, colibre.fr) : déploiement manuel via un déclenchement de la Github Action Déploiement - Test (branche
dev, test.colibre.fr) : 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 colibre
python -m src.backup restore backups/users-YYYYMMDDTHHMMSSZ.sqlite.gz.enc
systemctl start colibre
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%