DOC
Accueil/ Projets/ MJY Task Platform/ Journal des travaux post-clôture du Sprint 03

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 build dist/ 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 (publication dist, redirection /api/* → /.netlify/functions/:splat).
  • Script start: node server.js ajouté à package.json.
  • ⚠️ Dette introduite : duplication de la logique backend entre server.js et les Netlify Functions → formalisée en M1 / 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 ReferenceError provoquant le plantage du SuperManagerDashboard.

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 un setInterval de contrôle dans App.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 setState subsistent dans le rendu de App.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.