Vue d’ensemble
Kit’Asso utilise le système Row Level Security (RLS) de PostgreSQL pour contrôler finement l’accès aux données. Chaque table a des policies définissant qui peut lire, créer, modifier ou supprimer des enregistrements. Philosophie de sécurité :“Le public peut lire le contenu actif, les utilisateurs authentifiés peuvent tout gérer”Règles générales :
- ✅ Public : Lecture du contenu
status = 'active'ouis_active = true - ✅ Authenticated : CRUD complet sur toutes les tables, accès aux drafts
- ❌ Anonymous : Pas de création, modification ou suppression
Configuration RLS
Activation globale
RLS est activé sur toutes les 13 tables :Policies par table
1. Tools
Public - Lecture seule :- Visiteurs anonymes : ✅ Lecture de tous les outils
- Admins authentifiés : ✅ Lecture, création, modification, suppression
2. Categories
Mêmes policies que tools :3. Filters & Tool Features
Mêmes policies que tools/categories :4. Workflows
Public - Uniquement workflows actifs :- Visiteurs : ✅ Uniquement workflows
status = 'active' - Admins : ✅ Tous les workflows (active + draft)
5. Workflow Steps
Public - Uniquement steps de workflows actifs :6. Tool Packs
Public - Uniquement packs actifs :7. Pack Tools
Public - Lecture complète (join avec packs actifs géré côté app) :8. Quizzes
Public - Uniquement quiz actifs :9. Quiz Questions
Public - Questions de quiz actifs uniquement :10. Quiz Answers
Public - Réponses de quiz actifs :11. Quiz Recommendations
Public - Recommandations de quiz actifs :12. Quiz Responses
Public - INSERT uniquement (soumission de quiz) :13. Site Assets
Public - Lecture seule :Patterns de policies
Pattern 1 : Public read, Authenticated CRUD
Tables concernées : tools, categories, filters, tool_features, site_assetsPattern 2 : Public read active, Authenticated read all
Tables concernées : workflows, tool_packs, quizzesPattern 3 : Public read via parent, Authenticated full
Tables concernées : workflow_steps, quiz_questions, quiz_answers, quiz_recommendationsPattern 4 : Public insert only
Tables concernées : quiz_responsesTests de policies
Test 1 : Utilisateur anonyme
Requête :Test 2 : Utilisateur authentifié
Requête :Test 3 : Tentative d’insertion anonyme
Requête :Test 4 : Visibilité des steps
Requête :Bonnes pratiques
✅ À faire
Toujours activer RLS sur nouvelles tables❌ À éviter
Ne jamais désactiver RLS en productionDebugging RLS
Lister toutes les policies
Vérifier si RLS est activé
Supprimer une policy
Recréer toutes les policies (après erreur)
Voir fichier de migration correspondant danssupabase/migrations/.
