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

Vérifier Apollo sans accès au graphe

En bref : Ce contrôle génère le schéma GraphQL d'Apollo, l'API de lecture du graphe, et teste sa clé d'API, sans graphe ni donnée. Statut : Confirmé (exécution locale).

Résultat : code 0, 10 contrôles sur 10, le 22 octobre 2026. Le schéma généré expose la création, la modification et la suppression de personnes et de publications, et la clé d'API acceptée pour lire l'est aussi pour écrire.

Pourquoi ce contrôle

Apollo est la porte d'accès au graphe : un service tiers y lirait les données. La question décisive : une clé donnée pour lire permet-elle aussi d'écrire ? Les conséquences sont tenues dans sécurité, droits et données personnelles.

Avant de commencer

  • Node, npm et un accès au registre npm ; la copie crisalid-apollo dans official-crisalid.
  • À ne pas faire : charger src/index.ts (il démarre le serveur), lancer la suite de tests amont, ou viser un graphe existant.

Étapes

Étape 1 — Installer les dépendances et lancer le contrôle

Pourquoi : générer le schéma avec la vraie bibliothèque, dans un dossier isolé.

TerminalBash
runtime=$(mktemp -d) npm install --prefix "$runtime" --ignore-scripts --no-audit --no-fund --no-save \ @neo4j/graphql@6.6.4 graphql@16.13.0 typescript@5.7.2 neo4j-driver@5.28.3 node scripts/check-crisalid-apollo-contract.mjs --runtime "$runtime"

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

Pourquoi : distinguer ce qui tourne réellement de ce qui reste hors périmètre.

  • Schéma : la définition d'Apollo est générée par la vraie bibliothèque, sans connexion au graphe.
  • Opérations : une lecture et une création sont validées contre ce schéma, sans être exécutées.
  • Clé : la fonction de contrôle d'accès d'Apollo est extraite et exécutée sur des requêtes fictives.

Étape 3 — Lire le rapport

Pourquoi : le code 0 confirme des comportements, pas une API sûre.

Le rapport donne les dix contrôles, les versions et l'empreinte du schéma. Un avertissement de dépréciation de la bibliothèque n'est pas un échec.

Ce que le contrôle établit

  • Sans clé, ou avec une mauvaise clé, la requête est refusée ; sans clé configurée, tout est refusé.
  • Avec une clé valide, lecture et écriture passent de la même façon : il n'existe pas de clé « lecture seule ».
  • Un réglage de configuration permet de désactiver tout contrôle de clé ; il faut donc le vérifier sur chaque déploiement.

Limites

  • Aucun serveur ni graphe : ni HTTP, ni droits du compte Neo4j, ni limites de requête.
  • La suite de tests amont efface tout le graphe : uniquement sur un graphe jetable.
  • Pour interroger Apollo dans une pile isolée : vérifier le graphe et l'API.

Et ensuite

C'était le dernier contrôle. Retour à la synthèse des résultats.

Révision lue : crisalid-apollo d377579a.

Last modified on