PD-241 — 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-241 — Déconnexion utilisateur (logout)
- Nombre de tâches : 4
- Agents mobilisés : agent-developer (claude), agent-qa-unit-integration (claude)
Tâche 1 : agent-developer — DTOs et Erreurs¶
- Agent : agent-developer
- LLM : claude
- Code contracts : auth-dto, auth-errors
- Périmètre fichiers :
src/modules/auth/dto/logout.dto.ts(nouveau)src/modules/auth/errors/logout.errors.ts(nouveau)- Livrable attendu :
LogoutDtoavecrefresh_token?: stringet validation class-validatorLogoutFailedErrorhéritant de HttpException (502, ERR-241-LOGOUT-FAILED)LogoutInternalErrorhéritant de HttpException (500, ERR-241-INTERNAL)- Dépendances : aucune
Tâche 2 : agent-developer — KeycloakAdminService logout¶
- Agent : agent-developer
- LLM : claude
- Code contract : keycloak-admin-logout
- Périmètre fichiers :
src/modules/auth/mfa/services/keycloak-admin.service.ts(modification)- Livrable attendu :
- Méthode
invalidateSession(keycloakUserId: string): Promise<void> - Méthode
revokeRefreshToken(keycloakUserId: string, refreshToken: string): Promise<void> - Réutilisation du circuit breaker et retry existants
- Dépendances : Tâche 1 (erreurs)
Tâche 3 : agent-developer — AuthService et AuthController logout¶
- Agent : agent-developer
- LLM : claude
- Code contracts : auth-service, auth-controller
- Périmètre fichiers :
src/modules/auth/auth.service.ts(modification)src/modules/auth/auth.controller.ts(modification)- Livrable attendu :
AuthService.logout(userId: string, refreshToken?: string): Promise<void>- Endpoint
POST /auth/logoutavec JwtAuthGuard, @HttpCode(200), LogoutDto - Gestion atomique INV-241-03 (échec revokeRefreshToken = échec logout)
- Dépendances : Tâche 1 (dto, erreurs), Tâche 2 (keycloak-admin)
Tâche 4 : agent-qa-unit-integration — Tests unitaires et E2E¶
- Agent : agent-qa-unit-integration
- LLM : claude
- Code contracts : auth-tests-unit, auth-tests-e2e
- Périmètre fichiers :
src/modules/auth/auth.controller.spec.ts(modification)src/modules/auth/auth.service.spec.ts(modification)src/modules/auth/mfa/services/__tests__/keycloak-admin.service.spec.ts(modification)test/auth/logout.e2e-spec.ts(nouveau)- Livrable attendu :
- Tests unitaires couvrant TC-NOM-01, TC-NOM-02, TC-ERR-01, TC-ERR-02, TC-ERR-03
- Tests E2E validant le flux complet avec Keycloak de test
- Mocks pour KeycloakAdminService dans les tests unitaires
- Dépendances : Tâches 1, 2, 3 (tout le code)
Ordre d'exécution¶
Tâche 1 (DTOs + Erreurs) ──┐
├──> Tâche 3 (Service + Controller) ──> Tâche 4 (Tests)
Tâche 2 (KeycloakAdmin) ──┘
Parallélisation possible : - Tâches 1 et 2 peuvent être exécutées en parallèle - Tâche 3 attend Tâches 1 et 2 - Tâche 4 attend Tâche 3
Notes de l'orchestrateur¶
- Risque INV-241-03 : L'atomicité de la révocation du refresh token est critique. Si
revokeRefreshTokenéchoue, le logout DOIT échouer. - Risque tests E2E : Nécessite un Keycloak de test configuré avec des utilisateurs de test.
- Point d'attention : Le HttpExceptionFilter existant doit mapper
UnauthorizedExceptionversERR-241-UNAUTHENTICATED. Vérifier le comportement actuel. - Simplification : Tâches 1+2 et Tâche 3 sont fusionnées en exécution séquentielle pour un agent developer unique.
Généré par Claude Orchestrateur — 2026-02-07