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-ikgetcrisalid-deploymentdansofficial-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.
| Domaine | Fichier | Brique |
|---|---|---|
| Structures | crisalid-directory-bridge/data/structures.csv (10 structures) | Directory Bridge |
| Personnes | crisalid-directory-bridge/data/people.csv (1 chercheur) | Directory Bridge |
| Notices HAL, OpenAlex, scanR, IdRef | crisalid-ikg/tests/data/source_records/*.json | Tests 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 :
Bash
É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 :
Bash
Étape 4 — Contrôler et renseigner la configuration
Pourquoi : repérer une incohérence avant de démarrer, et fournir aux services leurs comptes.
Bash
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.
Bash
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.csvaccepté avec 0 erreur, etpeople.csvqui vise une structure existante.- Les services des quatre profils à l'état
healthy(docker compose ps). - Les échanges
graph,directory,publicationset leurs files de rebut déclarés dans RabbitMQ. - Une connexion à Neo4j sur un graphe vide, et une réponse de
/healthd'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.