sbarbase
المحتويات

Edge Functions

تشغّل Edge Functions كود Deno الخاص بك بجانب البيئة، وتُستدعى عبر supabase.functions.invoke() على <address>/functions/v1/<name>، كما في Supabase. لكل بيئة بيئة تشغيل خاصة بها، هي edge-runtime الأصلي، وتبدأ مع أول نشر.

النشر من مشروع Supabase

إن كانت لديك دوال في مشروع Supabase، فانشر مجلد supabase/functions كله بأمر واحد من نسخة من مستودع صباربيز:

SBARBASE_EMAIL=you@example.com bun lab/functions-deploy.ts https://console.example.com <environment id> ../my-app/supabase/functions

معرّف البيئة موجود في صفحتها في لوحة الإدارة. إعادة النشر تُطبَّق فورًا دون إعادة تشغيل، والطلب الجاري ينتهي على الإصدار الذي بدأ به.

النشر عبر Supabase CLI أو وكيل

برمز وصول شخصي (sbp_...) ينشر Supabase CLI إلى هذا الخادم عبر ملف تعريف (profile)، بالأمر supabase --profile ./sbarbase-profile.yaml functions deploy <name> --project-ref <ref> --use-api، ويضبط الأسرار بالأمر secrets set. ووكيل الذكاء الاصطناعي المتصل بنقطة /mcp على الخادم ينشر بأداته deploy_edge_function. تجد ملف التعريف والرمز والخطوات في وكلاء الذكاء الاصطناعي.

كتابة دالة في اللوحة

في صفحة البيئة، تحت Edge Functions، يأخذ زر Write a function اسمًا وملف index.ts وينشرهما. يناسب الدوال الصغيرة، ويناسب مجلدُ المشروع ما عداها.

استدعاء دالة

const { data, error } = await supabase.functions.invoke('hello-world', { body: { name: 'Sbarbase' } })

تحصل كل دالة على هذه المتغيرات، كما في Supabase:

المتغير ما هو
SUPABASE_URL واجهة هذه البيئة، لاستدعاء createClient() داخل الدالة
SUPABASE_ANON_KEY يعمل كزائر، ويطبَّق أمان الصفوف
SUPABASE_SERVICE_ROLE_KEY يعمل كالخدمة نفسها ويتجاوز أمان الصفوف. أبقِه داخل الدوال

أضف متغيراتك تحت Secrets (مثل STRIPE_SECRET_KEY) واقرأها بـ Deno.env.get('STRIPE_SECRET_KEY'). لا تظهر القيمة مرة أخرى بعد حفظها.

من يستطيع استدعاء دالة

كيف تعمل

ينشر CI مجلد دوال بالأمر أعلاه على جهاز نظيف مع كل تغيير، ويستدعي الدوال عبر البوابة باستخدام supabase-js، ومنها دالة تستخدم supabase-js من npm بصلاحية الخدمة (الدليل).

الحدود

عدّل على GitHub