الإجابة باختصار
Supabase منصة خلفية مبنية على قاعدة بيانات Postgres كاملة، ومعها تسجيل الدخول وتخزين الملفات والتحديث اللحظي والدوال الطرفية. تناسب المنتجات المبنية بالذكاء الاصطناعي لأنها تعطي قاعدة بيانات حقيقية بأمان على مستوى الصفوف، فتعيش الصلاحيات في قاعدة البيانات نفسها لا في كود يتغير كل يوم.
ما هو Supabase
توثيق Supabase يقول إن كل مشروع يحصل على قاعدة بيانات Postgres كاملة لا على تجريد فوقها، ويمكن إضافة امتدادات مثل pgvector للتضمينات وpg_cron للمهام المجدولة، وإن خدمات تسجيل الدخول والتخزين والتحديث اللحظي والدوال الطرفية مبنية فوق هذه القاعدة.[1]
لهذا تعلّمه أكاديمية U3 في مسار البرمجة. الوكيل البرمجي يكتب SQL ويفهم Postgres جيدًا، والمنتج يحصل على قاعدة بيانات حقيقية بعلاقات وقيود ودوال بدل مخزن بيانات بسيط، وكل شيء من تسجيل الدخول إلى الملفات في مكان واحد. ولأن القاعدة Postgres قياسية، يبقى المنتج قابلًا للنقل إذا تغيرت الحاجة يومًا.
الأمان على مستوى الصفوف
Supabase يوصي بتفعيل الأمان على مستوى الصفوف على كل جدول في مخطط مكشوف للواجهة البرمجية، ويوضح أنه بعد التفعيل لا تصل أي بيانات عبر الواجهة بالمفتاح العام حتى تُنشأ سياسات، وأن المفتاح السري يعمل بدور service_role الذي يتجاوز هذه الحماية ولا يجوز استخدامه في المتصفح أبدًا.[2]
وتوثيق PostgreSQL نفسه ينص على أن الجدول المفعل عليه أمان الصفوف دون أي سياسة يُطبق عليه رفض افتراضي، فلا تظهر صفوف ولا يمكن تعديلها.[3]
تصميم القاعدة
ترتيب العمل في طريقة U3:
- نموذج البيانات من وثيقة المتطلبات: الجداول والعلاقات ومالك كل صف.
- RLS مفعل على كل جدول برفض افتراضي.
- سياسة لكل دور ولكل حالة مسموحة.
- كل تغيير في المخطط ملف ترحيل في تسلسل واحد، لا نقرة في لوحة التحكم.
- بيانات بذرية للتطوير والاختبار.
- اختبار السياسات بحسابين مختلفين على الأقل.
المفاتيح والخادم
القاعدة بسيطة: المفتاح العام يذهب إلى المتصفح ويخضع لكل السياسات، ومفتاح الخدمة يبقى على الخادم فقط ويُستخدم لمهام محددة مثل استقبال إشعارات الدفع والمهام المجدولة ومهام الإدارة الخاصة. ولا يظهر أبدًا في مكون يعمل في المتصفح، ولا في مستودع الكود.
الانتقالات المهمة
العمليات البسيطة على صفوف المستخدم نفسه، مثل ملاحظاته ومفضلاته، تتم بعميل المستخدم فتطبق عليها السياسات تلقائيًا. أما الانتقالات التي تهم، مثل تأكيد طلب أو منح وصول لمحتوى مدفوع أو إصدار شهادة، فتمر عبر دوال داخل قاعدة البيانات تتحقق من الصلاحية في SQL نفسه، حتى لا يستطيع أي كود في الواجهة تجاوزها.
البحث بالمعنى
امتداد pgvector يسمح بحفظ التضمينات بجانب البيانات العادية، وهو أساس مساعد يجيب من محتوى المنتج نفسه. والقاعدة في U3: البحث بالمعنى يحترم نفس الصلاحيات، فلا يسترجع المساعد مقطعًا من محتوى لا يحق للمستخدم رؤيته.
من شغل U3
نموذج بيانات أكاديمية U3 مكتوب كتسلسل ترحيلات واحد على Postgres، والأمان على مستوى الصفوف مفعل على كل جدول برفض افتراضي. الطلاب يقرأون صفوفهم والمحتوى المنشور فقط، والدروس المدفوعة تمر عبر دالة وصول في قاعدة البيانات، والطلبات والاستحقاقات تمر عبر دوال تفرض الصلاحية. والتطوير والاختبار يتمان على نسخة محلية كاملة من Supabase.
مثال
تطبيق حجز لصالون: جداول للعملاء والخدمات والمواعيد والموظفين. العميل يقرأ مواعيده فقط وينشئ موعدًا لنفسه، والموظف يقرأ مواعيد اليوم في فرعه، والإدارة تدير الخدمات والأسعار. تأكيد الدفع يأتي من إشعار موقع من مزود الدفع إلى دالة على الخادم، وهي وحدها تغير حالة الموعد إلى مؤكد.
تسجيل الدخول والملفات
تسجيل الدخول في المنتج الحقيقي أكثر من شاشة بريد وكلمة مرور: تأكيد البريد، واستعادة كلمة المرور، وتسجيل الدخول بحسابات خارجية عند الحاجة، وإدارة الجلسات والأجهزة. وكل صف في قاعدة البيانات مرتبط بمعرّف المستخدم الذي تنتجه هذه الخدمة، فتصبح السياسات مكتوبة بلغة واحدة: هل هذا الصف ملك هذا المستخدم؟
والملفات تتبع نفس المنطق: مجلدات تخزين حسب الغرض، خاصة افتراضيًا، والوصول إليها بروابط موقعة مؤقتة، مع فحص نوع الملف وحجمه وامتداده عند الرفع. الصورة الشخصية العامة شيء، وملف واجب أو مستند عميل شيء آخر تمامًا.
والقاعدة الأخيرة: التطوير والاختبار على نسخة محلية أو بيئة منفصلة، لا على قاعدة بيانات الإنتاج أبدًا. الترحيلات تُجرب محليًا أولًا، ثم تُطبق على الإنتاج بعد المراجعة، ولا يُحذف أي عمود فيه بيانات حقيقية دون خطة نسخ احتياطي واسترجاع.
تبدأ منين
كورس Claude Code بجد يقدم Supabase وأساسيات الأمان على مستوى الصفوف، وكورس المنتج الكامل يتعمق في قاعدة البيانات وتسجيل الدخول والتخزين والسياسات ولوحات الإدارة والدفع. ومن لم يتعامل مع قواعد البيانات من قبل يبدأ بكورس أساسيات البناء.
أخطاء شائعة
الخطأ: جداول من غير RLS.
التصحيح: RLS على كل جدول من أول يوم، برفض افتراضي.
الخطأ: مفتاح الخدمة في الواجهة.
التصحيح: على الخادم فقط، لمهام محددة.
الخطأ: تعديل المخطط بالنقر في لوحة التحكم.
التصحيح: كل تغيير ملف ترحيل في تسلسل واحد.
الخطأ: سياسات محدش اختبرها.
التصحيح: اختبار بحسابين: الأول لا يرى بيانات الثاني.
الكورس اللي بيعلّم الموضوع ده
أساسيات البناء
افهم المنتج من جوه ببساطة، واكتب البريف قبل الكود، وانشر صفحة هبوط حقيقية في ساعة.
أسئلة بتتكرر
المصادر
كل رقم بين قوسين في الصفحة بيشاور على مصدر من دول. المصادر منشورة، وتاريخ آخر زيارة مكتوب جنب كل واحد.
- 1Database overview
Supabase · آخر زيارة 4 أكتوبر 2026
- 2Row Level Security
Supabase · آخر زيارة 4 أكتوبر 2026
- 3Row Security Policies (PostgreSQL 18 documentation)
The PostgreSQL Global Development Group · آخر زيارة 4 أكتوبر 2026