Leçon 2 : architecture d'un produit IA — les trois frontières qui protègent ton app
Un scénario tiré du réel : une startup reçoit une facture mensuelle de 14 000 $ d'Anthropic — parce que la clé API était dans le bundle React. Des frontières architecturales correctes ne sont pas juste une « bonne pratique » — c'est ce qui sépare un projet en production d'un projet vulnérable.
Une frontière architecturale, c'est comme une porte verrouillée. D'un côté — l'utilisateur. De l'autre — les données sensibles. La clé reste toujours derrière la porte.
- auth boundary
- La frontière entre les requêtes anonymes (anon key) et les requêtes authentifiées (JWT). Après cette frontière, l'utilisateur est identifié.
- data boundary
- La frontière où la RLS applique qui peut voir quelles données — au niveau de la base de données, pas au niveau de React.
- AI boundary
- La frontière qui protège les clés API des LLM. Les clés Anthropic/Gemini doivent rester côté serveur (edge function Supabase) — jamais dans React.
- anon key
- Une clé Supabase publique qui permet des opérations non authentifiées. Sûre à stocker côté client car la RLS protège les données.