Supabase-koppling
Kopplingens status: Planerad Inte byggd än. Tajo kör inte den här kopplingen i dag.
Illustration · exempeldata
Exempel på synkronisering
Källa
Supabase
Kopplingens status: Planerad
Mål
Ditt andra verktyg
Kopplingens status: Eget verktyg
Fältmappning
| Källfält | Målfält | Exempelvärde |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Utkast
- Granska en post
- Godkänn den här versionen
Status gäller varje enskild koppling och garanterar inte att den här synkroniseringen är klar. Fälten är illustrativa. Kontrollera det faktiska schemat och behörigheterna innan synkronisering körs.
Anslut ditt Supabase-projekt för att synka databasposter, data för användarautentisering, fillagringshändelser och realtidsändringar för automation av kundengagemang.
Översikt
| Egenskap | Värde |
|---|---|
| Plattform | Supabase |
| Kategori | Databas & Backend |
| Installationskomplexitet | Enkel |
| Officiell integration | Nej |
| Data som synkas | Användare, tabeller, lagring, händelser |
| Tillgängliga skills | 11 |
| API-typ | REST (PostgREST) + Realtime WebSocket |
| Officiella dokument | supabase.com/docs |
Funktioner
- Autogenererat REST API, CRUD-operationer på vilken Postgres-tabell som helst via PostgREST, ingen kod krävs
- Synk av Auth-användare, Synka Supabase Auth-användare (e-post, telefon, sociala inloggningar) till din engagemangsplattform
- Realtidsprenumerationer, Lyssna på INSERT, UPDATE, DELETE-händelser på vilken tabell som helst i realtid
- Row Level Security, All API-åtkomst respekterar Postgres RLS-policyer för säker data med flera tenants
- Lagringsintegration, Spåra filuppladdningar och hantera tillgångar över Storage-buckets
- Edge Functions, Anropa serverlösa Deno-funktioner för anpassad logik och webhooks
- Fulltextsökning, Utnyttja Postgres fulltextsökningsfunktioner via API:et
Förutsättningar
Innan du börjar, se till att du har:
- Ett Supabase-projekt (app.supabase.com)
- Ditt projekts API-URL och API-nycklar (finns i Settings → API)
- Ett Tajo-konto med API-åtkomst
API-nycklar
Supabase tillhandahåller två nycklar: anon (publik, respekterar RLS) och service_role (kringgår RLS, adminåtkomst). Använd service_role för serversideintegrationer och anon för klientsida.
Autentisering
Supabase använder API-nyckelautentisering. Varje förfrågan kräver apikey-headern och valfritt en Authorization-bearer-token för användarscoped åtkomst.
# 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>"Konfiguration
Grundinställning
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_DATEFältmappning
Mappa Supabase-tabellkolumner till engagemangsplattformsattribut:
Standardmappningar för användare
| Parameter | Type | Description |
|---|---|---|
email required | string | Användarens e-post från Supabase Auth (unik identifierare) |
phone optional | string | Telefonnummer för SMS/WhatsApp-engagemang |
user_metadata.full_name optional | string | Visningsnamn från Auth-användarens metadata |
user_metadata.avatar_url optional | string | URL till profilbild |
created_at optional | timestamp | Tidsstämpel för kontoskapande |
last_sign_in_at optional | timestamp | Senaste inloggning för engagemangspoäng |
app_metadata.provider optional | string | Auth-leverantör (email, google, github, etc.) |
confirmed_at optional | timestamp | Tidsstämpel för e-postbekräftelse |
Mappning av anpassade tabeller
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_itemsAPI-endpoints
Supabase REST API genereras automatiskt från ditt databasschema på https://<ref>.supabase.co/rest/v1/.
| Endpoint | Metod | Beskrivning |
|---|---|---|
/rest/v1/{table} | GET | Fråga rader med filtrering, sortering, sidindelning |
/rest/v1/{table} | POST | Infoga rader (stöder bulk och upsert) |
/rest/v1/{table} | PATCH | Uppdatera rader som matchar filter |
/rest/v1/{table} | DELETE | Radera rader som matchar filter |
/rest/v1/rpc/{function} | POST | Anropa en Postgres-funktion |
/auth/v1/signup | POST | Skapa en ny användare |
/auth/v1/token?grant_type=password | POST | Logga in med lösenord |
/auth/v1/user | GET | Hämta aktuell användare |
/auth/v1/admin/users | GET | Lista alla användare (service_role) |
/storage/v1/object/{bucket}/{path} | POST | Ladda upp fil |
/storage/v1/object/list/{bucket} | POST | Lista filer i bucket |
/functions/v1/{function_name} | POST | Anropa Edge Function |
Filtreringsoperatorer
| Operator | Beskrivning | Exempel |
|---|---|---|
eq | Lika med | ?status=eq.active |
neq | Inte lika med | ?status=neq.deleted |
gt, gte | Större än | ?amount=gt.100 |
lt, lte | Mindre än | ?created_at=lt.2024-01-01 |
like, ilike | Mönstermatchning | ?name=ilike.%john% |
in | I array | ?status=in.(active,trial) |
is | Null-kontroll | ?deleted_at=is.null |
Händelser
Auth-händelser
| Händelse | Utlösare | Användningsfall |
|---|---|---|
user.signed_up | Ny användarregistrering | Välkomstserie |
user.signed_in | Användarinloggning | Aktivitetsspårning |
user.updated | Profiländringar | Datasynk |
user.deleted | Kontoradering | Rensningsarbetsflöden |
Databashändelser (Realtime)
| Händelse | Utlösare | Användningsfall |
|---|---|---|
INSERT | Ny rad tillagd | Notifieringar för ny beställning/kund |
UPDATE | Rad ändrad | Arbetsflöden för statusändring |
DELETE | Rad borttagen | Churnupptäckt |
Webhook-händelser
| Händelse | Utlösare | Användningsfall |
|---|---|---|
auth.user.created | Användarregistrering via webhook | Utlös onboarding |
storage.object.created | Fil uppladdad | Tillgångsbearbetning |
Kodexempel
Initiera kopplingen
import { TajoClient } from '@tajo/sdk';import { createClient } from '@supabase/supabase-js';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY,});
// Connect Supabase projectawait tajo.connectors.connect('supabase', { projectUrl: process.env.SUPABASE_URL, serviceRoleKey: process.env.SUPABASE_SERVICE_ROLE_KEY,});Synka användare till kontakter
// Sync all Supabase Auth users as contactsawait 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',});Lyssna på realtidsändringar
// Subscribe to new orders for engagement triggersconst 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();Fråga och segmentera
// Query customers by plan for targeted campaignsconst { 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 targetingawait tajo.lists.addContacts(PRO_LIST_ID, proUsers);Hastighetsbegränsningar
API-hastighetsbegränsningar
Supabases hastighetsbegränsningar beror på din plan. Free tier: 500 förfrågningar/minut. Pro: 1 000 förfrågningar/sekund. Kontakta Supabase för Enterprise-gränser.
| Plan | Hastighetsbegränsning | Realtidsanslutningar |
|---|---|---|
| Free | 500 förfrågningar/min | 200 samtidiga |
| Pro | 1 000 förfrågningar/sek | 500 samtidiga |
| Team | 2 000 förfrågningar/sek | 1 000 samtidiga |
| Enterprise | Anpassad | Anpassad |
Felsökning
Vanliga problem
| Problem | Orsak | Lösning |
|---|---|---|
| 401 Unauthorized | Ogiltig eller utgången API-nyckel | Kontrollera API-nycklar i Supabase Dashboard → Settings → API |
| 403 Forbidden | RLS-policy blockerar åtkomst | Använd service_role-nyckel för adminoperationer, eller kontrollera RLS-policyer |
| Inga realtidshändelser | Realtime ej aktiverat för tabell | Aktivera i Database → Replication → lägg till tabell i publikation |
| Tomma frågeresultat | RLS filtrerar bort alla rader | Verifiera att RLS-policyer tillåter den autentiserade rollen att läsa |
| Lagringsuppladdning misslyckas | Bucket-policyer | Kontrollera att Storage-bucket är satt till publik eller har korrekta RLS-policyer |
Felsökningsläge
connectors: supabase: debug: true log_level: verbose log_queries: true log_realtime: trueTesta anslutning
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)Bästa praxis
- Använd service_role-nyckel endast på serversidan, Exponera den aldrig i klientkod
- Aktivera RLS på alla tabeller, Även med service_role, designa med RLS för djupförsvar
- Använd Realtime för händelsedriven synk, Mer effektivt än polling efter ändringar
- Batcha operationer, Använd bulk-insättningar och
in-filtret för operationer med stor volym - Mappa användarmetadata, Lagra engagemangsrelevanta fält i
user_metadatavid registrering - Använd Edge Functions för webhooks, Behandla inkommande webhooks med Supabase Edge Functions för låg latens
Säkerhet
- API-nyckelautentisering, Alla förfrågningar kräver giltiga API-nycklar
- Row Level Security (RLS), Postgres-nativ åtkomstkontroll per rad
- JWT-verifiering, Auth-tokens är signerade JWT:er som verifieras vid varje förfrågan
- SSL/TLS, Alla anslutningar krypterade i transit
- SOC 2 Type II, Supabase är SOC 2-kompatibel
- Nätverksbegränsningar, Valfri IP-allowlisting på betalplaner