DOC
Accueil/ Projets/ MJY Task Platform/ Sprint Review & Rétrospective - Sprint 03

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.sql créant les tables projects, phases, members, tasks, et task_notes avec 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() et auth.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.js vérifiant les PINs en base de données et retournant un JWT signé par SUPABASE_JWT_SECRET.
  • Écriture de la Netlify Function netlify/functions/public_data.js pour 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.js acceptant des jetons de session dynamiques.
  • Réécriture de src/services/storage.js pour 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 loadS et saveS (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.