Aller au contenu

PD-238 — Dossier de conformité Gate AMBIGUITY (v1)

1. Informations générales

Champ Valeur
User Story PD-238
Gate AMBIGUITY (Étape 5)
Date 2026-02-06
Version v1
Projet ProbatioVault-backend
Epic EPIC-182

2. Documents audités

Document Version Statut
PD-238-plan.md v1 Audité
PD-238-code-contracts.yaml v1 Audité
PD-238-specification.md v2 Référence

3. Synthèse des reviews

Review ChatGPT

  • Verdict : RESERVE
  • Écarts identifiés : 8

Confrontation Claude

  • Écarts validés : 4/8
  • Écarts partiels : ⅜
  • Écarts rejetés : ⅛
  • Écarts manqués : 2
  • Verdict : RESERVE

4. Écarts confirmés à résoudre

Écarts majeurs (bloquants)

ID Description Impact Action requise
ECT-02 JwtAuthGuard vs OidcJwtAuthGuard incohérent Confusion implémentation Uniformiser vers OidcJwtAuthGuard dans le plan
ECT-03 sessionId manquant pour verifyTotp Flux incomplet Documenter gestion sessionId (cache entre init/verify)
ECT-04 Mapping userId → keycloakUserId non défini Risque accès croisé Spécifier source (claim sub JWT ou UserRepository)
ECT-06 Permissions Keycloak Admin API non documentées Blocage runtime Documenter permissions minimales service account
ECT-M01 Circuit breaker/retry non spécifiés Implémentation incomplète Ajouter specs dans code contracts
ECT-M02 MfaExceptionFilter absent du plan Composant oublié Ajouter dans architecture et phases

Écarts mineurs (non bloquants)

ID Description Impact Action requise
ECT-01 Rate limiting étendu à /auth/reauth Extension non documentée Clarifier dans spec (optionnel)
ECT-05 Rate limit par userId seul Politique acceptable Documenter dans risques (optionnel)
ECT-07 method null quand MFA désactivé Implicite dans spec Clarifier si nécessaire (optionnel)

Écarts rejetés

ID Raison rejet
ECT-08 Faux positif - 400 bien listé dans code contracts

5. Analyse de conformité

Cohérence plan ↔ spec

Élément Statut Commentaire
6 endpoints OK Tous couverts
15 invariants OK Références traçables
10 erreurs OK Mappées correctement
Guards RESERVE Nomenclature à uniformiser

Cohérence plan ↔ code contracts

Élément Statut Commentaire
Services RESERVE sessionId manquant
Controllers RESERVE MfaExceptionFilter manquant
DTOs OK Conformes
Guards RESERVE Nomenclature incohérente
Config RESERVE Permissions Keycloak manquantes

Couverture tests

Catégorie Plan Contracts Tests
TC-NOM-* OK OK OK
TC-ERR-* OK OK OK
TC-INV-* OK OK OK

6. Risques identifiés

Risque Sévérité Mitigation
Mapping identité incorrect Haute Spécifier claim sub
Permissions Keycloak insuffisantes Haute Documenter avant implem
sessionId perdu entre init/verify Moyenne Cache Redis/session
Circuit breaker non implémenté Moyenne Ajouter specs

7. Recommandations PMO

  1. BLOQUER l'implémentation jusqu'à résolution des 6 écarts majeurs
  2. Corriger le plan pour :
  3. Uniformiser OidcJwtAuthGuard
  4. Documenter flux sessionId
  5. Spécifier mapping userId → keycloakUserId
  6. Ajouter MfaExceptionFilter
  7. Documenter permissions Keycloak
  8. Corriger les code contracts pour :
  9. Ajouter specs circuit breaker/retry

8. Verdict proposé

NON_CONFORME — 6 écarts majeurs à résoudre avant implémentation.

Les corrections doivent être apportées à : - PD-238-plan.md - PD-238-code-contracts.yaml

Une fois corrigés, relancer la gate AMBIGUITY (v2).