Contrôles déjà exécutés

Contrôler Directory Bridge et ses entrées CSV

En bref : Ce contrôle fait tourner le vrai lecteur CSV de Directory Bridge et ses conversions, sans Airflow ni service. Statut : Confirmé (exécution locale).

Résultat : code 0, 12 tests sur 12, le 22 octobre 2026. Le lecteur CSV laisse de côté sept colonnes que le convertisseur sait traiter (HDR, emails de contact et d'authentification, type et dates d'appartenance, ResearcherID) ; une personne absente du lot à la date de traitement est marquée supprimée.

Pourquoi ce contrôle

L'annuaire entre dans CRISalid par Directory Bridge. Avant de croire qu'un export de Paris-Saclay passera sans perte, il faut savoir ce que ce lecteur garde vraiment. Rôle du dépôt : carte des sous-projets.

Avant de commencer

  • Python 3.12 et un accès au registre Python.
  • Le dépôt de l'audit et les copies des sources dans official-crisalid (où les trouver).
  • À ne pas faire : lancer Airflow, Redis ou RabbitMQ, ou utiliser un .env réel.

Étapes

Étape 1 — Créer un environnement isolé et lancer le contrôle

Pourquoi : isoler les dépendances pour qu'aucun Airflow existant ne soit touché.

TerminalBash
env_dir=$(mktemp -d) python3.12 -m venv "$env_dir/venv" "$env_dir/venv/bin/python" -m pip install -r scripts/crisalid-directory-requirements.txt "$env_dir/venv/bin/python" scripts/check-crisalid-directory-inputs.py

Étape 2 — Savoir ce qui est exécuté

Pourquoi : ne pas surestimer la preuve.

Les modules originaux sont importés sans modification. Seuls le décorateur de tâche Airflow et la configuration (réduite aux chemins des fichiers d'exemple du dépôt) sont remplacés. Le cas « colonne manquante » utilise un CSV temporaire, supprimé après le test.

Étape 3 — Lire le rapport

Pourquoi : un code 0 ne veut pas dire « sans perte » ; il faut lire ce qui est omis.

Le rapport donne les douze tests, les versions et les colonnes omises. Le détail des champs est tenu dans le dictionnaire de données, le calcul des statuts dans provenance, qualité et fusion.

Ce que le contrôle établit

  • Sept colonnes du fichier des personnes ne sortent pas du lecteur, alors que le convertisseur sait les traiter.
  • Une colonne obligatoire manquante fait rejeter le fichier ; une structure sans identifiant local est ignorée ; deux lignes au même identifiant : la dernière l'emporte.
  • Statuts « créé », « modifié », « inchangé » (indépendant de l'ordre des listes) et « supprimé » (absence au moment du lot).

Limites

  • Ni traitement Airflow, ni livraison sur le bus, ni écriture dans le graphe ne sont exécutés.
  • Les statuts « supprimé » calculés ici ne sont pas appliqués par IKG (suppressions non propagées).
  • Données d'exemple du dépôt uniquement.
  • Pour un chargement réel, suivre le parcours.

Et ensuite

Contrôle suivant : Champs transmis Bridge → IKG.

Révision lue : crisalid-directory-bridge 95be05d7.

Last modified on