Sprint Review & Rétrospective - Sprint 03
Date de fin : 06/07/2026 à 17:40
Effort planifié : 11 SP
Effort réalisé : 11 SP
Statut du Sprint : TERMINÉ (100% de vélocité)
🎯 Objectif du Sprint (Sprint Goal)
Assurer la transition complète de la couche de persistance vers Supabase, sécuriser les données au niveau PostgreSQL via des politiques RLS basées sur des tokens JWT personnalisés, et supprimer les codes PIN en clair ou en dur du code client.
📢 Démonstration & Livrables (Demos)
1. Base de données & Schémas Relationnels
- Rédaction du script de création de base
docs/supabase_schema.sqlcréant les tablesprojects,phases,members,tasks, ettask_notesavec clés de contraintes et intégrité référentielle (ON DELETE CASCADE). - Liaison de réplication PostgreSQL temps réel (
supabase_realtime) configurée pour toutes les tables.
2. Sécurité Row Level Security (RLS)
- Écriture de fonctions PostgreSQL personnalisées d'extraction des claims JWT (
auth.jwt_user_role()etauth.jwt_user_email()). - Application de règles RLS restrictives pour chaque rôle (Super Admin voit tout, Manager voit ses projets, Employee ne voit que ses tâches assignées).
3. Authentification Sécurisée Serverless
- Écriture de la Netlify Function
netlify/functions/auth.jsvérifiant les PINs en base de données et retournant un JWT signé parSUPABASE_JWT_SECRET. - Écriture de la Netlify Function
netlify/functions/public_data.jspour exposer l'arborescence des membres et projets à l'écran de login sans compromettre la confidentialité des codes PIN.
4. Client Web Temps Réel WebSockets
- Initialisation du client
src/services/supabaseClient.jsacceptant des jetons de session dynamiques. - Réécriture de
src/services/storage.jspour mapper de manière transparente l'interface clé-valeur historique vers la structure relationnelle de Supabase, avec abonnements WebSocket Realtime réactifs.
📊 Vélocité & Avancement
| User Story | Description | Effort (SP) | Statut |
|---|---|---|---|
| US-DB-02 | Schéma PostgreSQL & Déploiement des tables | 3 | Complété |
| US-DB-03 | Activation du Supabase Realtime | 2 | Complété |
| US-Sec-01 | Sécurisation par Row Level Security (RLS) | 3 | Complété |
| US-Auth-02 | Authentification dynamique par PIN | 3 | Complété |
🧠 Rétrospective (Retro)
Ce qui a bien fonctionné
- Le maintien de l'interface
loadSetsaveS(Adapter) a évité de réécrire les 4 vues complexes de tableaux de bord, minimisant le risque de régression et l'effort d'intégration. - La signature et la vérification des tokens JWT personnalisés directement basés sur le secret JWT Supabase permet d'enforcer RLS nativement au niveau de la base de données PostgreSQL sans utiliser les emails/mots de passe standards de Supabase Auth.
- Les tests d'intégration Playwright avec route interceptions des appels Supabase passent avec succès sans nécessiter de connexion internet.
Axes d'amélioration
- Veiller à configurer des valeurs de repli (fallbacks) de clés et d'URL pour le client Supabase en mode test/local afin d'éviter les plantages de montage de composants si les variables d'environnement ne sont pas encore configurées.
