PD-60 — Dépôt probatoire d'un document (Upload)¶
1. Objectif¶
Définir le contrat canonique de POST /documents/upload pour qu'un acteur autorisé puisse déposer un document avec création d'un acte probatoire daté, traçable et juridiquement imputable, vérifiable par un tiers hors plateforme, sans exposition du contenu intelligible du document à ProbatioVault.
2. Périmètre / Hors périmètre¶
Inclus¶
- Réception d'un acte de dépôt documentaire via API.
- Vérification de l'authentification et de l'autorisation du déposant.
- Enregistrement d'un acte de dépôt daté, traçable et non ambigu.
- Émission d'un reçu probatoire exportable remis au déposant.
- Association explicite du dépôt à un compte ProbatioVault et à un périmètre de responsabilité.
- Gestion déterministe des erreurs.
- Gestion d'un état intermédiaire explicite non probatoire en contexte dégradé, puis confirmation probatoire ultérieure.
Exclu¶
- Consultation, modification, partage, suppression, recherche, indexation, versioning documentaire.
- Définition des mécanismes internes de stockage, de chiffrement, de calcul cryptographique ou de transport.
- Définition d'objectifs de performance (latence, débit, volumétrie).
- Rate-limiting et protection contre les tentatives massives d'authentification échouées (relève de la couche infrastructure/opérationnelle — résolution R-14).
- Qualification juridictionnelle finale de la valeur probatoire par une autorité externe (hors périmètre — non testable dans cette US).
3. Définitions¶
- Acte de dépôt probatoire : opération métier qui établit l'existence probatoire du document.
- Acteur autorisé : compte authentifié disposant du droit de déposer.
- Compte déposant : identifiant de compte ProbatioVault (
depositor_identity_ref) ; la spécification ne qualifie pas l'identité civile réelle derrière ce compte. - Contenu intelligible : contenu lisible en clair par ProbatioVault.
- Empreinte documentaire (
document_fingerprint) : hash SHA-256 du contenu opaque soumis, fourni par le client au format hexadécimal lowercase (64 caractères). Le système DOIT recalculer le hash du contenu opaque reçu et vérifier la cohérence avec l'empreinte fournie par le client (voir INV-60-15). - Date d'existence probatoire : horodatage UTC opposable (
existence_timestamp_utc), au format ISO 8601 avec précision à la seconde. La source d'horodatage DOIT être synchronisée NTP avec une dérive maximale tolérée de 1 seconde. Au-delà, le système DOIT refuser la confirmation probatoire (contexte dégradé). - Reçu probatoire (
proof_receipt) : structure JSON signée (JWS — RFC 7515, algorithme RS256 ou ES256) contenant dans le payload :deposit_id,existence_timestamp_utc,document_fingerprint,depositor_identity_ref,responsibility_scope_ref,audit_trace_ref,responsibility_declaration. La signature est vérifiable avec la clé publique ProbatioVault publiée hors plateforme. La vérification tiers consiste à : (1) vérifier la signature JWS avec la clé publique, (2) comparer ledocument_fingerprintdu reçu avec le hash SHA-256 du document original, (3) vérifier la cohérence des champs du payload. - Pré-enregistrement non probatoire : état intermédiaire explicite sans effet juridique probatoire.
- Contexte dégradé : situation où le contenu opaque a été reçu et validé (authentification OK, requête complète, empreinte cohérente) mais au moins une des deux conditions de l'existence juridique ne peut pas être satisfaite (écriture d'audit immuable indisponible OU émission du reçu probatoire impossible). Se distingue d'une erreur technique (ERR-60-06) qui survient avant la validation de la requête.
- Confirmation probatoire : transition d'un état non probatoire vers un acte de dépôt probatoire complet.
- Périmètre de responsabilité : contexte d'imputation de l'acte (
responsibility_scope_ref). - Tiers vérificateur : entité pouvant vérifier la preuve sans accès API ProbatioVault.
- Notice minimale obligatoire : texte exact
"Vous réalisez un acte probatoire daté."devant être accepté explicitement avant confirmation probatoire. Le système vérifie la présence deprobative_notice_ack=truedans la requête ; la responsabilité de présenter effectivement le texte de la notice à l'utilisateur final incombe au client appelant (limitation architecturale inhérente aux API — résolution R-05).
4. Invariants (non négociables)¶
| ID | Règle | Justification |
|---|---|---|
| INV-60-01 | Un dépôt probatoire DOIT être réalisé uniquement par un acteur authentifié et autorisé. | Éviter les contestations d'origine de l'acte. |
| INV-60-02 | Une confirmation probatoire DOIT être atomique : succès complet ou refus complet. | Interdire les états probatoires partiels. |
| INV-60-03 | Tout dépôt probatoire accepté DOIT avoir un deposit_id unique et un existence_timestamp_utc. | Opposabilité de l'existence et de la date. |
| INV-60-04 | ProbatioVault NE DOIT PAS exposer de contenu intelligible dans réponses API, logs et traces applicatives. Le système traite le contenu comme opaque ; la garantie que le contenu soumis est effectivement chiffré relève de la responsabilité du client appelant. Le système ne peut pas détecter la soumission de contenu en clair (résolution R-13). | Confidentialité et zero-knowledge. |
| INV-60-05 | Le reçu probatoire DOIT permettre une vérification hors plateforme de l'intégrité, de la date, de l'identifiant de dépôt, de l'imputabilité de compte, du périmètre de responsabilité et de la cohérence avec la référence d'audit. | Réduire la dépendance à la confiance exclusive en plateforme. |
| INV-60-06 | Toute tentative de dépôt (succès, refus, pré-enregistrement) DOIT être journalisée de manière traçable et non altérable a posteriori. La non-altérabilité est assurée par un stockage append-only ; toute tentative de modification ou suppression d'une entrée existante DOIT être rejetée par le système. La non-altérabilité absolue (résistance à un acteur disposant d'un accès administrateur au stockage) est hors périmètre de cette US et relève de l'infrastructure (résolution R-04). | Auditabilité probatoire. |
| INV-60-07 | Tout dépôt probatoire accepté DOIT être lié explicitement à depositor_identity_ref (compte ProbatioVault) et responsibility_scope_ref. | Imputabilité non ambiguë du compte déposant. |
| INV-60-08 | Toute altération du document après dépôt DOIT être détectable avec le reçu probatoire. | Garantie d'intégrité. |
| INV-60-09 | Le statut d'opération DOIT être explicite : PROBATIVE_DEPOSIT ou NON_PROBATIVE_STAGING. | Éliminer l'ambiguïté juridique. |
| INV-60-10 | L'existence juridique du dépôt n'est acquise QUE si la trace d'audit immuable est écrite ET si le reçu probatoire est émis. | Décision contractuelle PC-60-01. |
| INV-60-11 | En contexte dégradé, le système PEUT créer un état NON_PROBATIVE_STAGING ; cet état ne vaut pas acte probatoire. | Décision contractuelle PC-60-05. |
| INV-60-12 | La confirmation probatoire DOIT exiger l'acceptation explicite de la notice minimale obligatoire. | Information minimale sur la portée juridique de l'acte (PC-60-04). |
| INV-60-13 | La répartition contractuelle des responsabilités DOIT être explicite : déposant (document soumis), organisation (habilitations/mandats), ProbatioVault (traçabilité/date/intégrité de l'acte). | Décision contractuelle PC-60-03. |
| INV-60-14 | L'obligation irréversible du déposant est limitée à la reconnaissance de l'acte probatoire (existence/date) ; aucune autre obligation irréversible n'est créée par cette US. | Décision contractuelle PC-60-02. |
| INV-60-15 | Le système DOIT recalculer le hash SHA-256 du contenu opaque reçu et rejeter la requête si l'empreinte recalculée ne correspond pas au document_fingerprint fourni par le client. | Garantie d'intégrité dès l'ingestion (résolution R-01/R-12). |
| INV-60-16 | La testabilité de la double condition (INV-60-10) DOIT être assurée par un mécanisme d'injection de faute contrôlé en environnement de test, permettant de simuler indépendamment l'indisponibilité de l'écriture d'audit et l'indisponibilité de l'émission du reçu. | Reproductibilité des tests TC-NOM-09 (résolution R-09). |
| INV-60-17 | INV-60-13 (répartition des responsabilités) et INV-60-14 (limitation des obligations irréversibles) sont vérifiables uniquement sur la présence syntaxique et structurelle dans les artefacts API ; leur qualification juridique complète relève d'un référentiel externe hors périmètre de cette US. | Limitation de testabilité assumée (résolution R-07/R-08). |
5. Flux nominaux¶
FN-60-01 — Confirmation probatoire nominale¶
- Le client soumet une requête complète avec : contenu opaque, empreinte,
client_request_id, contexte identité/autorisations,probative_notice_ack=true. - Le système vérifie la validité de l'authentification et des droits.
- Le système vérifie la complétude et la cohérence de la requête (incluant la vérification serveur : hash SHA-256 du contenu opaque reçu ==
document_fingerprintfourni). - Le système écrit la trace d'audit immuable de l'acte.
- Le système émet le reçu probatoire.
- L'acte acquiert l'existence juridique (double condition satisfaite).
Sortie obligatoire (succès probatoire) : deposit_id, existence_timestamp_utc, depositor_identity_ref, responsibility_scope_ref, document_fingerprint, client_request_id, proof_receipt, audit_trace_ref, act_type=PROBATIVE_DEPOSIT, legal_existence_status=ESTABLISHED.
FN-60-02 — Rejeu idempotent (même intention)¶
- Le client rejoue la même requête (
client_request_ididentique + même document). - Le système renvoie le résultat probatoire initial.
Résultat attendu : aucun doublon d'acte probatoire.
FN-60-03 — Contexte dégradé : pré-enregistrement non probatoire¶
- Le client soumet une requête mais la confirmation probatoire ne peut pas être finalisée.
- Le système crée un pré-enregistrement explicite.
Sortie obligatoire (non probatoire) : staging_id, client_request_id, act_type=NON_PROBATIVE_STAGING, legal_existence_status=NOT_ESTABLISHED.
Interdictions : pas de deposit_id, pas de proof_receipt, pas de existence_timestamp_utc.
FN-60-04 — Confirmation ultérieure d'un pré-enregistrement¶
- Le client rejoue avec le même
client_request_idaprès rétablissement des conditions. - Le système applique FN-60-01.
Résultat attendu : un seul acte probatoire final, sans ambiguïté sur le statut juridique.
FN-60-05 — Vérification tiers hors plateforme (niveau renforcé)¶
- Le tiers dispose du document, du reçu probatoire et de la référence d'audit.
- Le tiers vérifie :
- cohérence document ↔ empreinte,
- cohérence
deposit_id+existence_timestamp_utc, - présence et cohérence de
depositor_identity_ref+responsibility_scope_ref, - cohérence reçu ↔
audit_trace_ref.
Résultat attendu : preuve valide sans appel à l'API applicative ProbatioVault.
5bis. Diagrammes¶
Diagramme d'etats — Cycle de vie d'un depot¶
Le depot documentaire suit une machine d'etats a deux statuts explicites (INV-60-09) avec une confirmation probatoire atomique (INV-60-02). L'existence juridique n'est acquise que par double condition : audit immuable + recu emis (INV-60-10).
stateDiagram-v2
[*] --> Validation : POST /documents/upload
Validation --> Refuse : ERR-60-01..04, 07, 11
Refuse --> [*]
Validation --> ConfirmationProbatoire : Requete valide\n+ conditions nominales
Validation --> NON_PROBATIVE_STAGING : Requete valide\n+ contexte degrade (INV-60-11)
state ConfirmationProbatoire {
[*] --> EcritureAudit : Trace immuable (INV-60-06)
EcritureAudit --> EmissionRecu : Recu JWS (INV-60-05)
EmissionRecu --> DoubleCondition : INV-60-10
}
ConfirmationProbatoire --> PROBATIVE_DEPOSIT : Succes atomique (INV-60-02)
ConfirmationProbatoire --> NON_PROBATIVE_STAGING : Echec partiel\n(audit OU recu indisponible)
NON_PROBATIVE_STAGING --> ConfirmationProbatoire : Rejeu apres retablissement\n(FN-60-04)
PROBATIVE_DEPOSIT --> PROBATIVE_DEPOSIT : Rejeu idempotent\n(FN-60-02, ERR-60-08)
PROBATIVE_DEPOSIT --> [*]
note right of NON_PROBATIVE_STAGING
legal_existence_status = NOT_ESTABLISHED
Pas de deposit_id, pas de proof_receipt (INV-60-11)
end note
note right of PROBATIVE_DEPOSIT
legal_existence_status = ESTABLISHED
deposit_id + existence_timestamp_utc (INV-60-03)
end note Diagramme de sequence — Flux nominal (FN-60-01)¶
Le flux nominal implique le client, le service API, le module de verification d'integrite, le journal d'audit immuable et le module de signature JWS. La confirmation probatoire est atomique (INV-60-02) : toute defaillance avant la double condition entraine un rollback vers NON_PROBATIVE_STAGING.
sequenceDiagram
participant C as Client
participant API as DocumentUploadService
participant Auth as AuthService
participant Hash as IntegrityVerifier
participant NTP as NTPSource
participant Audit as AuditLog (append-only)
participant JWS as JWSSigningModule
C->>+API: POST /documents/upload<br/>(contenu opaque, document_fingerprint,<br/>client_request_id, probative_notice_ack=true)
API->>+Auth: Verifier authentification + autorisation
Auth-->>-API: OK (depositor_identity_ref,<br/>responsibility_scope_ref)
Note over API: INV-60-01, INV-60-07
API->>API: Verifier completude requete<br/>+ probative_notice_ack (INV-60-12)
API->>+Hash: SHA-256(contenu opaque)
Hash-->>-API: hash_recalcule
API->>API: hash_recalcule == document_fingerprint ?
Note over API: INV-60-15 — Rejet si incoherent
API->>+NTP: Horodatage UTC
NTP-->>-API: existence_timestamp_utc
Note over API: Derive <= 1s (H-60-03)
rect rgb(230, 245, 255)
Note over API,JWS: Confirmation probatoire atomique (INV-60-02, INV-60-10)
API->>+Audit: Ecrire trace immuable<br/>(deposit_id, fingerprint, identity, scope)
Audit-->>-API: audit_trace_ref
Note over Audit: INV-60-06 — append-only
API->>+JWS: Signer recu probatoire<br/>(deposit_id, timestamp, fingerprint,<br/>identity, scope, audit_trace_ref)
JWS-->>-API: proof_receipt (JWS RS256/ES256)
Note over JWS: INV-60-05 — verifiable hors plateforme
end
API-->>-C: 201 Created<br/>act_type=PROBATIVE_DEPOSIT<br/>legal_existence_status=ESTABLISHED<br/>deposit_id, proof_receipt, audit_trace_ref
Note over C: INV-60-03, INV-60-09 Diagramme de sequence — Contexte degrade (FN-60-03 / FN-60-04)¶
En contexte degrade (INV-60-11), le systeme cree un pre-enregistrement non probatoire. La confirmation ulterieure (FN-60-04) reprend le flux nominal apres retablissement des conditions.
sequenceDiagram
participant C as Client
participant API as DocumentUploadService
participant Audit as AuditLog (append-only)
participant JWS as JWSSigningModule
C->>+API: POST /documents/upload<br/>(requete valide, verifications OK)
alt Audit indisponible OU JWS indisponible
API->>Audit: Ecrire trace immuable
Note over Audit: INDISPONIBLE (ou JWS indisponible)
API-->>C: 202 Accepted<br/>act_type=NON_PROBATIVE_STAGING<br/>legal_existence_status=NOT_ESTABLISHED<br/>staging_id (pas de deposit_id, pas de proof_receipt)
Note over C: INV-60-09, INV-60-11
end
Note over C,API: ... Retablissement des conditions ...
C->>+API: POST /documents/upload<br/>(meme client_request_id — FN-60-04)
API->>+Audit: Ecrire trace immuable
Audit-->>-API: audit_trace_ref
API->>+JWS: Signer recu probatoire
JWS-->>-API: proof_receipt
API-->>-C: 201 Created<br/>act_type=PROBATIVE_DEPOSIT<br/>legal_existence_status=ESTABLISHED
Note over C: Double condition satisfaite (INV-60-10) 6. Cas d'erreur¶
| ID | Condition | Réponse attendue | Effet sur l'état |
|---|---|---|---|
| ERR-60-01 | Absence d'authentification ou authentification invalide | Refus explicite | Aucun acte probatoire créé |
| ERR-60-02 | Acteur authentifié non autorisé | Refus explicite | Aucun acte probatoire créé |
| ERR-60-03 | Requête incomplète | Refus explicite | Aucun acte probatoire créé |
| ERR-60-04 | Empreinte invalide/incohérente | Refus explicite | Aucun acte probatoire créé |
| ERR-60-05 | client_request_id déjà utilisé avec document différent | Refus de conflit | Aucun nouvel acte créé |
| ERR-60-06 | Échec technique avant confirmation | Erreur technique explicite | Aucun acte probatoire créé |
| ERR-60-07 | Absence d'acceptation explicite de la notice minimale | Refus explicite | Aucun acte probatoire créé |
| ERR-60-08 | Rejeu après succès initial avec mêmes données | Réponse de succès cohérente avec l'acte initial | Aucun acte supplémentaire |
| ERR-60-09 | Demande de preuve sur un NON_PROBATIVE_STAGING | Refus explicite | L'état reste non probatoire |
| ERR-60-10 | Référence d'audit incohérente avec le reçu probatoire | Vérification tiers échoue | Acte contesté comme incohérent |
| ERR-60-11 | Hash serveur du contenu opaque ≠ document_fingerprint fourni | Refus explicite | Aucun acte probatoire créé |
| ERR-60-12 | Rejeu d'un client_request_id associé à un NON_PROBATIVE_STAGING avec document_fingerprint différent de l'original | Refus de conflit | Le staging existant reste inchangé (résolution R-06) |
7. Critères d'acceptation (testables)¶
| ID | Critère | Observable |
|---|---|---|
| CA-60-01 | Un acteur non authentifié ne peut pas déposer. | Refus explicite; absence d'acte probatoire. |
| CA-60-02 | Un acteur authentifié non autorisé ne peut pas déposer. | Refus explicite; absence d'acte probatoire. |
| CA-60-03 | Un dépôt probatoire valide crée un acte unique daté UTC. | deposit_id unique + existence_timestamp_utc présents. |
| CA-60-04 | Le reçu probatoire contient les champs contractuels obligatoires. | Présence de proof_receipt, audit_trace_ref, depositor_identity_ref, responsibility_scope_ref, document_fingerprint. |
| CA-60-05 | La confirmation probatoire est atomique. | Succès complet ou refus complet; aucun état probatoire partiel. |
| CA-60-06 | Le rejeu même intention ne crée pas de doublon. | Même deposit_id; compteur d'actes inchangé. |
| CA-60-07 | client_request_id réutilisé avec document différent est refusé. | Conflit explicite; aucun nouvel acte. |
| CA-60-08 | Le contenu intelligible n'apparaît pas dans réponses/logs/traces applicatives. | Absence de marqueur en sortie/logs/traces. |
| CA-60-09 | Toute tentative (succès/refus/staging) est auditée. | Trace d'audit corrélée à client_request_id. |
| CA-60-10 | La preuve hors plateforme réussit avec cohérence reçu ↔ audit. | Vérification tiers réussie sans API applicative. |
| CA-60-11 | Un document altéré après dépôt est détecté. | Vérification tiers échoue avec le même reçu. |
| CA-60-12 | Le dépôt est lié à un compte déposant ProbatioVault et à un périmètre de responsabilité. | depositor_identity_ref + responsibility_scope_ref présents et cohérents reçu/audit. |
| CA-60-13 | Le dépôt sans probative_notice_ack=true est refusé. | Refus explicite; aucun acte probatoire. |
| CA-60-14 | L'existence juridique n'est établie qu'après double condition (audit immuable + reçu émis). | legal_existence_status=ESTABLISHED uniquement si les deux preuves existent. |
| CA-60-15 | En contexte dégradé, le statut non probatoire est explicite et sans effet probatoire. | act_type=NON_PROBATIVE_STAGING, sans deposit_id ni reçu. |
| CA-60-16 | La notice minimale obligatoire est celle définie contractuellement. | Valeur exacte de notice acceptée : "Vous réalisez un acte probatoire daté.". |
| CA-60-17 | La répartition des responsabilités est explicitement portée par l'acte/reçu. | Déclaration contractuelle des responsabilités présente et cohérente. |
| CA-60-18 | Un reçu avec référence d'audit incohérente est invalidé en vérification tiers. | Échec de vérification tiers sur incohérence reçu/audit. |
| CA-60-19 | Le système vérifie côté serveur la cohérence empreinte ↔ contenu opaque. | Refus si hash recalculé ≠ document_fingerprint fourni. |
| CA-60-20 | Le reçu probatoire est un JWS vérifiable avec la clé publique ProbatioVault. | Signature JWS valide, payload contient tous les champs contractuels. |
| CA-60-21 | En cas de dérive NTP > 1s, le système refuse la confirmation probatoire. | Contexte dégradé ou refus explicite. |
8. Scénarios de test (Given / When / Then)¶
ST-60-01 — Dépôt nominal¶
- Given un acteur authentifié et autorisé avec requête complète et
probative_notice_ack=true - When il appelle
POST /documents/upload - Then le système retourne un succès probatoire avec
deposit_id,existence_timestamp_utc,proof_receipt,audit_trace_ref
ST-60-02 — Rejet non authentifié¶
- Given une requête sans authentification valide
- When l'appel est soumis
- Then le système refuse et ne crée aucun acte probatoire
ST-60-03 — Rejet non autorisé¶
- Given un acteur authentifié sans droit de dépôt
- When l'appel est soumis
- Then le système refuse et ne crée aucun acte probatoire
ST-60-04 — Atomicité confirmation probatoire¶
- Given une erreur simulée avant confirmation
- When une confirmation probatoire est tentée
- Then l'opération échoue explicitement sans état probatoire partiel
ST-60-05 — Rejeu idempotent¶
- Given un dépôt probatoire déjà accepté
- When la requête identique est rejouée
- Then le système renvoie le même
deposit_id
ST-60-06 — Conflit de rejeu¶
- Given un
client_request_idexistant sur document A - When il est rejoué avec document B
- Then le système refuse avec conflit
ST-60-07 — Confidentialité de contenu¶
- Given un document contenant un marqueur connu
- When le dépôt est traité
- Then le marqueur n'apparaît ni en réponse ni en logs/traces applicatives
ST-60-08 — Vérification tiers renforcée réussie¶
- Given document original, reçu probatoire, référence d'audit cohérente
- When un tiers vérifie hors plateforme
- Then la preuve est valide
ST-60-09 — Altération détectée¶
- Given document modifié après dépôt et reçu initial
- When un tiers vérifie
- Then la vérification échoue
ST-60-10 — Lien compte déposant / responsabilité¶
- Given un dépôt probatoire accepté
- When reçu et audit sont examinés
- Then
depositor_identity_refetresponsibility_scope_refsont présents et cohérents
ST-60-11 — Refus sans notice acceptée¶
- Given une requête sans
probative_notice_ack=true - When l'appel est soumis
- Then le système refuse et ne crée aucun acte probatoire
ST-60-12 — Double condition d'existence juridique¶
- Given une tentative de dépôt
- When seule une des deux conditions (audit immuable / reçu) est présente
- Then
legal_existence_statusn'est pasESTABLISHED
ST-60-13 — Pré-enregistrement non probatoire¶
- Given un contexte dégradé empêchant la confirmation
- When la requête est soumise
- Then le système retourne
NON_PROBATIVE_STAGINGsans reçu probatoire
ST-60-14 — Confirmation après staging¶
- Given un
NON_PROBATIVE_STAGINGexistant - When les conditions nominales sont rétablies et la requête est rejouée
- Then un acte probatoire unique est créé
ST-60-15 — Incohérence reçu / audit¶
- Given un reçu probatoire et une référence d'audit incohérente
- When un tiers réalise la vérification
- Then la vérification échoue
9. Hypothèses explicites¶
| ID | Hypothèse | Impact si faux |
|---|---|---|
| H-60-01 | Un service d'identité fournit un identifiant stable de compte déposant et un périmètre de responsabilité. | INV-60-01, INV-60-07 et INV-60-13 deviennent non vérifiables. |
| H-60-02 | Le client fournit une empreinte SHA-256 hex lowercase du contenu opaque. Le système vérifie la cohérence (INV-60-15). | Si l'empreinte est absente ou mal formatée → ERR-60-04. Si incohérente → ERR-60-11. |
| H-60-03 | Une source d'horodatage UTC synchronisée NTP est disponible avec dérive ≤ 1s. | Si dérive > 1s → contexte dégradé (INV-60-11) ou refus. INV-60-03 et INV-60-10 deviennent non fiables si non détecté. |
| H-60-04 | Le déposant conserve document original et reçu s'il souhaite prouver hors plateforme. | CA-60-10/11 deviennent inopérants pour le déposant concerné. |
| H-60-05 | La journalisation d'audit est immuable et consultable pour vérification de cohérence. | CA-60-14 et CA-60-18 deviennent non vérifiables. |
10. Points à clarifier¶
Aucun point bloquant restant pour PD-60 à ce stade.
Décisions contractuelles actées : - PC-60-01 : existence juridique par double condition (audit immuable + reçu émis). - PC-60-02 : obligation irréversible limitée à la reconnaissance de l'acte (existence/date). - PC-60-03 : responsabilité partagée (déposant / organisation / ProbatioVault). - PC-60-04 : notice minimale obligatoire = "Vous réalisez un acte probatoire daté.". - PC-60-05 : contexte dégradé avec état intermédiaire explicitement non probatoire. - PC-60-06 : vérification tiers renforcée incluant cohérence reçu ↔ référence d'audit. - PC-60-07 : empreinte documentaire = SHA-256 hex lowercase, vérifiée côté serveur (résolution R-01/R-12). - PC-60-08 : reçu probatoire = JWS signé (RS256 ou ES256), vérifiable avec clé publique ProbatioVault (résolution R-03). - PC-60-09 : contexte dégradé = contenu reçu et validé mais double condition non satisfaisable (résolution R-02). - PC-60-10 : tolérance horodatage NTP ≤ 1s, sinon contexte dégradé (résolution R-11). - PC-60-11 : testabilité double condition via injection de faute contrôlée (résolution R-09). - PC-60-12 : INV-60-13/14 testables sur présence syntaxique uniquement ; qualification juridique hors périmètre (résolution R-07/R-08). - PC-60-13 : non-altérabilité audit = append-only applicatif ; résistance admin-level hors périmètre US (résolution R-04). - PC-60-14 : présentation effective de la notice = responsabilité client appelant (résolution R-05). - PC-60-15 : rejeu staging avec document modifié = conflit ERR-60-12 (résolution R-06). - PC-60-16 : zero-knowledge = responsabilité client ; le système traite le contenu comme opaque (résolution R-13). - PC-60-17 : rate-limiting hors périmètre US, relève de l'infrastructure (résolution R-14).
Références¶
- Epic : API Documents & preuves probatoires (PD-192)
- JIRA : PD-60
- Repos concernés :
ProbatioVault-backend,ProbatioVault-infra, clients API (web/mobile/desktop/partenaires) - Documents associés :
PD-60-besoin.md, ADR de l'API Documents, référentiels RGPD / NF Z42-013 / ISO 14641