Aller au contenu

PD-19 — Dossier de conformité (Gate 3 v2 — CONFORMITY_CHECK)

Ce dossier est assemblé automatiquement avant chaque gate PMO. Il constitue la base factuelle sur laquelle le verdict est rendu. Itération v2 — après correction des écarts v1.

Type de gate : CONFORMITY_CHECK

1. Documents de référence

Document Étape Version Statut
PD-19-besoin.md 0 v1 Présent
PD-19-specification.md 1 v2 (corrigée) Présent
PD-19-tests.md 2 v1 (NON MIS À JOUR) Présent — décalé
PD-19-specification-review.md 3 (Phase 1) v2 Présent
PD-19-confrontation-step3.md 3 (Phase 2) v2 Présent

2. Hypothèses déclarées

  • H-01 : Les environnements disposent chacun d'une source de configuration externe fiable.
  • H-02 : Les clients légitimes Web disposent d'origines stables et identifiables.
  • H-03 : Les applications mobiles natives n'exigent pas d'exception CORS spécifique hors usages WebView documentés.
  • H-04 : Les seuils de limitation peuvent être définis par l'équipe produit/sécurité.
  • H-05 : Un mécanisme de journalisation des décisions de sécurité est disponible.
  • H-06 : Les intégrations B2B peuvent être représentées par des règles d'origine ou canal HTTP explicitement défini.
  • H-07 : Les obligations eIDAS de valeur probatoire sont hors périmètre de cette story.

3. Preuves de conformité

3.1 Invariants ↔ Tests

Invariant Test(s) couvrant Couvert ? Commentaire v2
INV-01 : Socle security headers TC-NOM-05 Couvert Socle contractualisé (5 headers + HSTS + Cache-Control conditionnel). Ambiguïté résiduelle mineure.
INV-02 : Non-divulgation infrastructure TC-NOM-06, TC-ERR-06 Couvert
INV-03 : CORS fondée sur politique d'origines TC-NOM-01 Couvert Paramètres contractualisés : 6 méthodes, 6 headers autorisés, 2 exposés, credentials=true.
INV-04 : Refus CORS origine non autorisée TC-NOM-02, TC-ERR-02 Couvert Origines contractualisées par env (prod 2, test 2, dev 2).
INV-05 : Preflights déterministes TC-NOM-03, TC-NOM-04, TC-ERR-03 Couvert Max-Age contractualisé (600/300/60).
INV-06 : Limitation sur tous les endpoints TC-NOM-07 Couvert Seuils contractualisés : 100 req/60s/IP. Réserve : chaîne de proxy non définie.
INV-07 : Réponse 429 explicite TC-NOM-08, TC-ERR-04 Couvert Signal contractualisé : 429 + Retry-After + JSON.
INV-08 : Indépendance métier TC-NOM-12 Couvert
INV-09 : Politique auditable TC-NOM-10 Couvert Exigences contractualisées : JSON, UTC ISO-8601, corrélation, 90j. Réserve RGPD.
INV-10 : Mode dev borné TC-NOM-09, TC-NOM-11 Couvert Bornes contractualisées : localhost:3000 et :8080. Headers maintenus.
INV-11 : Headers en erreur TC-NOM-05, TC-ERR-06 Couvert
INV-12 : Frontière HTTP TC-INV-12 Couvert Test d'audit de dossier — force probante acceptable.

3.2 Critères d'acceptation ↔ Tests

Critère Test(s) couvrant Vérifié ? Commentaire v2
CA-01 : Headers sur toute réponse TC-NOM-05 Vérifié Observable v2 = « middleware global, tous statuts et routes ».
CA-02 : Non-divulgation techno TC-NOM-06 Vérifié
CA-03 : CORS positive origine autorisée TC-NOM-01 Vérifié
CA-04 : CORS refusée origine non autorisée TC-NOM-02 Vérifié
CA-05 : Preflights positifs déterministes TC-NOM-03 Vérifié
CA-06 : Preflights refusés déterministes TC-NOM-04 Vérifié
CA-07 : Limitation transversale TC-NOM-07 Vérifié Seuils maintenant définis (100/60s).
CA-08 : 429 au-delà du seuil TC-NOM-08 Vérifié Signal documenté (Retry-After + JSON).
CA-09 : Pas de limitation sous seuil TC-NOM-07 Vérifié
CA-10 : Variation par environnement TC-NOM-09 Vérifié
CA-11 : Configuration auditable TC-NOM-10 Vérifié Journaux JSON UTC, rétention 90j.
CA-12 : Mode dev local borné TC-NOM-11 Vérifié Bornes définies.
CA-13 : Indépendance identité/métier TC-NOM-12 Vérifié
CA-14 : Headers en erreur 404/405/500 TC-NOM-05, TC-ERR-06 Vérifié CA-14 couvre explicitement 404/405/500 en v2.

4. Bilan des écarts v2

Écarts résolus (v1 → v2)

Écart v1 Résolution v2
ECT-01 (Socle headers non défini, Critique) INV-01 contractualise 5+2 headers
ECT-02 (CORS non contractualisé, Critique) INV-03/04/05 contractualisent tous les paramètres
ECT-03 (Seuils limitation absents, Critique) INV-06/07 fixent 100/60s/IP + signal 429
ECT-04 (eIDAS non traduit, Critique) §2 Exclu + H-07 excluent explicitement eIDAS
DIV-01 (CA-01 toute vs échantillon) CA-01 observable v2 = middleware global exhaustif
DIV-02 (ERR-05 double comportement) ERR-05 = fail-fast unique
DIV-04 (CA-14 vs ERR-06) CA-14 couvre explicitement 404/405/500
DIV-05 (INV-06 vs point à clarifier) Points à clarifier réduits à 2
ECT-05 (Auditabilité non spécifiée) INV-09 = JSON, UTC, corrélation, 90j
ECT-06 (Mode dev non borné) INV-10 = localhost:3000 et :8080
ECT-07 (Contexte CORS non défini) §3 Définitions : « toute requête avec Origin »

Écarts résiduels v2

ID Nature Gravité Source
DIV-02 Tests §9 non mis à jour (obsolète) Majeur Confrontation
DIV-06 TC-ERR-05 non aligné avec ERR-05 v2 Majeur Confrontation
DIV-07 Chaîne de proxy de confiance non définie Majeur Review + Confrontation
DIV-09 RGPD : IP journalisée sans minimisation Majeur Review + Confrontation
DIV-03 Nomenclature ST-xx vs TC-NOM-xx Mineur Review + Confrontation
DIV-04 INV-01 « constant » vs conditionnel Mineur Review
DIV-05 ERR-03 refus preflight sans observable Mineur Review
DIV-08 Credentials=true en dev HTTP Mineur Review

Zones d'ombre

ZO Sujet Impact
ZO-01 Requêtes sans Origin (hors navigateur) Mineur
ZO-02 Exceptions B2B Point à clarifier §10.1
ZO-03 Alerting vs logging Point à clarifier §10.2

5. Rapport de confrontation

  • Voir : PD-19-confrontation-step3.md v2
  • Synthèse : 8 convergences confirmées, 9 divergences analysées (1 faux positif écarté), 4 zones d'ombre.
  • Faux positif écarté : contradiction ERR-01 (lecture erronée de la review)
  • Recommandation confrontation : rework nécessaire (mise à jour document de tests)

6. Scoring de convergence

Critère Score v1 Score v2 Delta
completeness 6 8 +2
testability 4 7 +3
clarity 5 8 +3
traceability 6 7 +1
Métrique v1 v2
score_mean 5.25 7.50
score_min 4 7
delta +2.25

7. Recommandation pré-verdict

  • GO — conformité vérifiée, aucun point bloquant
  • RESERVE — conformité partielle, conditions à satisfaire
  • NON_CONFORME — écarts bloquants identifiés
  • ESCALADE — décision humaine requise

Justification : La spécification v2 résout les 11 écarts de la v1. Aucun Bloquant résiduel. Les 4 Majeurs restants sont : 2 documentaires (tests non synchronisés), 1 opérationnel (proxy confiance), 1 conformité (RGPD). La moyenne 7.50 avec min 7 satisfait la condition RESERVE (mean >= 7.0 mais au moins un score < 8).

Conditions pour GO : Mettre à jour PD-19-tests.md v2 (§9, TC-ERR-05, nomenclature, verdict QA).


Document produit par le workflow de gouvernance IA — Gate 3 Phase 3 v2 (Dossier de conformité) Date : 2026-02-09