La stack
Chaque brique de Skibrief, l'outil choisi et ce qu'il y fait.
dlt, la collecte facilitée
Un framework Python qui charge les données de sources variées.
- Schéma déduit automatiquement : les listes imbriquées deviennent des tables enfants.
- Incrémental : fusion sur clé, seules les nouveautés sont rechargées.
- Robuste : relances sur erreur ou quota, chargements reprenables.
- Documenté automatiquement : chaque pipeline publie son schéma, ses tables et l'historique de ses chargements.
Dans Skibrief : dlt a accéléré l'ingestion des API sources en décomposant automatiquement leurs objets JSON imbriqués.
PostgreSQL + PostGIS
PostgreSQL et son extension PostGIS, référence du calcul géographique, permettent à Skibrief de rattacher chaque sommet à son massif par une simple requête SQL.
- Un schéma par étape :
raw→core→api, pluspublication. - Un rôle par service, appliqué par la base elle-même.
PostgreSQL boosté à l'IA
Nous avons aussi étendu Postgres pour qu'il appelle un LLM, afin de classer et nettoyer les données textuelles directement en base. Une transformation complexe devient une simple fonction pour dbt.
- Sortie garantie par un JSON Schema.
- Économe : chaque texte n'est envoyé qu'une fois, résultat conservé.
- Interchangeable : toute API compatible OpenAI (Groq, OVH, Ollama…).
dbt, le SQL traité comme du code
Chaque modèle est un fichier versionné ; dbt ordonne, teste et documente.
- Tests : unicité, non-nullité, cohérence entre référentiels.
- Lignage : chaque colonne servie à l'IA remonte à sa source.
dbt docs et dbdocs, régénérés à chaque exécution
Deux sites statiques produits des mêmes artefacts dbt, sans accès aux données.
- dbt docs : modèles, colonnes, tests, graphe de lignage.
- dbdocs : le diagramme entité-relation dessiné depuis les clés étrangères, et le lignage par colonne.
dbt Charts, des tableaux de bord en YAML
Requêtes et graphiques déclarés à côté des modèles, rendus en HTML statique après chaque exécution. Pas de serveur de BI.
FastMCP, les données au service de l'assistant
Le serveur expose des outils que Claude appelle quand la question l'exige.
- Lecture seule des vues
api, jamais des sources. - MCP Apps : une carte IGN interactive dans la conversation.
Dagster, le chef d'orchestre
Dagster lance la chaîne chaque jour à 17 h : collecte dlt (Météo-France et Skitour en parallèle), puis dbt build, qui met à jour les vues lues par le serveur MCP. Chaque table est suivie comme un asset, de la source à la vue.
GitHub Action et Coolify, toute la stack en un git push
GitHub Action test automatiquement et Coolify déploie et héberge chaque brique dans son conteneur Docker sur un VPS hébergé en France.
- Un conteneur par brique : base, pipeline, serveur MCP et site, isolés et déplaçables.
- Test & Déploiement continu : chaque
git pushreconstruit et redéploie.