L'autorisation vit dans PostgreSQL, pas seulement dans l'application
Les droits d'accès sont exprimés en RLS PostgreSQL combinée aux GRANT sur les 36 tables, doublés de guards TypeScript côté serveur - sept couches de défense, du edge réseau jusqu'aux triggers d'audit.
Pourquoi
- Supabase expose la base via une API REST générée : une autorisation posée uniquement dans les handlers Next.js serait contournable en appelant l'API directement.
- Une règle oubliée dans un nouveau handler ne provoque plus de fuite de données : la base refuse la ligne.
- Les vues d'administration ont été passées en SECURITY INVOKER explicite avec un rôle propriétaire dédié, car le défaut PostgreSQL SECURITY DEFINER contournait justement les RLS.
Contrepartie - Le débogage est plus rude qu'avec des conditions en TypeScript, et chaque politique demande son propre test. Le coût est payé une fois, à l'écriture.


.jpeg&w=3840&q=75)