الدرس 2: بنية منتج الذكاء الاصطناعي — ثلاثة حدود تحمي تطبيقك
سيناريو واقعي: شركة ناشئة تتلقى فاتورة شهرية بقيمة $14,000 من Anthropic — لأن الـ API key كان في حزمة React. الحدود المعمارية الصحيحة ليست مجرد 'best practice' — بل هي ما يفصل مشروع إنتاج عن مشروع هشّ.
الحد المعماري أشبه بباب مقفل. في جهة — المستخدم. وفي الجهة الأخرى — البيانات الحساسة. المفتاح يبقى دائماً خلف الباب.
- auth boundary
- الحد بين الطلبات المجهولة (anon key) والطلبات الموثَّقة (JWT). بعد هذا الحد، يصبح المستخدم معرَّفاً.
- data boundary
- الحد الذي يفرض عنده RLS مَن يحق له رؤية أي بيانات — على مستوى الـ database، لا على مستوى React.
- AI boundary
- الحد الذي يحمي مفاتيح LLM API. يجب أن تبقى مفاتيح Anthropic/Gemini في جانب الخادم (Supabase edge function) — ولا تكون أبداً في React.
- anon key
- مفتاح Supabase عام يتيح تنفيذ عمليات غير موثَّقة. آمن للتخزين في الـ client لأن RLS يحمي البيانات.