Faire tourner la chaîne

Préparer les données et la pile

En bref : Corriger les deux anomalies des fichiers d'annuaire de démonstration, puis démarrer un socle minimal : le graphe (Neo4j), le bus de messages (RabbitMQ), le moteur qui construit le graphe (IKG) et l'API de lecture (Apollo). Inutile pour le POC de novembre, qui part d'un extrait fourni par la DiBISO. Statut : Non exécuté ; les anomalies ont été relevées par un script.

Pourquoi ce tutoriel

Ce parcours sert à refaire la chaîne CRISalid sur un environnement isolé, sans toucher à l'instance de la DiBISO. Il faut deux choses : des données et une pile qui tourne. Les données sont les jeux de démonstration des dépôts officiels ; tels quels, ils ne se chargent pas.

Étape 1 sur 4. Les scripts scripts/… sont dans le dépôt de l'audit (où les trouver).

Avant de commencer

  • Les copies des dépôts crisalid-directory-bridge, crisalid-ikg et crisalid-deployment dans official-crisalid.
  • Python 3, Docker et Docker Compose.

Étapes

Étape 1 — Repérer les jeux de démonstration

Pourquoi : savoir quel fichier alimente quelle brique évite de chercher des données qui n'existent pas.

DomaineFichierBrique
Structurescrisalid-directory-bridge/data/structures.csv (10 structures)Directory Bridge
Personnescrisalid-directory-bridge/data/people.csv (1 chercheur)Directory Bridge
Notices HAL, OpenAlex, scanR, IdRefcrisalid-ikg/tests/data/source_records/*.jsonTests d'IKG seulement, sans passer par le bus

Étape 2 — Corriger structures.csv

Pourquoi : tel qu'il est fourni, le fichier est rejeté par le validateur du dépôt (8 erreurs) : des virgules en trop décalent des colonnes et laissent local_id vide.

Corriger les lignes décalées, puis relancer jusqu'à 0 erreur :

TerminalBash
cd official-crisalid/crisalid-directory-bridge python .claude/commands/check_structures.py data/structures.csv

Étape 3 — Réaligner people.csv

Pourquoi : le chercheur déclare la structure U01, absente de structures.csv ; IKG créerait la personne sans rattachement.

Remplacer main_research_structure par un local_id présent dans structures.csv. Puis, depuis le dépôt de l'audit :

TerminalBash
python3 scripts/check-crisalid-tutorial-data.py # 5 contrôles sur 5 attendus

Étape 4 — Contrôler et renseigner la configuration

Pourquoi : repérer une incohérence avant de démarrer, et fournir aux services leurs comptes.

TerminalBash
python3 scripts/check-crisalid-deployment-contract.py # lecture seule : 6 tests, 15 modules Compose cd official-crisalid/crisalid-deployment/docker && cp .env.sample .env

Renseigner au minimum CRISALID_BUS_USER, CRISALID_BUS_PASSWORD, NEO4J_PASSWORD (le compte est obligatoirement neo4j, administrateur) et SOVISUPLUS_GRAPHQL_API_KEY, transmise à Apollo. Pour l'étape suivante : AIRFLOW_ADMIN_USERNAME et AIRFLOW_ADMIN_PASSWORD.

Étape 5 — Démarrer le socle minimal

Pourquoi : ces quatre profils suffisent à construire et lire un graphe.

TerminalBash
./configure_crisalid_bus.sh # produit les définitions du bus ./configure_cdb.sh dev # prépare Directory Bridge pour l'étape suivante docker compose -f docker-compose.yaml -f docker-compose.dev.yaml \ --profile neo4j --profile crisalid-bus --profile ikg --profile apollo up -d

Profils ajoutés plus loin : cdb et cdb-db (Airflow), harvester et harvester-db, sovisuplus et sovisuplus-db. Pour arrêter : remplacer up -d par down.

Ce que vous devez obtenir

  • structures.csv accepté avec 0 erreur, et people.csv qui vise une structure existante.
  • Les services des quatre profils à l'état healthy (docker compose ps).
  • Les échanges graph, directory, publications et leurs files de rebut déclarés dans RabbitMQ.
  • Une connexion à Neo4j sur un graphe vide, et une réponse de /health d'Apollo.

Limites

  • Non exécuté : aucun conteneur n'a été démarré ; comportements au démarrage à confirmer.
  • Les contrôles des étapes 3 et 4 lisent des fichiers : ils ne prouvent pas que la pile démarre.
  • Des jeux de démonstration ne disent rien des données réelles (données observées).
  • Déploiement et sauvegarde : exploitation et gouvernance.

Et ensuite

Étape 2 sur 4 : charger structures et personnes.

Révision lue : crisalid-deployment 10e0e710, crisalid-directory-bridge 95be05d7.

Last modified on