Skip to main content

Vue d’ensemble

Gëstu utilise Supabase comme backend principal : base de données PostgreSQL, authentification, stockage de fichiers et API REST automatique.

Tables principales

partners

Représente un partenaire (cabinet d’audit, consultant).

profiles

Étend auth.users avec les données métier de l’utilisateur.

products

Catalogue des produits disponibles sur la plateforme.

user_product_access

Accès d’un utilisateur à un produit spécifique.

missions

Missions d’audit créées par les partenaires.

risks

Risques dans les cartographies Gëstu Risk.

access_requests

Demandes d’accès produit soumises depuis le Hub.

Row Level Security (RLS)

Toutes les tables ont RLS activée. Les politiques garantissent qu’un utilisateur ne peut accéder qu’aux données de son partenaire.

Fonctions utilitaires

Ces fonctions sont définies en SECURITY DEFINER pour éviter les récursions dans les politiques RLS.

Authentification

Gëstu utilise supabase-js avec onAuthStateChange pour gérer le cycle de vie de la session.

Règles critiques

  • Ne jamais await dans le handler SIGNED_IN — bloque signInWithPassword() indéfiniment
  • loadProfile() est appelé en fire-and-forget dans SIGNED_IN
  • Seul INITIAL_SESSION peut await loadProfile() (chargement initial avec timeout 6s)
  • Un seul onAuthStateChange global dans src/lib/authInit.ts

Variables d’environnement

Ne commitez jamais les variables d’environnement dans Git. Utilisez .env.local pour le développement local et les variables d’environnement Vercel pour la production.