Bibliothèque de cas pratiques · Cas B sur 3

Une automatisation exécutée. Une approbation absente.

Réponse courte. Une automatisation qui agit « tant que ce n’est pas refusé » laisse passer tout ce qui n’a jamais été approuvé : un statut absent, en attente, vide ou lié à une autre version du document. Une autorisation déployable doit être positive et liée à l’action exacte : bon statut, bonne version, bonne charge utile, approbation non révoquée et non expirée. Cet exercice en JavaScript, sur fixtures synthétiques, compare la règle fautive et la règle corrigée ; il ne décrit le comportement d’aucune plateforme d’automatisation.

Une condition autorise un envoi dès lors que son statut n’est pas « refusé ». Que devient une entrée absente, en attente ou associée à une autre version du document ? Cet exercice examine une règle d’autorisation avant de s’intéresser à la vitesse d’exécution.

Cas pratique pédagogique. Documents, transactions et traces synthétiques. Les réponses présentées sont préparées pour l’exercice ; elles ne sont pas les résultats d’un test de modèle réel. Il s’agit d’un exercice en JavaScript avec des fixtures locales : il ne décrit pas le fonctionnement de Make, n8n ou Zapier.

Les pièces

La règle fautive et la règle corrigée

// Règle fautive étudiée dans cet exercice JavaScript.
const weakAllows = input => input.approval_status !== 'refused';

// Contrôle pédagogique déterministe : ne remplace pas une autorisation serveur.
function allows(input, now) {
  const expires = Date.parse(input.expires_at);
  return input.approval_status === 'approved'
    && typeof input.operation_id === 'string'
    && input.operation_id.length > 0
    && typeof input.payload_hash === 'string'
    && input.payload_hash.length > 0
    && input.payload_hash === input.approved_payload_hash
    && input.document_version === input.approved_version
    && input.document_version === 'V4'
    && input.revoked === false
    && Number.isFinite(expires)
    && expires > now;
}

Dans cet exercice, les chaînes H-A et H-B servent seulement à tester une égalité. Ce ne sont pas des empreintes cryptographiques. Dans une application réelle, il faut calculer une empreinte sur une représentation canonique de la charge utile, vérifier l’identité et les droits de l’approbateur, empêcher l’altération des preuves et effectuer le contrôle au point d’exécution. Le contrôle dans le navigateur ne protège aucun service.

Les douze fixtures

Base : operation_id=OP-001, payload_hash=H-A, approved_payload_hash=H-A, document_version=V4, approved_version=V4, revoked=false, expires_at=2026-10-14T00:00:00Z. Horloge de test : 2026-10-13T12:00:00Z.

FixtureVariationRègle fautiveRègle corrigée
B01statut approvedautoriséautorisé
B02statut refusedrefusérefusé
B03statut pendingautorisérefusé
B04champ approval_status absentautorisérefusé
B05statut nullautorisérefusé
B06statut chaîne videautorisérefusé
B07statut booléen trueautorisérefusé
B08approved, document V5autorisérefusé
B09approved, payload H-Bautorisérefusé
B10approved, expiré le 12 octobreautorisérefusé
B11approved, révoquéautorisérefusé
B12approved, expiration égale à l'horlogeautorisérefusé

Journal : délai dépassé après effet (journal-B.csv)

event_idoperation_idattempteventrecipient_object_id
E01OP-0011request_receivedvide
E02OP-0011object_createdBON-001
E03OP-0011response_lostvide
E04OP-0012request_receivedvide
E05OP-0012existing_object_returnedBON-001

L’exercice

  1. Pourquoi la règle fautive autorise-t-elle onze fixtures sur douze ?
  2. Quelles conditions la règle corrigée ajoute-t-elle, et laquelle aurait suffi à refuser B03 à B07 ?
  3. Dans journal-B.csv : combien de tentatives, d’objets créés et de confirmations reçues par l’émetteur ?
Afficher le corrigé

Règle fautive. Elle ne refuse qu’une seule valeur : « refused ». Un statut en attente, absent, nul, vide ou booléen est différent de « refused », donc autorisé ; il en va de même d’une approbation qui porte sur une autre version, une autre charge utile, ou qui est expirée ou révoquée. C’est le résultat logique de ce code précis, pas un comportement observé sur une plateforme.

Règle corrigée. Elle exige une approbation positive (« approved »), liée à l’opération, à la charge utile et à la version approuvées, non révoquée et non expirée. Le seul contrôle « statut === 'approved' » refuse déjà B03 à B07 ; les autres conditions refusent B08 à B12. Sur les douze fixtures, seule B01 est autorisée.

Journal. Deux tentatives et un objet créé (BON-001) dans ce journal synthétique. L’événement existing_object_returned ne suffit pas à démontrer la réception de sa réponse : le nombre de confirmations reçues reste indéterminé sans journal côté émetteur.

Contre-exemple

Remplacer E05 par object_created,BON-002 (fichier journal-B-doublon.csv) montre un doublon dans cette autre fixture. La reprise n’implique donc pas automatiquement un doublon ; elle crée un risque qui dépend du destinataire et de son mécanisme d’unicité.

Simulateur local

Choisissez une fixture : le simulateur affiche la branche prise par chaque règle. Il ne déclenche aucun courriel, paiement ou appel externe.

B01 : règle fautive autorisé, règle corrigée autorisé.

Décision et limites

Une autorisation doit être positive et liée à l’action exacte. Une tentative n’est pas une preuve d’effet métier. Avant déploiement, vérifier le contrôle serveur, les changements après approbation, les reprises et les appels concurrents. Les fixtures présentes ne démontrent ni la sécurité d’une plateforme ni une garantie universelle d’exécution unique.

Pièces à télécharger

Sans formulaire. Licence CC BY 4.0. Empreintes dans SHA256SUMS.txt ; elles authentifient les fichiers distribués, pas une exécution réelle.

Toutes les pièces, le README et la licence

Les autres cas

Cas A — La bonne réponse au mauvais contrat
Récupération, applicabilité, génération
Cas C — Du temps disponible, pas encore une économie
Capacité libérée et trésorerie

Décider avant de déployer

  1. Quelle pièce soutient la réponse ou l’autorisation ?
  2. Cette pièce s’applique-t-elle à la date, à la version et à l’action ?
  3. Quel effet a été observé, et par quelle trace ?
  4. Quelle observation nous ferait changer de conclusion ?

Trois décisions possibles : informations insuffisantes ; test complémentaire nécessaire ; critères de l’exercice satisfaits. La troisième ne signifie jamais « système prêt pour toute production ».

Préparer un événement sur l’IA

Vous souhaitez aborder ces questions avec vos dirigeants ou vos équipes ? Présentez le public, le format et l’objectif de votre événement.

Préparer un événement sur l’IA