---
title: "Supabase конектор"
description: "Пълно ръководство за интеграция със Supabase за синхронизация на записи в базата данни, потребителска автентикация, файлово съхранение и събития в реално време с твоята ангажираща платформа."
url: https://tajo.io/bg/docs/connectors/custom/supabase/
markdown: https://tajo.io/bg/docs/connectors/custom/supabase.md
lang: bg-BG
robots: noindex
---

Заявете ранен достъп

Въведете собственото си име и служебен имейл адрес. Ще ви изпратим връзка за потвърждение на заявката за достъп до Tajo.

# Supabase конектор

Статус на конектора: Планиран Все още не е изграден. Tajo не изпълнява този конектор днес.

| Поле източник | Целево поле | Примерна стойност |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Свържи своя проект в Supabase, за да синхронизираш записи от базата данни, данни за потребителска автентикация, събития от file storage и промени в реално време за автоматизация на ангажирането на клиентите.

## Преглед

| Свойство | Стойност |
| --- | --- |
| **Платформа** | Supabase |
| **Категория** | Database & Backend |
| **Сложност на настройка** | Лесна |
| **Официална интеграция** | Не |
| **Синхронизирани данни** | Потребители, таблици, Storage, събития |
| **Налични скилове** | 11 |
| **Тип на API** | REST (PostgREST) + Realtime WebSocket |
| **Официална документация** | [supabase.com/docs](https://supabase.com/docs) |

## Функции

- **Автоматично генериран REST API**, CRUD операции върху всяка Postgres таблица чрез PostgREST, без код
- **Синхронизация на Auth потребители**, Синхронизирай Supabase Auth потребителите (имейл, телефон, social logins) към твоята ангажираща платформа
- **Абонаменти в реално време**, Слушай INSERT, UPDATE, DELETE събития върху всяка таблица в реално време
- **Row Level Security**, Целият API достъп спазва Postgres RLS политиките за сигурни multi-tenant данни
- **Интеграция със Storage**, Проследявай качвания на файлове и управлявай активи в Storage bucket-ите
- **Edge Functions**, Извиквай serverless Deno функции за персонализирана логика и уебхуци
- **Full-text search**, Използвай възможностите за full-text търсене на Postgres през API

## Предварителни условия

Преди да започнеш, увери се, че имаш:

1. Проект в Supabase ([app.supabase.com](https://app.supabase.com/))
2. **API URL** и **API ключовете** на проекта (намират се в Settings → API)
3. Акаунт в Tajo с API достъп

API ключове

Supabase предоставя два ключа: `anon` (публичен, спазва RLS) и `service_role` (заобикаля RLS, администраторски достъп). Използвай `service_role` за server-side интеграции и `anon` за client-side.

## Автентикация

Supabase използва автентикация с API ключ. Всяка заявка изисква хедъра `apikey` и опционално `Authorization` bearer token за достъп на ниво потребител.

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

## Конфигурация

### Основна настройка

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

### Мапване на полета

Мапвай колони от Supabase таблици към атрибути на ангажиращата платформа:

#### Мапвания по подразбиране за потребители

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Имейл на потребителя от Supabase Auth (уникален идентификатор) |
| `phone` optional | string | Телефонен номер за SMS/WhatsApp ангажиране |
| `user_metadata.full_name` optional | string | Display име от Auth user metadata |
| `user_metadata.avatar_url` optional | string | URL на профилното изображение |
| `created_at` optional | timestamp | Timestamp на създаване на акаунта |
| `last_sign_in_at` optional | timestamp | Последен login за engagement scoring |
| `app_metadata.provider` optional | string | Auth доставчик (email, google, github и др.) |
| `confirmed_at` optional | timestamp | Timestamp на потвърждение на имейла |

#### Мапване на персонализирани таблици

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

## API крайни точки

Supabase REST API се генерира автоматично от схемата на базата ти на `https://<ref>.supabase.co/rest/v1/`.

| Крайна точка | Метод | Описание |
| --- | --- | --- |
| `/rest/v1/{table}` | `GET` | Заявка за редове с филтриране, сортиране, пагинация |
| `/rest/v1/{table}` | `POST` | Вмъкване на редове (поддържа bulk и upsert) |
| `/rest/v1/{table}` | `PATCH` | Обновяване на редове, съвпадащи с филтрите |
| `/rest/v1/{table}` | `DELETE` | Изтриване на редове, съвпадащи с филтрите |
| `/rest/v1/rpc/{function}` | `POST` | Извикване на Postgres функция |
| `/auth/v1/signup` | `POST` | Създаване на нов потребител |
| `/auth/v1/token?grant_type=password` | `POST` | Влизане с парола |
| `/auth/v1/user` | `GET` | Получаване на текущия потребител |
| `/auth/v1/admin/users` | `GET` | Списък с всички потребители (service\_role) |
| `/storage/v1/object/{bucket}/{path}` | `POST` | Качване на файл |
| `/storage/v1/object/list/{bucket}` | `POST` | Списък с файлове в bucket |
| `/functions/v1/{function_name}` | `POST` | Извикване на Edge Function |

### Оператори за филтриране

| Оператор | Описание | Пример |
| --- | --- | --- |
| `eq` | Равно | `?status=eq.active` |
| `neq` | Не равно | `?status=neq.deleted` |
| `gt`, `gte` | По-голямо от | `?amount=gt.100` |
| `lt`, `lte` | По-малко от | `?created_at=lt.2024-01-01` |
| `like`, `ilike` | Съвпадение по шаблон | `?name=ilike.%john%` |
| `in` | В масив | `?status=in.(active,trial)` |
| `is` | Проверка за null | `?deleted_at=is.null` |

## Събития

### Auth събития

| Събитие | Тригер | Случай на употреба |
| --- | --- | --- |
| `user.signed_up` | Регистрация на нов потребител | Welcome серия |
| `user.signed_in` | Потребителски login | Проследяване на активност |
| `user.updated` | Промени в профила | Синхронизация на данни |
| `user.deleted` | Изтриване на акаунт | Cleanup работни потоци |

### Събития от базата данни (Realtime)

| Събитие | Тригер | Случай на употреба |
| --- | --- | --- |
| `INSERT` | Добавен нов ред | Известия за нова поръчка/клиент |
| `UPDATE` | Модифициран ред | Работни потоци при промяна на статус |
| `DELETE` | Премахнат ред | Откриване на churn |

### Уебхук събития

| Събитие | Тригер | Случай на употреба |
| --- | --- | --- |
| `auth.user.created` | Потребителска регистрация чрез уебхук | Тригер на onboarding |
| `storage.object.created` | Качен файл | Обработка на актив |

## Примери с код

### Инициализация на конектора

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

### Синхронизация на потребители към контакти

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

### Слушане на промени в реално време

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

### Заявка и сегментиране

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

## Ограничения на заявките

API rate limits

Supabase rate limits зависят от плана. Free tier: 500 заявки/минута. Pro: 1 000 заявки/секунда. Свържи се със Supabase за Enterprise лимити.

| План | Rate limit | Realtime връзки |
| --- | --- | --- |
| Free | 500 заявки/мин | 200 едновременни |
| Pro | 1 000 заявки/сек | 500 едновременни |
| Team | 2 000 заявки/сек | 1 000 едновременни |
| Enterprise | Персонализиран | Персонализиран |

## Отстраняване на проблеми

### Чести проблеми

| Проблем | Причина | Решение |
| --- | --- | --- |
| 401 Unauthorized | Невалиден или изтекъл API ключ | Провери API ключовете в Supabase Dashboard → Settings → API |
| 403 Forbidden | RLS политика блокира достъпа | Използвай `service_role` ключ за администраторски операции или провери RLS политиките |
| Няма realtime събития | Realtime не е активиран за таблицата | Активирай от Database → Replication → добави таблицата към publication |
| Празни резултати от заявка | RLS филтрира всички редове | Провери дали RLS политиките позволяват на автентикираната роля да чете |
| Неуспешно качване в Storage | Политики на bucket-а | Провери дали Storage bucket е публичен или има правилни RLS политики |

### Режим за дебъг

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

### Тест на връзката

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

## Добри практики

1. **Използвай service\_role ключа само на сървъра**, Никога не го излагай в client код
2. **Активирай RLS на всички таблици**, Дори със service\_role, проектирай с RLS за защита в дълбочина
3. **Използвай Realtime за event-driven синхронизация**, По-ефективно от polling за промени
4. **Пакетирай операциите**, Използвай bulk inserts и филтъра `in` за операции с голям обем
5. **Мапвай user metadata**, Съхранявай поле, релевантни за ангажиране, в `user_metadata` при регистрация
6. **Използвай Edge Functions за уебхуци**, Обработвай входящи уебхуци с Supabase Edge Functions за обработка с ниска латентност

## Сигурност

- **Автентикация с API ключ**, Всички заявки изискват валидни API ключове
- **Row Level Security (RLS)**, Postgres-нативен контрол на достъпа на ниво ред
- **Верификация на JWT**, Auth tokens са подписани JWT-и, верифицирани при всяка заявка
- **SSL/TLS**, Всички връзки са криптирани при пренос
- **SOC 2 Type II**, Supabase е SOC 2 съвместим
- **Мрежови ограничения**, Опционално IP allowlisting на платените планове

## Свързани ресурси

- [Shopify конектор](https://tajo.io/bg/docs/connectors/ecommerce/shopify)
- [Stripe конектор](https://tajo.io/bg/docs/connectors/ecommerce/stripe)
- [Auth0 конектор](https://tajo.io/bg/docs/connectors/custom/auth0)
- [Официална документация на Supabase](https://supabase.com/docs)
- [Ръководство за Supabase REST API](https://supabase.com/docs/guides/api)
- [Ръководство за Supabase Auth](https://supabase.com/docs/guides/auth)
