---
title: "Conector Supabase"
description: "Ghid complet de integrare Supabase pentru sincronizarea înregistrărilor din baza de date, autentificarea utilizatorilor, stocarea fișierelor și evenimentele în timp real cu platforma de implicare a clienților."
url: https://tajo.io/ro/docs/connectors/custom/supabase/
markdown: https://tajo.io/ro/docs/connectors/custom/supabase.md
lang: ro-RO
robots: noindex
---

Solicită acces anticipat

Introduceți prenumele și adresa de e-mail profesională. Vă vom trimite un link pentru a confirma cererea de acces la Tajo.

# Conector Supabase

Starea conectorului: Planificat Încă neconstruit. Tajo nu rulează astăzi acest conector.

| Câmp sursă | Câmp destinație | Valoare exemplu |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Conectați proiectul Supabase pentru a sincroniza înregistrările din baza de date, datele de autentificare a utilizatorilor, evenimentele de stocare a fișierelor și modificările în timp real pentru automatizarea implicării clienților.

## Prezentare generală

| Proprietate | Valoare |
| --- | --- |
| **Platformă** | Supabase |
| **Categorie** | Bază de date și Backend |
| **Complexitate configurare** | Ușoară |
| **Integrare oficială** | Nu |
| **Date sincronizate** | Utilizatori, Tabele, Stocare, Evenimente |
| **Skilluri disponibile** | 11 |
| **Tip API** | REST (PostgREST) + WebSocket în timp real |
| **Documentație oficială** | [supabase.com/docs](https://supabase.com/docs) |

## Funcționalități

- **REST API auto-generat** - Operații CRUD pe orice tabelă Postgres prin PostgREST, fără cod necesar
- **Sincronizare utilizatori Auth** - Sincronizați utilizatorii Supabase Auth (email, telefon, conectări sociale) cu platforma de implicare
- **Abonamente în timp real** - Ascultați evenimentele INSERT, UPDATE, DELETE pe orice tabelă în timp real
- **Securitate la nivel de rând** - Toate accesele API respectă politicile RLS Postgres pentru date multi-tenant securizate
- **Integrare stocare** - Urmăriți încărcările de fișiere și gestionați resursele în bucket-uri Storage
- **Funcții Edge** - Invocați funcții Deno serverless pentru logică personalizată și webhook-uri
- **Căutare full-text** - Valorificați capacitățile de căutare full-text Postgres prin API

## Cerințe preliminare

Înainte de a începe, asigurați-vă că aveți:

1. Un proiect Supabase ([app.supabase.com](https://app.supabase.com/))
2. **URL-ul API** și **cheile API** ale proiectului (găsite în Settings → API)
3. Un cont Tajo cu acces API

Chei API

Supabase oferă două chei: `anon` (publică, respectă RLS) și `service_role` (ocolește RLS, acces admin). Utilizați `service_role` pentru integrările server-side și `anon` pentru cele client-side.

## Autentificare

Supabase utilizează autentificarea cu cheie API. Fiecare cerere necesită antetul `apikey` și opțional un token Bearer `Authorization` pentru acces cu scope de utilizator.

```bash
# 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>"
```

## Configurare

### Configurare de bază

```yaml
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
```

### Mapare câmpuri

Mapați coloanele tabelelor Supabase la atributele platformei de implicare:

#### Mapări implicite utilizatori

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | E-mailul utilizatorului din Supabase Auth (identificator unic) |
| `phone` optional | string | Numărul de telefon pentru implicare prin SMS/WhatsApp |
| `user_metadata.full_name` optional | string | Numele de afișare din metadatele utilizatorului Auth |
| `user_metadata.avatar_url` optional | string | URL-ul imaginii de profil |
| `created_at` optional | timestamp | Marca temporală a creării contului |
| `last_sign_in_at` optional | timestamp | Cea mai recentă autentificare pentru scorarea implicării |
| `app_metadata.provider` optional | string | Furnizorul de autentificare (email, google, github, etc.) |
| `confirmed_at` optional | timestamp | Marca temporală a confirmării e-mailului |

#### Mapare tabelă personalizată

```yaml
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
```

## Puncte finale API

REST API Supabase este auto-generat din schema bazei de date la `https://<ref>.supabase.co/rest/v1/`.

| Punct final | Metodă | Descriere |
| --- | --- | --- |
| `/rest/v1/{table}` | `GET` | Interogați rânduri cu filtrare, ordonare, paginare |
| `/rest/v1/{table}` | `POST` | Inserați rânduri (suportă bulk și upsert) |
| `/rest/v1/{table}` | `PATCH` | Actualizați rânduri care corespund filtrelor |
| `/rest/v1/{table}` | `DELETE` | Ștergeți rânduri care corespund filtrelor |
| `/rest/v1/rpc/{function}` | `POST` | Apelați o funcție Postgres |
| `/auth/v1/signup` | `POST` | Creați un utilizator nou |
| `/auth/v1/token?grant_type=password` | `POST` | Autentificare cu parolă |
| `/auth/v1/user` | `GET` | Obțineți utilizatorul curent |
| `/auth/v1/admin/users` | `GET` | Listați toți utilizatorii (service\_role) |
| `/storage/v1/object/{bucket}/{path}` | `POST` | Încărcați fișier |
| `/storage/v1/object/list/{bucket}` | `POST` | Listați fișierele din bucket |
| `/functions/v1/{function_name}` | `POST` | Invocați o funcție Edge |

### Operatori de filtrare

| Operator | Descriere | Exemplu |
| --- | --- | --- |
| `eq` | Egal | `?status=eq.active` |
| `neq` | Diferit | `?status=neq.deleted` |
| `gt`, `gte` | Mai mare decât | `?amount=gt.100` |
| `lt`, `lte` | Mai mic decât | `?created_at=lt.2024-01-01` |
| `like`, `ilike` | Potrivire șablon | `?name=ilike.%john%` |
| `in` | În tablou | `?status=in.(active,trial)` |
| `is` | Verificare null | `?deleted_at=is.null` |

## Evenimente

### Evenimente Auth

| Eveniment | Declanșator | Caz de utilizare |
| --- | --- | --- |
| `user.signed_up` | Înregistrare utilizator nou | Serie de bun venit |
| `user.signed_in` | Autentificare utilizator | Urmărire activitate |
| `user.updated` | Modificări profil | Sincronizare date |
| `user.deleted` | Ștergere cont | Fluxuri de lucru de curățare |

### Evenimente bază de date (Timp real)

| Eveniment | Declanșator | Caz de utilizare |
| --- | --- | --- |
| `INSERT` | Rând nou adăugat | Notificări comandă/client nou |
| `UPDATE` | Rând modificat | Fluxuri de lucru de modificare status |
| `DELETE` | Rând eliminat | Detectare churn |

### Evenimente Webhook

| Eveniment | Declanșator | Caz de utilizare |
| --- | --- | --- |
| `auth.user.created` | Înregistrare utilizator prin webhook | Declanșare onboarding |
| `storage.object.created` | Fișier încărcat | Procesare resurse |

## Exemple de cod

### Inițializare conector

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

### Sincronizare utilizatori ca contacte

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

### Ascultare modificări în timp real

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

### Interogare și segmentare

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

## Limite de rată

Limite de rată API

Limitele de rată Supabase depind de planul dvs. Nivel gratuit: 500 cereri/minut. Pro: 1.000 cereri/secundă. Contactați Supabase pentru limitele Enterprise.

| Plan | Limită de rată | Conexiuni în timp real |
| --- | --- | --- |
| Gratuit | 500 cereri/min | 200 concurente |
| Pro | 1.000 cereri/sec | 500 concurente |
| Team | 2.000 cereri/sec | 1.000 concurente |
| Enterprise | Personalizat | Personalizat |

## Depanare

### Probleme frecvente

| Problemă | Cauză | Soluție |
| --- | --- | --- |
| 401 Neautorizat | Cheie API invalidă sau expirată | Verificați cheile API în Supabase Dashboard → Settings → API |
| 403 Interzis | Politică RLS blochează accesul | Utilizați cheia `service_role` pentru operații admin sau verificați politicile RLS |
| Niciun eveniment în timp real | Realtime neactivat pentru tabelă | Activați în Database → Replication → adăugați tabela la publicație |
| Rezultate interogare goale | RLS filtrează toate rândurile | Verificați că politicile RLS permit rolului autentificat să citească |
| Încărcare stocare eșuată | Politici bucket | Verificați că bucket-ul Storage este public sau are politici RLS corecte |

### Modul de depanare

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

### Testare conexiune

```bash
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)
```

## Bune practici

1. **Utilizați cheia service\_role doar server-side** - Nu o expuneți niciodată în codul client
2. **Activați RLS pe toate tabelele** - Chiar și cu service\_role, proiectați cu RLS pentru apărare în profunzime
3. **Utilizați Realtime pentru sincronizare bazată pe evenimente** - Mai eficient decât polling-ul pentru modificări
4. **Grupați operațiile** - Utilizați inserții bulk și filtrul `in` pentru operații cu volum mare
5. **Mapați metadatele utilizatorului** - Stocați câmpurile relevante pentru implicare în `user_metadata` la înregistrare
6. **Utilizați Funcții Edge pentru webhook-uri** - Procesați webhook-urile primite cu Supabase Edge Functions pentru gestionare cu latență redusă

## Securitate

- **Autentificare cu cheie API** - Toate cererile necesită chei API valide
- **Securitate la nivel de rând (RLS)** - Control acces nativ Postgres per rând
- **Verificare JWT** - Token-urile de autentificare sunt JWT-uri semnate verificate la fiecare cerere
- **SSL/TLS** - Toate conexiunile criptate în tranzit
- **SOC 2 Tip II** - Supabase este conform SOC 2
- **Restricții de rețea** - Allowlisting IP opțional pe planurile plătite

## Resurse conexe

- [Conector Shopify](https://tajo.io/ro/docs/connectors/ecommerce/shopify)
- [Conector Stripe](https://tajo.io/ro/docs/connectors/ecommerce/stripe)
- [Conector Auth0](https://tajo.io/ro/docs/connectors/custom/auth0)
- [Documentație oficială Supabase](https://supabase.com/docs)
- [Ghid REST API Supabase](https://supabase.com/docs/guides/api)
- [Ghid Auth Supabase](https://supabase.com/docs/guides/auth)
