PD-238 — Manifest de décomposition¶
Ce document est produit par l'orchestrateur Claude à l'étape 6a. Il découpe le plan d'implémentation en tâches assignées à des agents spécialisés.
Résumé¶
- Story : PD-238
- Nombre de tâches : 6
- Agents mobilisés : agent-developer (x4), agent-qa-unit-integration (x1), agent-adversarial (x1)
Tâche 1 : agent-developer — Infrastructure Keycloak¶
- Agent : agent-developer
- LLM : claude
- Code contract : KeycloakAdminService, KeycloakAdminConfig
- Périmètre fichiers :
src/modules/auth/mfa/config/keycloak-admin.config.tssrc/modules/auth/mfa/services/keycloak-admin.service.ts- Livrable attendu :
- Configuration Keycloak Admin API
- Service avec circuit breaker/retry
- Méthodes : getAccessToken, getMfaStatus, initTotp, verifyAndActivateTotp, disableMfa, regenerateRecoveryCodes
- Dépendances : aucune
Tâche 2 : agent-developer — Reauth Module¶
- Agent : agent-developer
- LLM : claude
- Code contract : ReauthService, ReauthController, ReauthTokenGuard, DTOs reauth
- Périmètre fichiers :
src/modules/auth/services/reauth.service.tssrc/modules/auth/controllers/reauth.controller.tssrc/modules/auth/mfa/guards/reauth-token.guard.tssrc/modules/auth/dto/reauth.dto.ts- Livrable attendu :
- Service génération reauth token JWT (sub, purpose=reauth, exp=5min)
- Controller POST /auth/reauth avec OidcJwtAuthGuard
- Guard validation X-Reauth-Token header
- DTOs ReauthRequestDto, ReauthResponseDto
- Dépendances : aucune
Tâche 3 : agent-developer — Core MFA (Errors, Filter, DTOs)¶
- Agent : agent-developer
- LLM : claude
- Code contract : errors, MfaExceptionFilter, tous les DTOs MFA
- Périmètre fichiers :
src/modules/auth/mfa/errors/mfa-management.errors.tssrc/modules/auth/mfa/filters/mfa-exception.filter.tssrc/modules/auth/mfa/dto/mfa-status.dto.tssrc/modules/auth/mfa/dto/totp-init.dto.tssrc/modules/auth/mfa/dto/totp-verify.dto.tssrc/modules/auth/mfa/dto/mfa-disable.dto.tssrc/modules/auth/mfa/dto/recovery-regenerate.dto.ts- Livrable attendu :
- Classes d'erreurs ERR-238-* avec codes HTTP
- Exception filter pour normaliser réponses
- DTOs avec decorators class-validator et ApiProperty
- Dépendances : aucune
Tâche 4 : agent-developer — MFA Management Service & Controller¶
- Agent : agent-developer
- LLM : claude
- Code contract : MfaManagementService, MfaManagementController
- Périmètre fichiers :
src/modules/auth/mfa/services/mfa-management.service.tssrc/modules/auth/mfa/controllers/mfa-management.controller.tssrc/modules/auth/guards/mfa-rate-limit.guard.tssrc/modules/auth/mfa/mfa.module.ts(update)src/modules/auth/auth.module.ts(update)- Livrable attendu :
- Service orchestration MFA (getStatus, initTotp, verifyTotp, disable, regenerateRecoveryCodes)
- Controller 5 endpoints /user/mfa/*
- Guard rate limiting MFA
- Mise à jour modules
- Dépendances : Tâche 1, Tâche 2, Tâche 3
Tâche 5 : agent-qa-unit-integration — Tests¶
- Agent : agent-qa-unit-integration
- LLM : claude
- Code contract : test_mapping dans code-contracts.yaml
- Périmètre fichiers :
src/modules/auth/mfa/services/__tests__/keycloak-admin.service.spec.tssrc/modules/auth/mfa/services/__tests__/mfa-management.service.spec.tssrc/modules/auth/services/__tests__/reauth.service.spec.tstest/mfa-management.e2e-spec.ts- Livrable attendu :
- Tests unitaires services (mock Keycloak)
- Tests e2e couvrant TC-NOM-01 à TC-NOM-06, TC-ERR-01 à TC-ERR-14
- Coverage > 80%
- Dépendances : Tâche 4
Tâche 6 : agent-adversarial — Revue sécurité¶
- Agent : agent-adversarial
- LLM : claude
- Code contract : invariants INV-238-09, INV-238-10, INV-238-02
- Périmètre fichiers : tous les fichiers produits
- Livrable attendu :
- Vérification INV-238-09 (secrets jamais loggés)
- Vérification INV-238-10 (pas de stockage secrets local)
- Vérification INV-238-02 (pas d'accès croisé possible)
- Rapport avec recommandations
- Dépendances : Tâche 4
Ordre d'exécution¶
Phase 1 (parallèle) :
├── Tâche 1 : Infrastructure Keycloak
├── Tâche 2 : Reauth Module
└── Tâche 3 : Core MFA (Errors, Filter, DTOs)
Phase 2 (séquentielle) :
└── Tâche 4 : MFA Management Service & Controller
Phase 3 (parallèle) :
├── Tâche 5 : Tests
└── Tâche 6 : Revue sécurité
Notes de l'orchestrateur¶
-
Tâches 1-3 parallélisables : Ces tâches n'ont pas de dépendances entre elles et peuvent être exécutées simultanément.
-
Tâche 4 critique : C'est le cœur de l'implémentation qui intègre tous les composants des tâches 1-3.
-
Points d'attention sécurité :
- KeycloakAdminService : vérifier que les secrets ne sont jamais loggés
- MfaManagementService : vérifier le mapping sub → keycloakUserId
-
Tous les endpoints : vérifier rate limiting
-
Gestion sessionId : Le cache Redis pour sessionId TOTP doit être implémenté dans MfaManagementService (pas dans KeycloakAdminService).
-
Intégration existante : Réutiliser OidcJwtAuthGuard et RateLimitService existants.