Supabase کنیکٹر

ڈیٹا بیس ریکارڈز، صارف تصدیق ڈیٹا، فائل اسٹوریج ایونٹس، اور گاہک engagement آٹومیشن کے لیے ریئل ٹائم تبدیلیوں کو سنک کرنے کے لیے اپنے Supabase پروجیکٹ کو منسلک کریں۔

جائزہ

خاصیتقدر
پلیٹ فارمSupabase
زمرہڈیٹا بیس اور بیک اینڈ
سیٹ اپ کی پیچیدگیآسان
آفیشل انٹیگریشنہاں
سنک شدہ ڈیٹاصارفین، ٹیبلز، اسٹوریج، ایونٹس
دستیاب اسکلز11
API قسمREST (PostgREST) + Realtime WebSocket
آفیشل دستاویزاتsupabase.com/docs

خصوصیات

  • خودکار تیار شدہ REST API, PostgREST کے ذریعے کسی بھی Postgres ٹیبل پر CRUD آپریشنز، کوئی کوڈ درکار نہیں
  • Auth صارف سنک, Supabase Auth صارفین (ای میل، فون، سوشل لاگ ان) کو اپنے engagement پلیٹ فارم پر سنک کریں
  • ریئل ٹائم سبسکرپشنز, کسی بھی ٹیبل پر INSERT, UPDATE, DELETE ایونٹس کو ریئل ٹائم میں سنیں
  • Row Level Security, تمام API رسائی محفوظ ملٹی ٹیننٹ ڈیٹا کے لیے Postgres RLS پالیسیوں کا احترام کرتی ہے
  • اسٹوریج انٹیگریشن, Storage buckets میں فائل اپ لوڈز ٹریک کریں اور اثاثوں کا انتظام کریں
  • Edge Functions, کسٹم لاجک اور webhooks کے لیے serverless Deno فنکشنز کو invoke کریں
  • مکمل ٹیکسٹ سرچ, API کے ذریعے Postgres مکمل ٹیکسٹ سرچ صلاحیتوں کا فائدہ اٹھائیں

شرائط

شروع کرنے سے پہلے، یقینی بنائیں کہ آپ کے پاس ہے:

  1. Supabase پروجیکٹ (app.supabase.com)
  2. آپ کے پروجیکٹ کا API URL اور API keys (Settings → API میں ملتے ہیں)
  3. API رسائی کے ساتھ Tajo اکاؤنٹ

API Keys

Supabase دو کیز فراہم کرتا ہے: anon (عوامی، RLS کا احترام کرتا ہے) اور service_role (RLS کو نظر انداز کرتا ہے، ایڈمن رسائی)۔ سرور سائڈ انٹیگریشنز کے لیے service_role اور کلائنٹ سائڈ کے لیے anon استعمال کریں۔

تصدیق

Supabase API key تصدیق استعمال کرتا ہے۔ ہر درخواست کو apikey ہیڈر اور اختیاری طور پر صارف اسکوپڈ رسائی کے لیے Authorization bearer ٹوکن درکار ہوتا ہے۔

Terminal window
# Using anon key (respects RLS)
curl 'https://<project_ref>.supabase.co/rest/v1/customers' \
-H "apikey: <SUPABASE_ANON_KEY>" \
-H "Authorization: Bearer <SUPABASE_ANON_KEY>"
# Using service_role key (bypasses RLS)
curl 'https://<project_ref>.supabase.co/rest/v1/customers' \
-H "apikey: <SUPABASE_SERVICE_ROLE_KEY>" \
-H "Authorization: Bearer <SUPABASE_SERVICE_ROLE_KEY>"

تشکیل

بنیادی سیٹ اپ

connectors:
supabase:
enabled: true
project_url: "https://xyzcompany.supabase.co"
api_key: "${SUPABASE_SERVICE_ROLE_KEY}"
# Data sync options
sync:
users: true
tables:
- customers
- orders
- products
storage: true
realtime: true
# Map Supabase Auth users to contacts
user_mapping:
email: email
phone: SMS
user_metadata.full_name: FIRSTNAME
created_at: SIGNUP_DATE

فیلڈ میپنگ

Supabase ٹیبل کالمز کو engagement پلیٹ فارم خصوصیات پر میپ کریں:

طے شدہ صارف میپنگز

Parameter Type Description
email required
string

Supabase Auth سے صارف ای میل (منفرد شناخت کنندہ)

phone optional
string

SMS/WhatsApp engagement کے لیے فون نمبر

user_metadata.full_name optional
string

Auth صارف میٹا ڈیٹا سے ڈسپلے نام

user_metadata.avatar_url optional
string

پروفائل تصویر URL

created_at optional
timestamp

اکاؤنٹ بنانے کا ٹائم اسٹیمپ

last_sign_in_at optional
timestamp

engagement اسکورنگ کے لیے حالیہ ترین لاگ ان

app_metadata.provider optional
string

Auth فراہم کنندہ (email, google, github, وغیرہ)

confirmed_at optional
timestamp

ای میل تصدیق ٹائم اسٹیمپ

کسٹم ٹیبل میپنگ

table_mapping:
customers:
# Column → Attribute mapping
email: email
full_name: FIRSTNAME
company: COMPANY
plan: SUBSCRIPTION_PLAN
mrr: MONTHLY_REVENUE
created_at: SIGNUP_DATE
orders:
# Track as events
sync_as: events
event_name: "order_placed"
properties:
total: amount
status: order_status
items: line_items

API اینڈ پوائنٹس

Supabase REST API آپ کے ڈیٹا بیس اسکیما سے https://<ref>.supabase.co/rest/v1/ پر خودکار تیار ہوتی ہے۔

اینڈ پوائنٹطریقہتفصیل
/rest/v1/{table}GETفلٹرنگ، ترتیب، پیجینیشن کے ساتھ سطریں کوئری کریں
/rest/v1/{table}POSTسطریں شامل کریں (بلک اور upsert سپورٹ کرتا ہے)
/rest/v1/{table}PATCHفلٹرز سے ملنے والی سطریں اپ ڈیٹ کریں
/rest/v1/{table}DELETEفلٹرز سے ملنے والی سطریں حذف کریں
/rest/v1/rpc/{function}POSTPostgres فنکشن کال کریں
/auth/v1/signupPOSTنیا صارف بنائیں
/auth/v1/token?grant_type=passwordPOSTپاس ورڈ کے ساتھ سائن ان
/auth/v1/userGETموجودہ صارف حاصل کریں
/auth/v1/admin/usersGETتمام صارفین کی فہرست (service_role)
/storage/v1/object/{bucket}/{path}POSTفائل اپ لوڈ کریں
/storage/v1/object/list/{bucket}POSTbucket میں فائلوں کی فہرست
/functions/v1/{function_name}POSTEdge Function invoke کریں

فلٹرنگ آپریٹرز

آپریٹرتفصیلمثال
eqبرابر?status=eq.active
neqبرابر نہیں?status=neq.deleted
gt, gteبڑا ہے?amount=gt.100
lt, lteچھوٹا ہے?created_at=lt.2024-01-01
like, ilikeپیٹرن میچ?name=ilike.%john%
inarray میں?status=in.(active,trial)
isNull چیک?deleted_at=is.null

ایونٹس

Auth ایونٹس

ایونٹٹرگراستعمال کا کیس
user.signed_upنیا صارف رجسٹریشنویلکم سیریز
user.signed_inصارف لاگ انسرگرمی ٹریکنگ
user.updatedپروفائل تبدیلیاںڈیٹا سنک
user.deletedاکاؤنٹ حذفکلین اپ ورک فلوز

ڈیٹا بیس ایونٹس (Realtime)

ایونٹٹرگراستعمال کا کیس
INSERTنئی سطر شاملنیا آرڈر/گاہک نوٹیفکیشنز
UPDATEسطر میں ترمیماسٹیٹس تبدیلی ورک فلوز
DELETEسطر ہٹائی گئیچرن کی نشاندہی

Webhook ایونٹس

ایونٹٹرگراستعمال کا کیس
auth.user.createdwebhook کے ذریعے صارف سائن اپآن بورڈنگ ٹرگر
storage.object.createdفائل اپ لوڈ ہوئیاثاثہ پروسیسنگ

کوڈ کی مثالیں

کنیکٹر کو انیشیلائز کریں

import { TajoClient } from '@tajo/sdk';
import { createClient } from '@supabase/supabase-js';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
});
// Connect Supabase project
await tajo.connectors.connect('supabase', {
projectUrl: process.env.SUPABASE_URL,
serviceRoleKey: process.env.SUPABASE_SERVICE_ROLE_KEY,
});

صارفین کو رابطوں میں سنک کریں

// Sync all Supabase Auth users as contacts
await tajo.connectors.sync('supabase', {
type: 'full',
resources: ['users'],
});
// Incremental sync (new/changed users only)
await tajo.connectors.sync('supabase', {
type: 'incremental',
resources: ['users'],
since: '2024-01-01T00:00:00Z',
});

ریئل ٹائم تبدیلیاں سنیں

// Subscribe to new orders for engagement triggers
const supabase = createClient(
process.env.SUPABASE_URL,
process.env.SUPABASE_SERVICE_ROLE_KEY
);
supabase
.channel('orders')
.on('postgres_changes',
{ event: 'INSERT', schema: 'public', table: 'orders' },
async (payload) => {
// Forward to Tajo as an event
await tajo.events.track({
email: payload.new.customer_email,
event: 'order_placed',
properties: {
order_id: payload.new.id,
total: payload.new.total,
items: payload.new.line_items,
},
});
}
)
.subscribe();

کوئری اور سیگمنٹ

// Query customers by plan for targeted campaigns
const { data: proUsers } = await supabase
.from('customers')
.select('email, full_name, plan, mrr')
.eq('plan', 'pro')
.gt('mrr', 100)
.order('mrr', { ascending: false });
// Sync to a Brevo list for campaign targeting
await tajo.lists.addContacts(PRO_LIST_ID, proUsers);

شرح کی حدود

API شرح کی حدود

Supabase شرح کی حدود آپ کے پلان پر منحصر ہیں۔ Free tier: 500 درخواستیں/منٹ۔ Pro: 1,000 درخواستیں/سیکنڈ۔ Enterprise حدود کے لیے Supabase سے رابطہ کریں۔

پلانشرح کی حدRealtime کنکشنز
Free500 req/min200 بیک وقتی
Pro1,000 req/s500 بیک وقتی
Team2,000 req/s1,000 بیک وقتی
Enterpriseکسٹمکسٹم

ٹربل شوٹنگ

عام مسائل

مسئلہوجہحل
401 Unauthorizedغلط یا میعاد ختم API keySupabase Dashboard → Settings → API میں API keys چیک کریں
403 ForbiddenRLS پالیسی رسائی روک رہی ہےایڈمن آپریشنز کے لیے service_role key استعمال کریں، یا RLS پالیسیاں چیک کریں
کوئی realtime ایونٹس نہیںٹیبل کے لیے Realtime فعال نہیںDatabase → Replication میں فعال کریں → publication میں ٹیبل شامل کریں
خالی کوئری نتائجRLS تمام سطروں کو فلٹر کر رہا ہےتصدیق کریں کہ RLS پالیسیاں authenticated رول کو پڑھنے کی اجازت دیتی ہیں
اسٹوریج اپ لوڈ ناکامBucket پالیسیاںچیک کریں کہ Storage bucket عوامی ہے یا اس کے پاس درست RLS پالیسیاں ہیں

ڈیبگ موڈ

connectors:
supabase:
debug: true
log_level: verbose
log_queries: true
log_realtime: true

کنکشن ٹیسٹ کریں

Terminal window
tajo connectors test supabase
# ✓ API connection successful
# ✓ Auth endpoint accessible
# ✓ Tables readable (12 tables found)
# ✓ Storage accessible (3 buckets)
# ✓ Realtime connection established
# ✓ Edge Functions available (4 functions)

بہترین طرز عمل

  1. service_role key صرف سرور سائڈ استعمال کریں, اسے کبھی کلائنٹ کوڈ میں ظاہر نہ کریں
  2. تمام ٹیبلز پر RLS فعال کریں, service_role کے ساتھ بھی، defense in depth کے لیے RLS کے ساتھ ڈیزائن کریں
  3. ایونٹ پر مبنی سنک کے لیے Realtime استعمال کریں, تبدیلیوں کے لیے polling سے زیادہ موثر
  4. بیچ آپریشنز, اعلی حجم آپریشنز کے لیے بلک inserts اور in فلٹر استعمال کریں
  5. صارف میٹا ڈیٹا میپ کریں, سائن اپ کے دوران engagement سے متعلقہ فیلڈز کو user_metadata میں محفوظ کریں
  6. webhooks کے لیے Edge Functions استعمال کریں, کم latency ہینڈلنگ کے لیے Supabase Edge Functions کے ساتھ آنے والے webhooks پروسیس کریں

سیکیورٹی

  • API Key تصدیق, تمام درخواستوں کو درست API keys درکار ہیں
  • Row Level Security (RLS), Postgres نیٹیو رسائی کنٹرول فی سطر
  • JWT تصدیق, Auth ٹوکنز دستخط شدہ JWTs ہیں جو ہر درخواست پر تصدیق ہوتے ہیں
  • SSL/TLS, تمام کنکشنز ٹرانزٹ میں انکرپٹڈ
  • SOC 2 Type II, Supabase SOC 2 کمپلائنٹ ہے
  • نیٹ ورک پابندیاں, paid پلانز پر اختیاری IP allowlisting

متعلقہ وسائل

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI معاون

السلام علیکم! دستاویزات کے بارے میں کچھ بھی پوچھیں۔