Colin Maudry a2c20adb4e perf: paginer/agréger les pages acheteur et titulaire côté DuckDB
Les pages acheteur/titulaire chargeaient l'intégralité des marchés d'une
organisation dans un dcc.Store côté client (jusqu'à 16k lignes pour les
plus gros acheteurs), envoyée sur le réseau à chaque interaction. Le
tableau, le top 10 et l'histogramme des distances récupèrent maintenant
leurs données via des requêtes DuckDB scopées (pagination/agrégation
poussées en SQL), sur le modèle déjà utilisé par la page tableau.

Corrige aussi le CLS des mêmes pages en réservant l'espace des
conteneurs remplis par callback (carte, top 10, histogramme).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-01 13:46:44 +02:00
2026-04-24 13:35:49 +02:00
2026-06-30 23:07:50 +02:00
2025-09-21 11:13:48 +02:00
2026-06-30 23:07:50 +02:00
2026-05-05 15:32:27 +02:00

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 branche dev, 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

Notes de version

Voir CHANGELOG.

S
Description
Outil d'exploration et de téléchargement des données essentielles de la commande publique
Readme 5.8 MiB
Latest
2026-06-25 09:56:09 +02:00
Languages
Python 95.2%
CSS 3.6%
JavaScript 1.2%