Journal des travaux post-clôture du Sprint 03
Objet : Tracer tout ce qui a été réalisé le 06/07/2026 après la clôture officielle du Sprint 03 (revue signée à 17:40), en dehors de tout sprint planifié. Nature : correctifs de stabilisation « à chaud » (hotfix) + mise en place du déploiement hybride, réalisés en soirée pour rendre l'application fonctionnelle en production. Rattachement : ces travaux sont consignés dans le Sprint 04 car ils constituent le point de départ de ce sprint d'urgence (plusieurs correctifs y étaient partiels - voir renvois vers l'audit).
⏱️ Chronologie (source : historique Git du 06/07/2026)
| Heure | Commit | Portée |
|---|---|---|
| 17:50 | 7c0bee3 |
Migration de la persistance Netlify Blobs → Supabase (RLS + Realtime) - finalisation du livrable Sprint 03 |
| 17:50 | f792d17 |
Support de l'hébergement hybride Node.js (Hostinger) + Serverless (Netlify) |
| 18:22 | ea9803e |
Merge de la Pull Request #1 (ENGWE-FRANCE/develop) |
| 21:28 | 299671f |
Fix : erreurs Supabase (connexion, récursion RLS, requêtes 401) |
| 21:29 | 79497d2 |
Merge develop : consolidation des fixes d'accès Supabase |
| 21:47 | 566c27f |
Fix : erreurs Supabase + plantage SuperManagerDashboard (RLS, 401, ReferenceError) |
| 21:57 | 7f08199 |
Fix : expiration de session 1 h, synchronisation post-login, logo dans le header |
| 22:01 | f00ce48 |
Fix : erreurs Supabase, plantage SuperManager, ordre des hooks React (Error #310) |
🧩 Détail des travaux
1. Déploiement hybride Node.js + Serverless (f792d17, 17:50)
- Ajout de
server.js: serveur Express servant le builddist/et exposant/api/auth,/api/public_data,/api/import(cible Hostinger / Node). - Ajout des Netlify Functions équivalentes :
netlify/functions/auth.js,public_data.js,import.js. - Ajout de
netlify.toml(publicationdist, redirection/api/* → /.netlify/functions/:splat). - Script
start: node server.jsajouté àpackage.json. - ⚠️ Dette introduite : duplication de la logique backend entre
server.jset les Netlify Functions → formalisée enM1/ US-BE-05 dans le Sprint 04.
2. Correctifs d'accès Supabase & RLS (299671f, 566c27f, 21:28–21:47)
- Résolution d'erreurs de connexion au client Supabase et de récursion dans les politiques RLS.
- Suppression de requêtes 401 émises alors qu'aucune session active n'existait : ajout de gardes « ne pas interroger Supabase sans session » dans
storage.js(pullFromSupabase,saveS). - Correction d'un
ReferenceErrorprovoquant le plantage duSuperManagerDashboard.
3. Cycle de session & expérience de connexion (7f08199, 21:57)
- Expiration automatique de session après 1 h : horodatage
session_created_at, vérification au montage et via unsetIntervalde contrôle dansApp.jsx. - Synchronisation post-login :
pullFromSupabase()déclenché dès qu'une session devient active. - Intégration du logo MYJ dans les en-têtes des trois tableaux de bord (Admin, SuperManager, Employee).
4. Ordre des hooks React / Error #310 (f00ce48, 22:01)
- Tentative de correction de l'« Error #310 » (mise à jour d'un composant pendant le rendu) et de plantages du SuperManager.
- Documentation associée :
docs/troubleshooting_supabase.md. - ⚠️ Correction incomplète : l'audit du 07/07 démontre que des
setStatesubsistent dans le rendu deApp.jsx(C1) → repris en US-FIX-01 (Sprint 04).
📌 Bilan & renvois vers le Sprint 04
Ces travaux nocturnes ont rétabli la disponibilité de l'application (connexion, RLS, affichage des dashboards), mais ont été menés sans cadre de sprint et ont laissé/introduit de la dette que l'audit du lendemain a formalisée :
| Travail du 06/07 | Statut | Suite dans le Sprint 04 |
|---|---|---|
| Déploiement hybride | ✅ Fonctionnel | Factoriser la duplication → M1 / US-BE-05 |
| Fixes RLS / 401 | ✅ Fonctionnel | Optimiser la synchro → M5 / US-PERF-07 |
| Expiration de session 1 h | ✅ Livré | - |
| Error #310 | ⚠️ Partiel | Finaliser → C1 / US-FIX-01 |
| PIN dynamiques (hérité Sprint 03) | ❌ Incomplet (PIN encore en dur/clair) | C3 / US-SEC-03 |
Ce journal sert de base de référence au Sprint 04 : il distingue ce qui est déjà corrigé de ce qui reste à traiter, pour éviter de re-planifier des travaux déjà effectués.
