____14DS — Événements sous forme de Flags-Enum et events_result
Déclencheur S6, constat AP7
La chaîne d'événements de DS03 (machine à états avec prev_event_sha256) est restée, lors de la première utilisation, sous forme de fichiers individuels — le constat (Repo-Bloat) et la correction ont conduit à la représentation par Flags dans le conteneur : les étapes sont des bits, le résultat est un masque de bits.
La définition de l'Enum
Ancrée normativement dans le schéma (non répétée pour chaque conteneur) :
| Étape | Bit | Signification |
|---|---|---|
offered |
1 | Signature demandée (document présenté pour signature) |
accepted |
2 | Le destinataire en a pris connaissance (§ 126b Abs. 1 BGB : accès) |
denied |
4 | Le destinataire refuse (exclut sign) |
sign |
8 | Signature apposée (référence Facsimile/clé) |
withdraw |
16 | Signature retirée (exclut sign) |
Le Flags-Set
"events": {
"enum_definition": {
"offered": 1, "accepted": 2, "denied": 4, "sign": 8, "withdraw": 16
},
"flags_set": {
"offered": { "set": true, "timestamp_utc": "2026-09-13T17:31:00Z", "uuidV7": "…", "sha256": "f1358236…" },
"accepted": { "set": true, "timestamp_utc": "2026-09-13T17:33:00Z", "uuidV7": "01a09bd4…", "sha256": "71905eea…" },
"denied": { "set": false, "timestamp_utc": null, "uuidV7": null, "sha256": null },
"sign": { "set": true, "timestamp_utc": "2026-09-13T17:35:00Z", "uuidV7": "01a09bd6…", "sha256": "dab7ddfe…" },
"withdraw": { "set": false, "timestamp_utc": null, "uuidV7": null, "sha256": null }
},
"events_result": 11,
"chain_valid": true
}
Le résultat : events_result = 11
offered(1) + accepted(2) + sign(8) = 11
| Résultat | Interprétation |
|---|---|
| 1 | offered uniquement — en attente |
| 2 | accepted uniquement — sans offered (irrégulier, à vérifier) |
| 3 | offered + accepted — prêt pour la signature |
| 11 | offered + accepted + sign — entièrement signé |
| 4 | denied — refusé (pas de sign) |
| 16 | withdrawn — retiré |
| 7 | offered + accepted + denied — contradiction (chain_valid=false) |
Le masque de bits est vérifiable de manière déterministe — un vérificateur refait le calcul :
jq -r '.events.events_result' container.gcpn.md
jq -r '[.events.flags_set[] | select(.set == true)] | length' container.gcpn.md
# → Anzahl der gesetzten Bits muss mit Popcount(events_result) übereinstimmen
Aucune contradiction possible
La machine à états (DS03) et la sémantique des bits empêchent ensemble les déroulements irréguliers :
denied(4) exclutsign— après un refus, aucune signature n'est possible.withdraw(16) exclutsign— après un retrait, la procédure est terminée.chain_valid: false= chaînageprev_event_sha256lacunaire — valeur probante réduite (DS04).
Protocole des acquis de la recherche (AP7)
| AP | Constat | Mise en œuvre |
|---|---|---|
| AP7 | Événements sous forme de fichiers individuels → Bloat ; séquence d'états sous forme de texte | Flags-Enum avec masque de bits events_result + chain_valid |
Le chaînage prev_event_sha256 reste en place (résumé sous forme de confirmation chain_valid) — les bits remplacent la répétition de la machine à états, pas la vérification d'intégrité.
Créé : 260913 | Partie III, article ____14DS | Série : digital-signage