Documentation RestorSignal

Format du dossier de preuve

La structure physique, le cycle de vie et le scellement d'un dossier Evidence quotidien.

Le dossier de preuve décrit ce qui est documenté. Cette page décrit comment c'est structuré : le format physique défini par RS-RVP-04, destiné aux intégrateurs et aux vérificateurs indépendants.

Un dossier par contexte, par journée civile

RestorSignal produit au maximum un dossier Evidence scellé par contexte et par journée civile, consolidant tous les runs reçus pendant cette période :

storage/evidence/<tenant_id>/<evidence_id>/
├── manifest.json          (period_type, context_id, period_start/period_end, state, bundle)
├── context/                (scope — commun aux runs de la période)
├── execution/
│   ├── runs/<run_id>.json   (un fichier par run contributeur : son propre artefact/environnement/requête)
│   ├── controls.json         (tous les contrôles de tous les runs, chacun rattaché à son run source)
│   ├── errors.json
│   ├── events.ndjson
│   └── result.json           (synthèse de la période : run_count, consolidated_status)
├── references/               (référentiel, composants logiciels)
├── integrity/                 (hashes, hash racine, scellement)
└── reports/                    (rendus FR/EN)

manifest.json est l'index du dossier : period_type/period_start/period_end/context_id identifient la période couverte, et bundle porte l'enveloppe de validation de la période (ventilation par niveau, plus haut niveau démontré, statut consolidé) — distincte de l'objet EvidenceBundle mono-run défini par RS-RVP-02/RS-RVP-03, puisqu'un dossier quotidien n'a pas de run/artefact unique à décrire.

Cycle de vie

CREATED → RUNS_RECORDED → EVALUATED → SEALED

Le dossier n'est créé et ses runs enregistrés qu'une fois la période close — jamais de façon spéculative à chaque run reçu pendant la journée. Après SEALED, le dossier porte un état de validité distinct (VALID/INVALID). Un dossier SEALED n'est jamais réécrit : un run arrivant après le scellement est enregistré pour lui-même mais n'intègre jamais un dossier déjà scellé.

Résultat consolidé

Le consolidated_status de la période n'est jamais simplement le résultat du dernier run. Il suit un ordre de sévérité fixe sur l'ensemble des runs de la période :

FAIL > ERROR (NOT_TESTED / INCONCLUSIVE) > NOT_APPLICABLE > PASS

Le statut le plus défavorable observé pendant la période constitue le résultat consolidé du dossier, même si la majorité des runs de cette période sont en PASS — voir Statuts des résultats et Statuts des contrôles pour le vocabulaire sous-jacent.

Scellement

Avant SEALED : chaque fichier du dossier (hors integrity/ et manifest.json lui-même) est haché en SHA-256 (integrity/hashes.json), puis la liste triée <hash> <chemin> est elle-même hachée pour produire un hash racine déterministe (integrity/seal.json). Un vérificateur indépendant recalcule ces deux étapes pour confirmer qu'aucun fichier n'a été modifié depuis le scellement.

Conservation et vérification publique

Le retention_until d'un dossier scellé est figé au moment du scellement et ne change jamais rétroactivement. La conservation ne dépend pas du fait que l'abonnement sous-jacent reste actif : un dossier scellé et son lien de vérification publique restent disponibles jusqu'à retention_until, indépendamment du statut du compte. Voir la documentation du portail Verify pour le parcours de vérification publique.

Aller plus loin

Les règles complètes d'agrégation quotidienne — bornes de période, gestion des runs tardifs, conservation — sont définies par RS-RVP-04. Le concept mono-run d'Evidence Bundle sur lequel il s'appuie (le résultat technique scellé d'un seul run, distinct du produit quotidien décrit sur cette page) reste défini par RS-RVP-03.

Version documentaire : 2.0Dernière révision : 2026-08-15Référentiel associé : RS-RVP-04 v1.0