---
title: "Supabase Konektor"
description: "Kompletan vodič za integraciju Supabazea za sinkronizaciju zapisa baze podataka, korisničke autentifikacije, pohrane datoteka i događaja u stvarnom vremenu s vašom platformom za angažman."
url: https://tajo.io/hr/docs/connectors/custom/supabase/
markdown: https://tajo.io/hr/docs/connectors/custom/supabase.md
lang: hr-HR
robots: noindex
---

Zatražite rani pristup

Unesite ime i poslovnu adresu e-pošte. Poslat ćemo vam poveznicu za potvrdu zahtjeva za pristup Taju.

# Supabase Konektor

Status konektora: Planirano Još nije izrađeno. Tajo danas ne pokreće ovaj konektor.

| Izvorno polje | Odredišno polje | Primjer vrijednosti |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Povežite svoj Supabase projekt za sinkronizaciju zapisa baze podataka, korisničkih podataka autentifikacije, događaja pohrane datoteka i promjena u stvarnom vremenu za automatizaciju angažmana s klijentima.

## Pregled

| Svojstvo | Vrijednost |
| --- | --- |
| **Platforma** | Supabase |
| **Kategorija** | Baza podataka i Backend |
| **Složenost postavljanja** | Jednostavno |
| **Službena integracija** | Ne |
| **Sinkronizirani podaci** | Korisnici, Tablice, Pohrana, Događaji |
| **Dostupne vještine** | 11 |
| **Vrsta API-ja** | REST (PostgREST) + Realtime WebSocket |
| **Službena dokumentacija** | [supabase.com/docs](https://supabase.com/docs) |

## Značajke

- **Automatski generirani REST API**, CRUD operacije na bilo kojoj Postgres tablici putem PostgREST, bez koda
- **Sinkronizacija Auth korisnika**, Sinkronizacija Supabase Auth korisnika (e-mail, telefon, socijalne prijave) na vašu platformu za angažman
- **Pretplate u stvarnom vremenu**, Slušajte INSERT, UPDATE, DELETE događaje na bilo kojoj tablici u stvarnom vremenu
- **Sigurnost na razini reda**, Sav API pristup poštuje Postgres RLS politike za sigurne višestanarne podatke
- **Integracija pohrane**, Pratite učitavanja datoteka i upravljajte resursima kroz Storage buckete
- **Edge funkcije**, Pozivajte serverless Deno funkcije za prilagođenu logiku i webhookove
- **Pretraživanje cijelog teksta**, Iskoristite Postgres mogućnosti pretraživanja cijelog teksta putem API-ja

## Preduvjeti

Prije nego što počnete, osigurajte da imate:

1. Supabase projekt ([app.supabase.com](https://app.supabase.com/))
2. Vaš projektni **API URL** i **API ključevi** (pronađeni u Postavke → API)
3. Tajo račun s API pristupom

API ključevi

Supabase pruža dva ključa: `anon` (javni, poštuje RLS) i `service_role` (zaobilazi RLS, administratorski pristup). Koristite `service_role` za integracije na strani servera i `anon` za integracije na strani klijenta.

## Autentifikacija

Supabase koristi autentifikaciju API ključem. Svaki zahtjev zahtijeva zaglavlje `apikey` i opcionalno `Authorization` bearer token za pristup ograničen na korisnika.

```bash
# Korištenje anon ključa (poštuje RLS)
curl 'https://<project_ref>.supabase.co/rest/v1/customers' \
  -H "apikey: <SUPABASE_ANON_KEY>" \
  -H "Authorization: Bearer <SUPABASE_ANON_KEY>"

# Korištenje service_role ključa (zaobilazi RLS)
curl 'https://<project_ref>.supabase.co/rest/v1/customers' \
  -H "apikey: <SUPABASE_SERVICE_ROLE_KEY>" \
  -H "Authorization: Bearer <SUPABASE_SERVICE_ROLE_KEY>"
```

## Konfiguracija

### Osnovna konfiguracija

```yaml
connectors:
  supabase:
    enabled: true
    project_url: "https://xyzcompany.supabase.co"
    api_key: "${SUPABASE_SERVICE_ROLE_KEY}"

    # Opcije sinkronizacije podataka
    sync:
      users: true
      tables:
        - customers
        - orders
        - products
      storage: true
      realtime: true

    # Mapiranje Supabase Auth korisnika na kontakte
    user_mapping:
      email: email
      phone: SMS
      user_metadata.full_name: FIRSTNAME
      created_at: SIGNUP_DATE
```

### Mapiranje polja

Mapirajte stupce Supabase tablice na atribute platforme za angažman:

#### Zadana mapiranja korisnika

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Korisnikov e-mail iz Supabase Auth (jedinstveni identifikator) |
| `phone` optional | string | Broj telefona za SMS/WhatsApp angažman |
| `user_metadata.full_name` optional | string | Prikazno ime iz Auth korisničkih metapodataka |
| `user_metadata.avatar_url` optional | string | URL profilne slike |
| `created_at` optional | timestamp | Vremenska oznaka kreiranja računa |
| `last_sign_in_at` optional | timestamp | Najnovija prijava za ocjenjivanje angažmana |
| `app_metadata.provider` optional | string | Davatelj autentifikacije (email, google, github, itd.) |
| `confirmed_at` optional | timestamp | Vremenska oznaka potvrde e-maila |

#### Mapiranje prilagođenih tablica

```yaml
table_mapping:
  customers:
    # Mapiranje Stupac → Atribut
    email: email
    full_name: FIRSTNAME
    company: COMPANY
    plan: SUBSCRIPTION_PLAN
    mrr: MONTHLY_REVENUE
    created_at: SIGNUP_DATE

  orders:
    # Pratite kao događaje
    sync_as: events
    event_name: "order_placed"
    properties:
      total: amount
      status: order_status
      items: line_items
```

## API krajnje točke

Supabase REST API automatski se generira iz vaše sheme baze podataka na `https://<ref>.supabase.co/rest/v1/`.

| Krajnja točka | Metoda | Opis |
| --- | --- | --- |
| `/rest/v1/{table}` | `GET` | Upitajte redove s filtriranjem, sortiranjem, paginacijom |
| `/rest/v1/{table}` | `POST` | Umetnite redove (podržava skupno i upsert) |
| `/rest/v1/{table}` | `PATCH` | Ažurirajte redove koji odgovaraju filterima |
| `/rest/v1/{table}` | `DELETE` | Izbrišite redove koji odgovaraju filterima |
| `/rest/v1/rpc/{function}` | `POST` | Pozovite Postgres funkciju |
| `/auth/v1/signup` | `POST` | Kreirajte novog korisnika |
| `/auth/v1/token?grant_type=password` | `POST` | Prijavite se s lozinkom |
| `/auth/v1/user` | `GET` | Dohvatite trenutnog korisnika |
| `/auth/v1/admin/users` | `GET` | Popis svih korisnika (service\_role) |
| `/storage/v1/object/{bucket}/{path}` | `POST` | Učitajte datoteku |
| `/storage/v1/object/list/{bucket}` | `POST` | Popis datoteka u bucketu |
| `/functions/v1/{function_name}` | `POST` | Pozovite Edge funkciju |

### Operatori filtriranja

| Operator | Opis | Primjer |
| --- | --- | --- |
| `eq` | Jednako | `?status=eq.active` |
| `neq` | Nije jednako | `?status=neq.deleted` |
| `gt`, `gte` | Veće od | `?amount=gt.100` |
| `lt`, `lte` | Manje od | `?created_at=lt.2024-01-01` |
| `like`, `ilike` | Podudaranje uzorka | `?name=ilike.%john%` |
| `in` | U nizu | `?status=in.(active,trial)` |
| `is` | Provjera null | `?deleted_at=is.null` |

## Događaji

### Auth događaji

| Događaj | Okidač | Slučaj upotrebe |
| --- | --- | --- |
| `user.signed_up` | Nova registracija korisnika | Serija dobrodošlice |
| `user.signed_in` | Prijava korisnika | Praćenje aktivnosti |
| `user.updated` | Promjena profila | Sinkronizacija podataka |
| `user.deleted` | Brisanje računa | Tijekovi rada čišćenja |

### Događaji baze podataka (Realtime)

| Događaj | Okidač | Slučaj upotrebe |
| --- | --- | --- |
| `INSERT` | Dodan novi red | Obavijesti o novoj narudžbi/korisniku |
| `UPDATE` | Izmijenjen red | Tijekovi rada promjene statusa |
| `DELETE` | Uklonjen red | Otkrivanje odljeva |

### Webhook događaji

| Događaj | Okidač | Slučaj upotrebe |
| --- | --- | --- |
| `auth.user.created` | Registracija korisnika putem webhookova | Pokretanje onboardinga |
| `storage.object.created` | Učitana datoteka | Obrada resursa |

## Primjeri koda

### Inicijalizacija konektora

```javascript
import { TajoClient } from '@tajo/sdk';
import { createClient } from '@supabase/supabase-js';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
});

// Povežite Supabase projekt
await tajo.connectors.connect('supabase', {
  projectUrl: process.env.SUPABASE_URL,
  serviceRoleKey: process.env.SUPABASE_SERVICE_ROLE_KEY,
});
```

### Sinkronizacija korisnika s kontaktima

```javascript
// Sinkronizacija svih Supabase Auth korisnika kao kontakata
await tajo.connectors.sync('supabase', {
  type: 'full',
  resources: ['users'],
});

// Inkrementalna sinkronizacija (samo novi/promijenjeni korisnici)
await tajo.connectors.sync('supabase', {
  type: 'incremental',
  resources: ['users'],
  since: '2024-01-01T00:00:00Z',
});
```

### Slušanje promjena u stvarnom vremenu

```javascript
// Pretplatite se na nove narudžbe za okidače angažmana
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) => {
      // Proslijedite Taju kao događaj
      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();
```

### Upit i segmentacija

```javascript
// Upitajte korisnike prema planu za ciljane kampanje
const { data: proUsers } = await supabase
  .from('customers')
  .select('email, full_name, plan, mrr')
  .eq('plan', 'pro')
  .gt('mrr', 100)
  .order('mrr', { ascending: false });

// Sinkronizacija na Brevo popis za ciljanje kampanje
await tajo.lists.addContacts(PRO_LIST_ID, proUsers);
```

## Ograničenja brzine

Ograničenja brzine API-ja

Supabase ograničenja brzine ovise o vašem planu. Besplatni plan: 500 zahtjeva/minuta. Pro: 1.000 zahtjeva/sekundi. Kontaktirajte Supabase za Enterprise ograničenja.

| Plan | Ograničenje brzine | Realtime veze |
| --- | --- | --- |
| Besplatno | 500 zah./min | 200 istovremeno |
| Pro | 1.000 zah./s | 500 istovremeno |
| Tim | 2.000 zah./s | 1.000 istovremeno |
| Enterprise | Prilagođeno | Prilagođeno |

## Rješavanje problema

### Uobičajeni problemi

| Problem | Uzrok | Rješenje |
| --- | --- | --- |
| 401 Unauthorized | Nevažeći ili istekli API ključ | Provjerite API ključeve u Supabase Dashboard → Postavke → API |
| 403 Forbidden | RLS politika blokira pristup | Koristite `service_role` ključ za administratorske operacije ili provjerite RLS politike |
| Nema realtime događaja | Realtime nije omogućen za tablicu | Omogućite u Database → Replication → dodajte tablicu u publikaciju |
| Prazni rezultati upita | RLS filtrira sve redove | Verificirajte da RLS politike dopuštaju autenticiranoj ulozi čitanje |
| Učitavanje pohrane neuspješno | Politike bucketa | Provjerite je li Storage bucket javni ili ima ispravne RLS politike |

### Način otklanjanja grešaka

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

### Testiranje veze

```bash
tajo connectors test supabase
# ✓ API veza uspješna
# ✓ Auth krajnja točka dostupna
# ✓ Tablice čitljive (pronađeno 12 tablica)
# ✓ Pohrana dostupna (3 bucketa)
# ✓ Realtime veza uspostavljena
# ✓ Edge funkcije dostupne (4 funkcije)
```

## Preporučene prakse

1. **Koristite service\_role ključ samo na strani servera** - Nikada ga ne izlažite u klijentskom kodu
2. **Omogućite RLS na svim tablicama** - Čak i uz service\_role, dizajnirajte s RLS-om za obranu u dubini
3. **Koristite Realtime za sinkronizaciju vođenu događajima** - Učinkovitije od anketiranja za promjene
4. **Skupne operacije** - Koristite skupno umetanje i `in` filtar za viskovoluenske operacije
5. **Mapirajte korisničke metapodatke** - Pohranite relevantna polja za angažman u `user_metadata` tijekom registracije
6. **Koristite Edge funkcije za webhookove** - Obradite dolazne webhookove s Supabase Edge funkcijama za rukovanje s niskom latencijom

## Sigurnost

- **Autentifikacija API ključem** - Svi zahtjevi zahtijevaju valjane API ključeve
- **Sigurnost na razini reda (RLS)** - Postgres-nativna kontrola pristupa po redu
- **JWT verifikacija** - Auth tokeni su potpisani JWT-ovi verificirani na svakom zahtjevu
- **SSL/TLS** - Sve veze šifrirane u prijenosu
- **SOC 2 Type II** - Supabase je SOC 2 usklađen
- **Mrežna ograničenja** - Opcionalno IP dodavanje na popis dopuštenih na plaćenim planovima

## Povezani resursi

- [Shopify Konektor](https://tajo.io/hr/docs/connectors/ecommerce/shopify)
- [Stripe Konektor](https://tajo.io/hr/docs/connectors/ecommerce/stripe)
- [Auth0 Konektor](https://tajo.io/hr/docs/connectors/custom/auth0)
- [Supabase službena dokumentacija](https://supabase.com/docs)
- [Supabase vodič za REST API](https://supabase.com/docs/guides/api)
- [Supabase vodič za Auth](https://supabase.com/docs/guides/auth)
