Aller au contenu

PD-278 — Agent Developer : dip-audit-types

Module

dip-audit-types (C6)

Fichier modifie

src/modules/audit/types/audit-action.types.ts (lignes 95-98)

Modifications

Ajout de 3 nouveaux AuditActionType dans l'enum existante, apres le bloc PD-279 :

Enum key Valeur string Usage spec
DOCUMENT_DISSEMINATED document.disseminated Audit transition SEALED -> DIP reussie (INV-278-04)
DOCUMENT_RETURNED document.returned Audit transition DIP -> SEALED reussie (INV-278-04)
DOCUMENT_DISSEMINATION_DENIED document.dissemination_denied Audit refus securite 401/403/429/409-RETENTION-DUE (INV-278-04)

Invariants respectes

  • INV-278-04 (auditability) : Les 3 types couvrent les cas succes (DISSEMINATED, RETURNED) et refus securite (DISSEMINATION_DENIED).
  • Non-regression : Aucun type existant modifie ou supprime. Les types PD-279, PD-84, PD-17, PD-37 etc. sont intacts.

Forbidden respectes

  • Aucun AuditActionType existant modifie ou supprime.

Convention de nommage

Les valeurs string suivent le pattern domain.action existant (ex: document.upload, document.restitute). Les noms de cle enum suivent le pattern DOCUMENT_* majuscules avec underscore.

Verification

  • TypeScript : npx tsc --noEmit — 0 erreur.
  • Aucun fichier hors perimetre modifie.

Matrice de couverture

Test ID Fichier
TC-INV-04 Consommateurs : C9 (DisseminationService), C11 (DisseminationAuditExceptionFilter)

Hypotheses

Aucune hypothese supplementaire. Le module est purement declaratif (extension enum).

Decisions architecturales

  • decision : Valeurs string en document.* (pas dissemination.*)
  • rationale : Coherence avec le domaine existant (document.restitute, document.seal, etc.). Le prefixe document. identifie le domaine metier, l'action identifie l'evenement.
  • alternatives_considered : dissemination.created / dissemination.returned / dissemination.denied
  • trade_offs : document.* = coherence codebase mais prefixe plus long ; dissemination.* = plus specifique mais rompt la convention.