Supabase
خلفية برمجية كاملة على PostgreSQL بنشر واحد - ما الذي تحصل عليه، وأيّ قاعدة تختار، وأين مفاتيحك.
Supabase خلفية برمجية لا تحتاج إلى كتابتها: تسجيل دخول المستخدمين، وواجهة برمجية فوق جداولك، وتحديثات فورية، وتخزين ملفات، ودوالّ تعمل على الخادم، وكلّها على قاعدة PostgreSQL. على ISOGrid هي حلّ كبقيّة الحلول: اختر حجمًا، اختر قاعدة، ثمّ انشر، فيصبح المشروع جاهزًا خلال دقائق.
ما الذي يحتويه المشروع
كلّ ما تحتويه نسخة Supabase المستضافة ذاتيًّا:
- Studio، لوحة التحكّم: الجداول، ومحرّر SQL، والمستخدمون، والتخزين، والسياسات.
- Auth: التسجيل وتسجيل الدخول بالبريد وكلمة المرور، برموز تثق بها واجهتك.
- واجهات REST و GraphQL، تُولَّد من جداولك وتحميها سياسات أمان الصفوف.
- Realtime: البثّ والحضور وتغييرات قاعدة البيانات عبر websockets.
- Storage: حاويات وملفّات، مع تغيير حجم الصور.
- Edge Functions: شيفرتك بلغة TypeScript تعمل على الخادم.
عنوان واحد يخدم ذلك كلّه. ويطلب Studio بيانات الدخول المعروضة في تبويب «نظرة عامة» للمشروع.
اختيار قاعدة البيانات
يعيش المشروع في قاعدة PostgreSQL تختار نوعها عند النشر:
قاعدة مصغّرة - قاعدة واحدة على خادم مشترك مع عملاء آخرين. أرخص طريقة للبدء، وكلّ شيء يعمل عدا أمر واحد: يوفّر Realtime البثّ والحضور، لا تغييرات قاعدة البيانات. فالاستماع إليها يتطلّب صلاحية تصل، على خادم مشترك، إلى بيانات عملاء آخرين، ولذلك لا تُمنح هناك.
خادم PostgreSQL خاصّ بك - مفرد، أو مع تجميع الاتصالات، أو عالي التوافر. Supabase كاملًا، بما فيه تغييرات قاعدة البيانات. وهو الاختيار المناسب للإنتاج.
خادم تملكه مسبقًا - يحتفظ المشروع بمخطّطاته (auth و storage و realtime)
في القاعدة الرئيسية لذلك الخادم، بجانب جداولك. مشروع واحد لكلّ خادم.
القاعدة التي تُشترى مع مشروع جزء منه: لا تظهر ضمن قواعدك، وتُدار من تبويب «قاعدة البيانات» في المشروع، وتُحذف معه.
مفاتيحك
في تبويب مفاتيح API ما يحتاجه العميل:
- رابط المشروع؛
- مفتاح anon، ويمكن وضعه في متصفّح أو تطبيق جوّال - وسياسات أمان الصفوف تحدّد ما يراه؛
- مفتاح service_role، وهو يتجاوز تلك السياسات. أبقِه على خوادمك؛
- سرّ JWT ورابط الاتصال بالقاعدة، للترحيلات وبرامج SQL.
import { createClient } from '@supabase/supabase-js'
const supabase = createClient('<project URL>', '<anon key>')
لا تتغيّر المفاتيح عند إعادة نشر المشروع أو تغيير حجمه.
الإعدادات
في الإعدادات: إلى أين يُرسل رابط التأكيد المستخدمين، وهل التسجيل مفتوح، ومدّة الجلسة، وخادم البريد. ما دام خادم البريد غير محدّد يُتخطّى تأكيد البريد - فلا أحد يستطيع استلام الرابط. حدّد خادمًا وأعد تفعيل التأكيد قبل فتح التسجيل للعموم.
الحفظ يعيد تشغيل خدمات المشروع. بياناته وملفّاته لا تُمسّ.
Edge Functions
يفتح تبويب الملفّات مجلّد الدوالّ. كلّ مجلّد دالّة تُخدم على
/functions/v1/<المجلّد>، وشيفرتها في الملف index.ts داخله. توجد دالّة hello
للبدء منها. ولا تجيب الدالّة إلّا على الطلبات التي تحمل أحد مفاتيح المشروع أو رمز
مستخدم مسجَّل الدخول.
الإضافات
تُفعَّل pgvector و PostGIS وبقيّة الإضافات في قائمة المنصّة من تبويب قاعدة البيانات. انظر قواعد البيانات للقائمة.
ما ليس مضمَّنًا
تحليل السجلّات الخاصّ بـ Supabase غير مضمَّن؛ ومخرجات كلّ خدمة تُقرأ من تبويب السجلّات في المشروع. و«webhooks» قاعدة البيانات، التي تتّصل بالخارج من داخل القاعدة، غير متاحة.