Aller au contenu

PD-278 — Revue d'acceptabilite (post-correction)

1. References

  • Specification : PD-278-specification.md
  • Tests contractuels : PD-278-tests.md
  • Acceptabilite existante : PD-278-acceptability.md
  • Date de revue : 2026-03-01
  • Reviewer : Auditeur technique independant (OpenCode)

2. Suivi des ecarts (append-only)

[2026-03-01] — Suivi E-01

  • Statut precedent : OUVERT
  • Statut actuel : PARTIELLEMENT RESOLU
  • Justification factuelle :
  • Les mecanismes WORM sont presents en DDL (trg_motif_communication_worm, trg_dissemination_attestations_worm).
  • Les tests unitaires contractuels associes passent, mais ne valident pas l'execution reelle des triggers PostgreSQL.
  • Preuve de verification :
  • Fichier : src/database/migrations/1741500000000-PD278-AddDipState.ts.
  • Test execute (PASS) : TC-INV-06, TC-NR-01 via src/modules/documents/services/dissemination.service.spec.ts (run Jest PD-278 du 2026-03-01).

[2026-03-01] — Suivi E-02

  • Statut precedent : OUVERT
  • Statut actuel : PARTIELLEMENT RESOLU
  • Justification factuelle :
  • Injection RLS SET LOCAL app.current_user_id = $1 presente dans le service DIP.
  • Les tests unitaires couvrent le chemin RLS contractuel, mais sans politiques RLS PostgreSQL actives en base reelle.
  • Preuve de verification :
  • Fichier : src/modules/documents/services/dissemination.service.ts.
  • Test execute (PASS) : TC-ERR-05, TC-INV-07 via src/modules/documents/filters/dissemination-audit-exception.filter.spec.ts et src/modules/documents/services/dissemination.service.spec.ts.

[2026-03-01] — Suivi E-03

  • Statut precedent : OUVERT
  • Statut actuel : NON RESOLU
  • Justification factuelle :
  • Aucun run de verification contractuelle de scan DB/absence de secrets en clair n'a ete produit pour TC-INV-10 et TC-NEG-05.
  • signature_ref reste en stub (valeur null) dans le flux d'attestation.
  • Preuve de verification :
  • Fichier : src/modules/documents/services/dissemination.service.ts.
  • Tests contractuels concernes : TC-INV-10 et TC-NEG-05 non executes (pas de preuve PASS fournie).

[2026-03-01] — Suivi E-04

  • Statut precedent : OUVERT
  • Statut actuel : PARTIELLEMENT RESOLU
  • Justification factuelle :
  • Le mecanisme de verrouillage SELECT ... FOR UPDATE est present et teste en unitaires.
  • Aucune preuve de tests concurrents reels (parallel requests sur PostgreSQL) n'a ete produite pour finaliser TC-INV-12.
  • Preuve de verification :
  • Fichier : src/modules/documents/services/dissemination.service.ts.
  • Test execute (PASS) : TC-INV-12 via src/modules/documents/services/dissemination.service.spec.ts (validation mecanisme, non concurrence reelle).

[2026-03-01] — Suivi E-05

  • Statut precedent : OUVERT
  • Statut actuel : NON RESOLU
  • Justification factuelle :
  • Aucune execution TLC (TC-FML-01) n'a ete fournie pendant la revue post-correction.
  • Le critere CA-10 ne peut pas etre clos sans preuve formelle executee.
  • Preuve de verification :
  • Reference contractuelle : PD-278-tests.md (TC-FML-01 attendu).
  • Tests executes : suites Jest PD-278 uniquement (99/99 PASS), sans preuve TLC PASS.

[2026-03-01] — Suivi E-06

  • Statut precedent : RESOLU
  • Statut actuel : RESOLU
  • Justification factuelle :
  • Presence explicite de tests verifies pour l'absence de transition implicite DIP -> SEALED (pas de scheduler/cron/timeout automatique).
  • Le service ne contient pas de mecanisme de retour automatique sur ce flux.
  • Preuve de verification :
  • Fichier : src/modules/documents/services/dissemination.service.spec.ts.
  • Test execute (PASS) : TC-NOM-04, TC-INV-03.

[2026-03-01] — Suivi E-07

  • Statut precedent : OUVERT
  • Statut actuel : NON RESOLU
  • Justification factuelle :
  • Aucun test de performance contractuel TC-NOM-05 (P95 + hard timeout) n'a ete execute/fourni dans la revue post-correction.
  • Preuve de verification :
  • Reference contractuelle : PD-278-tests.md (TC-NOM-05 attendu).
  • Tests executes : suites Jest PD-278 (99/99 PASS) sans preuve TC-NOM-05 PASS.

[2026-03-01] — Suivi E-08

  • Statut precedent : OUVERT
  • Statut actuel : NON RESOLU
  • Justification factuelle :
  • Aucun test unitaire dedie a dissemination.config.ts n'a ete ajoute dans la revue post-correction.
  • Preuve de verification :
  • Fichier : src/modules/documents/config/dissemination.config.ts.
  • Recherche tests : aucun *dissemination*config*.spec.ts trouve dans src/modules/documents.

[2026-03-01] — Suivi E-09

  • Statut precedent : OUVERT
  • Statut actuel : NON RESOLU
  • Justification factuelle :
  • Les artefacts PD-278-review-code.md, PD-278-review-tests.md, PD-278-review-security.md sont des prompts/grilles, pas des verdicts de revue executes.
  • Aucune preuve d'execution effective de la revue ChatGPT (avec verdict et ecarts) n'a ete fournie.
  • Preuve de verification :
  • Fichiers : docs/epics/legal-compliance/PD-278-nfz42013-dip-state/PD-278-review-code.md, docs/epics/legal-compliance/PD-278-nfz42013-dip-state/PD-278-review-tests.md, docs/epics/legal-compliance/PD-278-nfz42013-dip-state/PD-278-review-security.md.

[2026-03-01] — Suivi E-10

  • Statut precedent : OUVERT
  • Statut actuel : NON RESOLU
  • Justification factuelle :
  • Le filter ouvre/commit une transaction QueryRunner, mais l'ecriture est deleguee a auditLogService.logAsync() sans injection du QueryRunner dans cette persistance.
  • logAsync() peut retourner queued: true (fallback file BullMQ), ce qui ne prouve pas une persistance synchrone stricte en base avant la reponse HTTP.
  • Preuve de verification :
  • Fichier : src/modules/documents/filters/dissemination-audit-exception.filter.ts.
  • Fichier : src/modules/audit/services/audit-log.service.ts.
  • Test execute (PASS mais non conclusif sur synchronicite DB reelle) : TC-ERR-03, TC-ERR-04, TC-ERR-05, TC-ERR-13, TC-ERR-14 via src/modules/documents/filters/dissemination-audit-exception.filter.spec.ts.

3. Verdict d'acceptabilite (courant)

Verdict actuel : ⚠️ ACCEPTE AVEC RESERVES Date : 2026-03-01 Motif synthetique : Les ecarts majeurs E-09 et E-10 restent non resolus et plusieurs preuves contractuelles obligatoires demeurent absentes (TC-FML-01, TC-NOM-05, TC-INV-10/TC-NEG-05). Les tests PD-278 executes (99/99 PASS) confirment la conformite unitaire mais pas la levee complete des reserves.

4. Historique des verdicts

Date Verdict Version / commit Commentaire
2026-03-01 ⚠️ ACCEPTE AVEC RESERVES 0b1feb6 (HEAD), base fonctionnelle 410ed7d Verdict courant maintenu apres revue post-correction : reserves majeures non levees.