Supabase konnektor

Csatlakoztasd a Supabase projektedet, hogy szinkronizáld az adatbázis-rekordokat, felhasználói hitelesítési adatokat, fájltárolás eseményeket és valós idejű változásokat az ügyfél-elköteleződési automatizáláshoz.

Áttekintés

TulajdonságÉrték
PlatformSupabase
KategóriaAdatbázis és backend
Telepítés bonyolultságaKönnyű
Hivatalos integrációIgen
Szinkronizált adatokFelhasználók, Táblák, Tárolás, Események
Elérhető Skillek11
API típusREST (PostgREST) + Valós idejű WebSocket
Hivatalos dokumentációsupabase.com/docs

Funkciók

  • Automatikusan generált REST API, CRUD műveletek bármely Postgres táblán PostgREST-en keresztül, kód nélkül
  • Auth felhasználó-szinkronizáció, Supabase Auth felhasználók szinkronizálása (e-mail, telefon, közösségi bejelentkezések) az elköteleződési platformra
  • Valós idejű előfizetések, INSERT, UPDATE, DELETE események figyelése bármely táblán valós időben
  • Sor szintű biztonság, Minden API-hozzáférés betartja a Postgres RLS szabályzatokat a biztonságos több-bérlős adatokhoz
  • Tárolás integráció, Fájlfeltöltések követése és eszközök kezelése tárolóvödrök között
  • Edge Functions, Kiszolgáló nélküli Deno funkciók meghívása egyéni logikához és webhookokhoz
  • Teljes szöveges keresés, Postgres teljes szöveges keresési képességek kihasználása az API-n keresztül

Előfeltételek

Mielőtt elkezdenéd, győződj meg róla, hogy rendelkezel:

  1. Egy Supabase projekttel (app.supabase.com)
  2. A projekted API URL-jével és API kulcsaival (megtalálható a Beállítások → API alatt)
  3. Egy Tajo fiókkal API-hozzáféréssel

API kulcsok

A Supabase két kulcsot biztosít: anon (nyilvános, betartja az RLS-t) és service_role (megkerüli az RLS-t, adminisztrátori hozzáférés). A szerveroldali integrációkhoz a service_role kulcsot, kliens oldali esetekhez az anon kulcsot használd.

Hitelesítés

A Supabase API kulcs hitelesítést használ. Minden kérés megköveteli az apikey fejlécet, és opcionálisan egy Authorization bearer tokent felhasználói hatókörű hozzáféréshez.

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>"

Konfiguráció

Alapbeállítás

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

Mezőleképezés

Képezd le a Supabase táblaoszlopokat az elköteleződési platform attribútumaihoz:

Default User Mappings

Parameter Type Description
email required
string

User email from Supabase Auth (unique identifier)

phone optional
string

Phone number for SMS/WhatsApp engagement

user_metadata.full_name optional
string

Display name from Auth user metadata

user_metadata.avatar_url optional
string

Profile image URL

created_at optional
timestamp

Account creation timestamp

last_sign_in_at optional
timestamp

Most recent login for engagement scoring

app_metadata.provider optional
string

Auth provider (email, google, github, etc.)

confirmed_at optional
timestamp

Email confirmation timestamp

Egyéni tábla leképezés

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 végpontok

A Supabase REST API automatikusan generálódik az adatbázis-sémádból a https://<ref>.supabase.co/rest/v1/ címen.

VégpontMódszerLeírás
/rest/v1/{table}GETSorok lekérdezése szűréssel, rendezéssel, oldalazással
/rest/v1/{table}POSTSorok beszúrása (tömeges és upsert is támogatott)
/rest/v1/{table}PATCHSzűrőknek megfelelő sorok frissítése
/rest/v1/{table}DELETESzűrőknek megfelelő sorok törlése
/rest/v1/rpc/{function}POSTPostgres funkció meghívása
/auth/v1/signupPOSTÚj felhasználó létrehozása
/auth/v1/token?grant_type=passwordPOSTBejelentkezés jelszóval
/auth/v1/userGETJelenlegi felhasználó lekérése
/auth/v1/admin/usersGETÖsszes felhasználó listázása (service_role)
/storage/v1/object/{bucket}/{path}POSTFájl feltöltése
/storage/v1/object/list/{bucket}POSTFájlok listázása vödörben
/functions/v1/{function_name}POSTEdge Function meghívása

Szűrő operátorok

OperátorLeírásPélda
eqEgyenlő?status=eq.active
neqNem egyenlő?status=neq.deleted
gt, gteNagyobb mint?amount=gt.100
lt, lteKisebb mint?created_at=lt.2024-01-01
like, ilikeMinta illeszkedés?name=ilike.%john%
inTömbben van?status=in.(active,trial)
isNull ellenőrzés?deleted_at=is.null

Események

Auth események

EseményKiváltó okHasználati eset
user.signed_upÚj felhasználó regisztrációjaÜdvözlő sorozat
user.signed_inFelhasználói bejelentkezésAktivitás követés
user.updatedProfil módosításokAdatszinkronizálás
user.deletedFiók törléseTisztítási munkafolyamatok

Adatbázis-események (Valós idejű)

EseményKiváltó okHasználati eset
INSERTÚj sor hozzáadvaÚj rendelés/ügyfél értesítések
UPDATESor módosítvaStátuszváltozás munkafolyamatok
DELETESor eltávolítvaLemorzsolódás-felderítés

Webhook események

EseményKiváltó okHasználati eset
auth.user.createdFelhasználói regisztráció webhookon keresztülOnboarding indítása
storage.object.createdFájl feltöltveEszközfeldolgozás

Kódpéldák

A konnektor inicializálása

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,
});

Felhasználók szinkronizálása kapcsolatokba

// 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',
});

Figyelés valós idejű változásokra

// 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();

Lekérdezés és szegmentálás

// 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);

Ráta-korlátok

API ráta-korlátok

A Supabase ráta-korlátjai a tervtől függnek. Ingyenes szint: 500 kérés/perc. Pro: 1 000 kérés/mp. Enterprise korlátokért vedd fel a kapcsolatot a Supabase-szal.

TervRáta-korlátValós idejű kapcsolatok
Ingyenes500 kérés/perc200 párhuzamos
Pro1 000 kérés/mp500 párhuzamos
Team2 000 kérés/mp1 000 párhuzamos
EnterpriseEgyéniEgyéni

Hibaelhárítás

Gyakori problémák

ProblémaOkMegoldás
401 UnauthorizedÉrvénytelen vagy lejárt API kulcsEllenőrizd az API kulcsokat a Supabase Dashboard → Beállítások → API alatt
403 ForbiddenRLS szabályzat blokkolja a hozzáféréstHasználj service_role kulcsot adminisztrátori műveleteknél, vagy ellenőrizd az RLS szabályzatokat
Nincsenek valós idejű eseményekValós idejű nincs engedélyezve a táblánálEngedélyezd az Adatbázis → Replikáció menüben, add hozzá a táblát a publikációhoz
Üres lekérdezési eredményekAz RLS az összes sort kiszűriEllenőrizd, hogy az RLS szabályzatok engedélyezik-e a hitelesített szerepkör olvasását
Tárolás feltöltés sikertelenVödör szabályzatokEllenőrizd, hogy a tároló vödör nyilvános-e vagy megfelelő RLS szabályzatokkal rendelkezik

Hibakeresési mód

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

Kapcsolat tesztelése

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)

Legjobb gyakorlatok

  1. A service_role kulcsot csak szerver oldalon használd, Soha ne tedd ki kliens kódban
  2. Engedélyezd az RLS-t minden táblán, Még service_role esetén is tervezz RLS-sel a mélységi védelmért
  3. Használj valós idejű szinkronizálást eseményvezérelt szinkronizáláshoz, Hatékonyabb, mint a változások lekérdezése
  4. Kötegelj műveleteket, Használj tömeges beszúrásokat és az in szűrőt nagy volumenű műveleteknél
  5. Képezd le a felhasználói metaadatokat, Tárold az elköteleződéshez releváns mezőket a user_metadata-ban a regisztráció során
  6. Használj Edge Functions-t webhookokhoz, Dolgozd fel a bejövő webhookokat Supabase Edge Functions-szel az alacsony késleltetésű kezelésért

Biztonság

  • API kulcs hitelesítés, Minden kérés érvényes API kulcsokat igényel
  • Sor szintű biztonság (RLS), Postgres natív hozzáférés-szabályozás soronként
  • JWT ellenőrzés, Az Auth tokenek minden kérésnél ellenőrzött aláírt JWT-k
  • SSL/TLS, Minden kapcsolat titkosítva van az átvitel során
  • SOC 2 Type II, A Supabase SOC 2 megfelelőséggel rendelkezik
  • Hálózati korlátozások, Opcionális IP engedélyezési lista fizetős terveken

Kapcsolódó források

Subscribe to updates

developer-docs

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

auto-detect
AI asszisztens

Szia! Kérdezz bármit a dokumentációról.