Aller au contenu

PD-72 — Décomposition (Étape 6)

Mode d'exécution

Mode : sequential (Claude -p a produit l'ensemble du module en une passe unique).

Module créé

src/modules/document-transfer/ — 29 fichiers (20 source + 8 tests + 1 fixtures)

Architecture

src/modules/document-transfer/
├── document-transfer.module.ts
├── constants/
│   └── transfer.constants.ts
├── dto/
│   └── transfer-job.dto.ts
├── entities/
│   └── document-transfer.entity.ts
├── enums/
│   ├── transfer-error-code.enum.ts
│   ├── transfer-policy.enum.ts
│   └── transfer-status.enum.ts
├── interfaces/
│   ├── transfer-events.interface.ts
│   └── transfer-job.interface.ts
├── listeners/
│   └── anchor-confirmation.listener.ts
├── migrations/
│   └── 1709740800000-create-document-transfer.ts
├── processors/
│   └── pre-transfer.processor.ts
├── services/
│   ├── document-transfer.service.ts
│   ├── transfer-notification.service.ts
│   ├── transfer-orchestrator.service.ts
│   ├── transfer-preconditions.service.ts
│   ├── transfer-proof.service.ts
│   ├── transfer-revocation.service.ts
│   └── transfer-state-machine.service.ts
├── types/
│   └── branded-ids.ts
└── __tests__/
    ├── fixtures/
    │   └── transfer-fixtures.ts
    ├── pre-transfer.integration.spec.ts
    ├── pre-transfer.processor.spec.ts
    ├── transfer-notification.spec.ts
    ├── transfer-orchestrator.spec.ts
    ├── transfer-preconditions.spec.ts
    ├── transfer-proof.spec.ts
    ├── transfer-revocation.spec.ts
    └── transfer-state-machine.spec.ts

Composants et code-contracts

Composant Contract Fichiers
Entity DocumentTransfer CC-72-01 entity, enums, types, dto
State Machine CC-72-02 transfer-state-machine.service.ts
Orchestrateur CC-72-03 transfer-orchestrator.service.ts
Préconditions CC-72-04 transfer-preconditions.service.ts
Proof (événement + acte) CC-72-05 transfer-proof.service.ts
Révocation CC-72-06 transfer-revocation.service.ts
Notification CC-72-07 transfer-notification.service.ts
Processor BullMQ CC-72-08 pre-transfer.processor.ts
Listener ancrage CC-72-09 anchor-confirmation.listener.ts
Module NestJS CC-72-10 document-transfer.module.ts

Tests

  • 123 tests dans 8 suites
  • 7 suites vertes (rapport Claude -p)
  • Matrice complète TC-* → fichiers de test

Stubs tracés

Stub Story destination Description
PreEngineService PD-41 PRE re-encryption (Umbral)
HsmService.sign() PD-37 Signature HSM PKCS#11
TsaService.timestamp() PD-39 Horodatage RFC 3161
MerkleService.include() PD-54 Inclusion Merkle batch
AnchoringService.schedule() PD-55 Ancrage blockchain
AuditService.logEvent() PD-31 Journal append-only WORM
NotificationService.push() PD-105 Push notification
ProofBundleService.generate() PD-245 Bundle preuve composite

Learnings appliqués

  • crypto.randomUUID() pour tous les IDs (PD-63)
  • crypto.verify(null, hash, key, sig) pour vérification HSM (PD-282)
  • Branded types pour DocumentTransferId, VaultId, ProofId
  • Centralisation constantes dans constants.ts (PD-243)