# Exploitation et gouvernance

> **En bref :**
> Toute la pile CRISalid tourne sur **un seul hôte**, en conteneurs, avec Neo4j **Community** et des sauvegardes qui arrêtent l'ingestion. Ni supervision ni dimensionnement documentés.
> Le code prévoit un remoissonnage en continu, mais sur l'instance **l'enrichissement est arrêté depuis le 7 septembre 2026** : la fraîcheur n'est pas démontrée.
> Le cœur est actif et sous licence CeCILL 2.1 ; **neuf dépôts n'ont pas de licence**, dont la passerelle d'annuaire, requise. La vitrine est proposée comme **brique de la suite CRISalid**.

## Déploiement : un seul hôte

- **Docker Compose est la référence.** Le déploiement assemble une quinzaine de modules activables (graphe, API Apollo, bus, moissonneur, SoVisu+, authentification, ordonnanceur, vocabulaires, briques d'IA…). Statut : **Confirmé**.
- **Le déploiement Kubernetes (svp-k8s) est abandonné** : partiel et non maintenu. Statut : **Confirmé**.
- **Colocalisation imposée** : Neo4j, le graphe (IKG) et l'ordonnanceur de tâches (Ofelia) doivent partager le même hôte, car l'ordonnanceur pilote les conteneurs et la sauvegarde lit directement les fichiers de Neo4j. Statut : **Confirmé**.
- **Sur l'instance, toute la pile tourne sur un seul hôte**, Apollo et SoVisu+ compris : **Observé sur instance (dev)** ([ce que montre l'instance](/03-crisalid/06-instance-saclay/00-ce-que-linstance-demontre)).
- **Neo4j en édition Community**, par défaut et sur l'instance : pas de compte en lecture seule restreint. Les services s'y connectent avec le compte administrateur dans le déploiement de référence. Statut : **Confirmé** et **Observé sur instance (dev)**.

Conséquence : un incident sur l'hôte arrête toute la chaîne ; la haute disponibilité n'est pas prévue.

## Sauvegarde et restauration

| Donnée | Mode | Garde-fous | Statut |
|---|---|---|---|
| Neo4j | **À l'arrêt** : arrêt du graphe puis de Neo4j, copie, redémarrage | Restauration refusée en production, double confirmation | **Confirmé** |
| PostgreSQL de SoVisu+ et du moissonneur | À chaud | Consommateurs arrêtés avant restauration | **Confirmé** |
| Redis, index | Reconstructibles | — | **Confirmé** |

Chaque sauvegarde de Neo4j interrompt l'ingestion. Fréquence, rétention et test de restauration : **À confirmer** avec l'exploitant.

## Ordonnancement et fraîcheur

**Ce que prévoit le code** : toutes les 2 minutes, l'ordonnanceur relance le moissonnage d'une personne tirée au hasard. Statut : **Confirmé** dans la configuration de déploiement. Ce tirage ne garantit pas qu'un corpus entier soit couvert dans un délai donné ; aucune protection n'empêche deux exécutions simultanées.

**Ce que montre l'instance** : l'enrichissement (calcul d'accès ouvert) est **arrêté depuis le 7 septembre 2026**. Statut : **Observé sur instance (dev)** ([données observées](/03-crisalid/06-instance-saclay/01-donnees-observees)). La cadence réelle n'est donc **pas démontrée** : c'est la question Q10 du [registre des questions](/04-prochaines-etapes/grille-evaluation).

**Sécurité** : l'ordonnanceur dispose d'un pouvoir équivalent à celui de l'administrateur de l'hôte. Statut : **Confirmé** dans le déploiement de référence.

## Supervision

Les conteneurs ont des sondes de santé, mais celles du graphe et d'Apollo renvoient une réponse constante, sans vérifier Neo4j ni le bus ([contrats API](/03-crisalid/01-donnees/contrats-api-evenements#api-observées)). Aucune collecte de métriques ni centralisation des journaux n'est fournie. Statut : **Confirmé**.

**Versions** : le déploiement de production épingle une version publiée, celui de développement des étiquettes mobiles. À Saclay, épingler chaque image et suivre les notes de version.

## Conséquences pour le service d'export

- **Pas de compte en lecture seule** : ni dans Neo4j Community, ni par la clé Apollo, qui ouvre aussi les écritures ([sécurité et droits](/03-crisalid/03-fonctionnement-transversal/securite-droits-donnees-personnelles)). Options : requêtes figées, compte dédié, réseau isolé ; ou édition Enterprise, ou développement amont.
- **Indépendant de l'ordonnanceur interne** : planifié à l'extérieur, hors des fenêtres de sauvegarde.
- **Qui le porte et le finance** : traité dans la page [extrait et comparatif du POC](/01-cadrage-saclay/02-scenarios/03-extrait-et-comparatif-du-poc).
- **Coût d'exploitation** : dimensionnement, hébergement et exploitation non documentés : **À confirmer**.

## Activité des dépôts

Statut : **Confirmé** (historique des copies locales, du 23 octobre 2025 au 23 octobre 2026). Contributeurs comptés par adresse distincte, sans les nommer.

| Dépôt | Dernier commit | Commits sur 12 mois | Adresses distinctes |
|---|---|---:|---:|
| SoVisu+ (SoVisuPlus) | 2026-10-18 | 420 | 7 |
| Moissonneur (svp-harvester) | 2026-09-11 | 147 | 5 |
| Déploiement (crisalid-deployment) | 2026-09-24 | 138 | 6 |
| Graphe (crisalid-ikg) | 2026-09-09 | 77 | 6 |
| API Apollo (crisalid-apollo) | 2026-07-15 | 61 | 4 |
| Passerelle d'annuaire (crisalid-directory-bridge) | 2026-09-15 | 21 | 3 |

À obtenir de l'équipe CRISalid : concentration des contributions (dépendance à une ou deux personnes), délai de traitement des contributions externes, calendrier de publication.

## Gouvernance

Le code est hébergé par l'organisation [CRISalid-esr](https://github.com/CRISalid-esr) ; le consortium se présente sur [crisalid.org](https://crisalid.org/consortium/quest-ce-que-crisalid) et dans l'[espace ESUP-CRISalid](https://www.esup-portail.org/wiki/spaces/ESUPCRISalid/pages/1337851912/Accueil+ESUP-CRISalid). Le portage institutionnel, le financement de la maintenance et la possibilité d'un engagement de service **ne sont pas documentés** dans les dépôts : **À confirmer** avant le comité.

## Licences

Statut : **Confirmé** (fichiers de licence vérifiés le 30 octobre 2026 sur les copies locales).

| Licence | Dépôts |
|---|---|
| CeCILL 2.1 | SoVisu+, graphe (IKG), déploiement, Vocab Search, moissonneur, prototypes d’écrans de SoVisu+ (SVP-mockups), API Apollo |
| Apache 2.0 | aiosparql, page de maintenance, proxy JEL |
| MIT | doccano (copie d'un projet tiers) |
| **Aucun fichier de licence : neuf dépôts** | passerelle d'annuaire, Org Registry, **Taxi** (licence MIT seulement déclarée dans sa configuration), crisalid-agents, crisalid-ai-skills, détection de doublons par IA, graphrag-experiments, svp-k8s, svp-training-data |

- **La passerelle d'annuaire est requise** et n'a pas de licence : point bloquant à lever avant tout déploiement.
- **Apollo** : le fichier de licence (CeCILL 2.1) prévaut sur la mention ISC de sa configuration, à faire corriger en amont.
- **CERIF-Core**, spécification d'euroCRIS et non dépôt de code CRISalid, n'a pas non plus de fichier de licence : **À confirmer**.
- **Tiers** : Neo4j Community (GPL v3), RabbitMQ (MPL 2.0), Next.js et Apollo Server (MIT).

## Contribution recommandée

1. **Ne pas créer de version divergente du cœur** : proposer en amont les correctifs génériques (défauts de sécurité, licence d'Apollo et de la passerelle, propagation des suppressions, accès en lecture seule).
2. **Proposer la vitrine comme brique de la suite CRISalid**, en marque blanche, réutilisable par d'autres établissements ([Partie 1](/01-cadrage-saclay/02-scenarios/01-partie-1-vitrine-marque-blanche)). Le service d'export est traité dans la page [extrait et comparatif du POC](/01-cadrage-saclay/02-scenarios/03-extrait-et-comparatif-du-poc).
3. **Participer aux instances de la communauté** pour porter les besoins d'un grand établissement : multi-tutelles, ZRR, volumétrie.

Détail du dépôt de déploiement : [carte des sous-projets](/03-crisalid/02-sous-projets/carte-des-sous-projets).
