Sprint Review & Rétrospective - Sprint 06 (Observabilité & Export de données)
Date de clôture : 09/07/2026 Effort planifié : 27 SP (+ refonte des rôles hors périmètre) Statut du Sprint : CLOS (1 résidu reporté au Sprint 07 : validation import par les chefs) Sources : Sprint Backlog 06 · tasks.md · rapport 09/07
🎯 Objectif du Sprint (Sprint Goal)
Doter la plateforme d'une observabilité de production (logger centralisé hiérarchique persistant dans Supabase), livrer un système d'export/sauvegarde de données (CSV + JSON) à portée par rôle, et clôturer les résidus documentaires/tests du Sprint 05 en préparant la validation de l'import par les chefs.
Objectif atteint. Les trois blocs sont livrés ; seule la validation humaine de l'import (US-VAL-01) est reportée au Sprint 07.
📢 Démonstration & Livrables
🔴 Bloc 1 - Logger centralisé (ADR 0009, 14 SP)
- Table
app_logs+ RLS (09_create_logs_table.sql) : INSERT ouvert (anon + authentifié), SELECT réservésuper_manager, UPDATE/DELETE interdits (logs immuables). Créée sur l'instance de test à la clôture. - Cœur du logger front (
src/utils/logger.js) : niveauxTRACE→FATAL,LoggerFactoryavec héritage hiérarchique par namespace, 3 transports (Console couleur, Buffer 500, SupabaseINFO+ par lot),downloadLogs(), hookuseLogger. - Interception
fetch(US-LOG-03) : méthode/URL/durée/statut tracés, anti-boucle sur/rest/v1/app_logs. - Backend Winston/Morgan (
middlewares/logger.middleware.js) branché dansserver.js.
🟣 Hors périmètre initial - Refonte des rôles (admin virtuel)
Menée en parallèle (outil « antigravity »), conservée car base technique de US-EXP-03 : rôle admin virtuel (compte admin@engwe-france.fr, jamais stocké en base), renommage AdminDashboard→ManagerDashboard, import self-service collaborateur. 2 bugs corrigés en preview réelle (prop session manquante sur 2 des 3 routes de SuperManagerDashboard).
🟠 Bloc 2 - Export / Sauvegarde (8 SP)
src/utils/exportTasks.js(fonctions pures) + composantExportButtonscâblé dans les 3 dashboards.- CSV aligné template ADR 0008 (
;, CRLF, BOM UTF-8, échappement) + colonnes de contexte ; aller-retour ré-importable vérifié. - JSON exhaustif (champs + notes + relations résolues), sans aucun secret.
- Portée par rôle (
filterTasksByRole) : admin/super = tout, manager = siennes + créées/à valider, employee = siennes. - Vérifié en preview réelle (Supabase live, compte Administrateur) : CSV/JSON corrects, portée admin = toutes les tâches.
🟡 Bloc 3 - Clôture des résidus (5 SP)
- Doc réalignée (
supabase_schema.sqlréécrit surauth.users,README,product_backlogUS1.1/1.2/5.1) - plus aucune trace de JWT custom / rôleadminfantôme. - e2e réécrit (
e2e/auth.spec.js) sur le flux roster +/api/loginnatif. - Recette import préparée (
recette_demo.md).
📊 Avancement des Stories
| Story | Description | SP | Statut |
|---|---|---|---|
| US-LOG-01 | Table app_logs + RLS |
3 | ✅ Complété |
| US-LOG-02 | Cœur du logger front | 5 | ✅ Complété |
| US-LOG-03 | Interception API + anti-boucle | 3 | ✅ Complété |
| US-LOG-04 | Middleware backend Winston/Morgan | 3 | ✅ Complété |
| US-EXP-01 | Export CSV (format import étendu) | 3 | ✅ Complété |
| US-EXP-02 | Export JSON complet | 2 | ✅ Complété |
| US-EXP-03 | Portée d'export par rôle | 3 | ✅ Complété |
| US-DOC-01 | Réalignement documentaire | 2 | ✅ Complété |
| US-TEST-01 | Réécriture e2e Playwright (auth) | 2 | ✅ Complété |
| US-VAL-01 | Recette & validation import par les chefs | 1 | 🟠 Partiel - démo prête, validation reportée au Sprint 07 |
Vélocité : 26 / 27 SP (+ refonte des rôles hors périmètre absorbée).
✅ Qualité & vérifications
npm run test: 72/72 (44 préexistants + 16 logger + 12 export).npm run test:e2e: 7/7 (roster, PIN, mauvais PIN, connexion des 3 rôles + admin jusqu'au dashboard).npm run build: OK ·eslintsur les fichiers touchés : 0 nouvelle erreur.- Vérification en preview réelle (Supabase live) : export CSV/JSON conforme, portée admin validée.
🔻 Résidu reporté au Sprint 07
- US-VAL-01 / TS6.32 - présentation de l'import à Julien & Marco et consignation de la validation formelle. Reportée après le vendredi soir (disponibilité PO). Script de recette prêt :
recette_demo.md.
🧭 Décisions & clôtures
- ADR 0009 (logging) : passé de Proposé à Accepté - logger livré des deux côtés,
app_logscréée. - Écran de connexion : roster conservé (proposition B « écran neutre » écartée, confirmée).
- Déploiement : reste un sprint dédié à venir (non entamé). Prérequis consignés dans la section « Après le Sprint 06 » du backlog (app_logs prod, seed prod, observabilité backend serverless vs VPS).
🔮 Suite : Sprint 07
Sur décision PO, le Sprint 07 porte sur les fonctionnalités demandées mais pas encore intégrées (cf. propositions_nouvelles_fonctionnalites.md) : page Profil utilisateur, gestion des emails (US1.3) et onboarding email automatisé. Voir Sprint Backlog 07.
