Supabase konektor

Prepoj svoj Supabase projekt na synchronizáciu databázových záznamov, dát autentifikácie používateľov, udalostí úložiska súborov a zmien v reálnom čase pre automatizáciu zákazníckeho zapojenia.

Prehľad

VlastnosťHodnota
PlatformaSupabase
KategóriaDatabáza a Backend
Zložitosť nastaveniaĽahké
Oficiálna integráciaÁno
Synchronizované dátaPoužívatelia, Tabuľky, Úložisko, Udalosti
Dostupné skilly11
Typ APIREST (PostgREST) + Realtime WebSocket
Oficiálna dokumentáciasupabase.com/docs

Funkcie

  • Automaticky generované REST API, CRUD operácie na akejkoľvek Postgres tabuľke cez PostgREST, bez kódu
  • Synchronizácia Auth používateľov, Synchronizuj Supabase Auth používateľov (e-mail, telefón, sociálne prihlásenia) do tvojej platformy
  • Odbery v reálnom čase, Počúvaj udalosti INSERT, UPDATE, DELETE na akejkoľvek tabuľke v reálnom čase
  • Row Level Security, Všetok API prístup rešpektuje Postgres RLS politiky pre bezpečné multi-tenant dáta
  • Integrácia úložiska, Sleduj nahrávanie súborov a spravuj prostriedky naprieč Storage bucketmi
  • Edge Functions, Spúšťaj bezserverové Deno funkcie pre vlastnú logiku a webhooky
  • Full-text vyhľadávanie, Využi možnosti full-text vyhľadávania Postgres cez API

Predpoklady

Predtým, než začneš, uisti sa, že máš:

  1. Supabase projekt (app.supabase.com)
  2. API URL a API kľúče tvojho projektu (v Settings → API)
  3. Tajo účet s API prístupom

API kľúče

Supabase poskytuje dva kľúče: anon (verejný, rešpektuje RLS) a service_role (obchádza RLS, admin prístup). Použi service_role pre serverové integrácie a anon pre klientské.

Autentifikácia

Supabase používa autentifikáciu pomocou API kľúčov. Každá požiadavka vyžaduje hlavičku apikey a voliteľne Bearer token Authorization pre prístup v rozsahu používateľa.

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ácia

Základné nastavenie

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

Mapovanie polí

Namapuj stĺpce tabuľky Supabase na atribúty platformy:

Predvolené mapovania používateľov

Parameter Type Description
email required
string

E-mail používateľa zo Supabase Auth (unikátny identifikátor)

phone optional
string

Telefónne číslo pre SMS/WhatsApp zapojenie

user_metadata.full_name optional
string

Zobrazované meno z metadát Auth používateľa

user_metadata.avatar_url optional
string

URL profilového obrázka

created_at optional
timestamp

Časová pečiatka vytvorenia účtu

last_sign_in_at optional
timestamp

Posledné prihlásenie pre skórovanie zapojenia

app_metadata.provider optional
string

Poskytovateľ autentifikácie (email, google, github atď.)

confirmed_at optional
timestamp

Časová pečiatka potvrdenia e-mailu

Mapovanie vlastných tabuliek

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 endpointy

REST API Supabase je automaticky generované zo schémy tvojej databázy na https://<ref>.supabase.co/rest/v1/.

EndpointMetódaPopis
/rest/v1/{table}GETDopyt na riadky s filtrovaním, triedením, stránkovaním
/rest/v1/{table}POSTVloženie riadkov (podporuje hromadné a upsert)
/rest/v1/{table}PATCHAktualizácia riadkov zodpovedajúcich filtrám
/rest/v1/{table}DELETEOdstránenie riadkov zodpovedajúcich filtrám
/rest/v1/rpc/{function}POSTVolanie Postgres funkcie
/auth/v1/signupPOSTVytvorenie nového používateľa
/auth/v1/token?grant_type=passwordPOSTPrihlásenie heslom
/auth/v1/userGETZískanie aktuálneho používateľa
/auth/v1/admin/usersGETZoznam všetkých používateľov (service_role)
/storage/v1/object/{bucket}/{path}POSTNahranie súboru
/storage/v1/object/list/{bucket}POSTZoznam súborov v buckete
/functions/v1/{function_name}POSTSpustenie Edge Function

Filtračné operátory

OperátorPopisPríklad
eqRovná sa?status=eq.active
neqNerovná sa?status=neq.deleted
gt, gteVäčší ako?amount=gt.100
lt, lteMenší ako?created_at=lt.2024-01-01
like, ilikeZhoda vzoru?name=ilike.%john%
inV poli?status=in.(active,trial)
isKontrola null?deleted_at=is.null

Udalosti

Auth udalosti

UdalosťTriggerPrípad použitia
user.signed_upRegistrácia nového používateľaUvítacia séria
user.signed_inPrihlásenie používateľaSledovanie aktivity
user.updatedZmeny profiluSynchronizácia dát
user.deletedZmazanie účtuČistiace workflowy

Databázové udalosti (Realtime)

UdalosťTriggerPrípad použitia
INSERTPridaný nový riadokNotifikácie o novej objednávke/zákazníkovi
UPDATEUpravený riadokWorkflowy zmeny stavu
DELETEOdstránený riadokDetekcia odchodu

Webhookové udalosti

UdalosťTriggerPrípad použitia
auth.user.createdRegistrácia používateľa cez webhookSpustenie onboardingu
storage.object.createdNahraný súborSpracovanie prostriedkov

Ukážky kódu

Inicializácia konektora

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

Synchronizácia používateľov do kontaktov

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

Počúvanie zmien v reálnom čase

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

Dopyt a segmentácia

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

Obmedzenia rýchlosti

Limity rýchlosti API

Limity rýchlosti Supabase závisí od tvojho plánu. Free tier: 500 požiadaviek/minútu. Pro: 1 000 požiadaviek/sekundu. Pre Enterprise limity kontaktuj Supabase.

PlánLimit rýchlostiRealtime pripojenia
Free500 požiadaviek/min200 súbežných
Pro1 000 požiadaviek/sek500 súbežných
Team2 000 požiadaviek/sek1 000 súbežných
EnterpriseVlastnéVlastné

Riešenie problémov

Bežné problémy

ProblémPríčinaRiešenie
401 UnauthorizedNeplatný alebo vypršaný API kľúčSkontroluj API kľúče v Supabase Dashboard → Settings → API
403 ForbiddenRLS politika blokuje prístupPouži kľúč service_role pre admin operácie alebo skontroluj RLS politiky
Žiadne realtime udalostiRealtime nie je povolené pre tabuľkuPovol v Database → Replication → pridaj tabuľku do publikácie
Prázdne výsledky dopytuRLS filtruje všetky riadkyOverte RLS politiky, ktoré umožňujú autentifikovanej roli čítať
Nahranie do úložiska zlyhaloPolitiky bucketuSkontroluj, či je Storage bucket verejný alebo má správne RLS politiky

Debug režim

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

Test pripojenia

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)

Odporúčané postupy

  1. Použi kľúč service_role iba na strane servera, Nikdy ho nevystavuj v klientskom kóde
  2. Povol RLS na všetkých tabuľkách, Aj s service_role navrhuj s RLS pre hĺbkovú obranu
  3. Použi Realtime pre synchronizáciu riadenú udalosťami, Efektívnejšie ako polling zmien
  4. Dávkové operácie, Použi hromadné vkladanie a filter in pre operácie s vysokým objemom
  5. Mapuj metadáta používateľa, Uchovávaj polia relevantné pre zapojenie v user_metadata počas registrácie
  6. Použi Edge Functions pre webhooky, Spracovávaj prichádzajúce webhooky cez Supabase Edge Functions pre nízku latenciu

Bezpečnosť

  • Autentifikácia API kľúčom, Všetky požiadavky vyžadujú platné API kľúče
  • Row Level Security (RLS), Natívna kontrola prístupu Postgres na úrovni riadku
  • Overenie JWT, Auth tokeny sú podpísané JWT overené pri každej požiadavke
  • SSL/TLS, Všetky pripojenia šifrované pri prenose
  • SOC 2 Type II, Supabase je SOC 2 certifikovaný
  • Sieťové obmedzenia, Voliteľné IP allowlisting v platených plánoch

Súvisiace zdroje

Subscribe to updates

developer-docs

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

auto-detect
AI asistent

Ahoj! Opýtajte sa ma na dokumentáciu.