---
title: "Supabase Bağlayıcısı"
description: "Veritabanı kayıtlarını, kullanıcı kimlik doğrulamasını, dosya depolamasını ve gerçek zamanlı olayları etkileşim platformunuzla senkronize etmek için eksiksiz Supabase entegrasyon kılavuzu."
url: https://tajo.io/tr/docs/connectors/custom/supabase/
markdown: https://tajo.io/tr/docs/connectors/custom/supabase.md
lang: tr-TR
robots: noindex
---

Erken erişim talep edin

Adınızı ve iş e-posta adresinizi girin. Tajo erişim talebinizi onaylamanız için size bir bağlantı göndereceğiz.

# Supabase Bağlayıcısı

Bağlayıcı durumu: Planlandı Henüz oluşturulmadı. Tajo bu bağlayıcıyı bugün çalıştırmıyor.

| Kaynak alanı | Hedef alanı | Örnek değer |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Müşteri etkileşim otomasyonu için veritabanı kayıtlarını, kullanıcı kimlik doğrulama verilerini, dosya depolama olaylarını ve gerçek zamanlı değişiklikleri senkronize etmek üzere Supabase projenizi bağlayın.

## Genel Bakış

| Özellik | Değer |
| --- | --- |
| **Platform** | Supabase |
| **Kategori** | Veritabanı ve Arka Uç |
| **Kurulum Karmaşıklığı** | Kolay |
| **Resmi Entegrasyon** | Hayır |
| **Senkronize Edilen Veri** | Kullanıcılar, Tablolar, Depolama, Olaylar |
| **Kullanılabilir Yetenekler** | 11 |
| **API Türü** | REST (PostgREST) + Gerçek Zamanlı WebSocket |
| **Resmi Belgeler** | [supabase.com/docs](https://supabase.com/docs) |

## Özellikler

- **Otomatik oluşturulan REST API**, PostgREST aracılığıyla herhangi bir Postgres tablosunda CRUD işlemleri, kod gerektirmez
- **Kimlik doğrulama kullanıcı senkronizasyonu**, Supabase Auth kullanıcılarını (e-posta, telefon, sosyal oturumlar) etkileşim platformunuza senkronize edin
- **Gerçek zamanlı abonelikler**, Herhangi bir tablodaki INSERT, UPDATE, DELETE olaylarını gerçek zamanlı olarak dinleyin
- **Satır Düzeyi Güvenlik**, Tüm API erişimi, güvenli çok kiracılı veri için Postgres RLS politikalarına uyar
- **Depolama entegrasyonu**, Dosya yüklemelerini izleyin ve Depolama kovaları arasında varlıkları yönetin
- **Edge Functions**, Özel mantık ve webhook’lar için sunucusuz Deno işlevleri çağırın
- **Tam metin arama**, API aracılığıyla Postgres tam metin arama özelliklerinden yararlanın

## Ön Koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

1. Bir Supabase projesi ([app.supabase.com](https://app.supabase.com/))
2. Projenizin **API URL’si** ve **API anahtarları** (Settings → API bölümünde bulunur)
3. API erişimi olan bir Tajo hesabı

API Anahtarları

Supabase iki anahtar sağlar: `anon` (herkese açık, RLS’ye uyar) ve `service_role` (RLS’yi atlar, yönetici erişimi). Sunucu tarafı entegrasyonlar için `service_role`, istemci tarafı için `anon` kullanın.

## Kimlik Doğrulama

Supabase API anahtarı kimlik doğrulaması kullanır. Her istek `apikey` başlığını gerektirir ve kullanıcı kapsamlı erişim için isteğe bağlı olarak `Authorization` bearer belirteci gerektirir.

```bash
# anon anahtarı kullanma (RLS'ye uyar)
curl 'https://<project_ref>.supabase.co/rest/v1/customers' \
  -H "apikey: <SUPABASE_ANON_KEY>" \
  -H "Authorization: Bearer <SUPABASE_ANON_KEY>"

# service_role anahtarı kullanma (RLS'yi atlar)
curl 'https://<project_ref>.supabase.co/rest/v1/customers' \
  -H "apikey: <SUPABASE_SERVICE_ROLE_KEY>" \
  -H "Authorization: Bearer <SUPABASE_SERVICE_ROLE_KEY>"
```

## Yapılandırma

### Temel Kurulum

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

    # Veri senkronizasyon seçenekleri
    sync:
      users: true
      tables:
        - customers
        - orders
        - products
      storage: true
      realtime: true

    # Supabase Auth kullanıcılarını kişilere eşle
    user_mapping:
      email: email
      phone: SMS
      user_metadata.full_name: FIRSTNAME
      created_at: SIGNUP_DATE
```

### Alan Eşleştirme

Supabase tablo sütunlarını etkileşim platformu özniteliklerine eşleyin:

#### Varsayılan Kullanıcı Eşleştirmeleri

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Supabase Auth'tan kullanıcı e-postası (benzersiz tanımlayıcı) |
| `phone` optional | string | SMS/WhatsApp etkileşimi için telefon numarası |
| `user_metadata.full_name` optional | string | Auth kullanıcı meta verilerinden görünen ad |
| `user_metadata.avatar_url` optional | string | Profil resmi URL'si |
| `created_at` optional | timestamp | Hesap oluşturma zaman damgası |
| `last_sign_in_at` optional | timestamp | Etkileşim puanlaması için en son oturum açma |
| `app_metadata.provider` optional | string | Kimlik doğrulama sağlayıcısı (email, google, github vb.) |
| `confirmed_at` optional | timestamp | E-posta onay zaman damgası |

#### Özel Tablo Eşleştirme

```yaml
table_mapping:
  customers:
    # Sütun → Öznitelik eşleştirmesi
    email: email
    full_name: FIRSTNAME
    company: COMPANY
    plan: SUBSCRIPTION_PLAN
    mrr: MONTHLY_REVENUE
    created_at: SIGNUP_DATE

  orders:
    # Olay olarak izle
    sync_as: events
    event_name: "order_placed"
    properties:
      total: amount
      status: order_status
      items: line_items
```

## API Uç Noktaları

Supabase REST API’si, veritabanı şemanızdan `https://<ref>.supabase.co/rest/v1/` adresinde otomatik olarak oluşturulur.

| Uç Nokta | Yöntem | Açıklama |
| --- | --- | --- |
| `/rest/v1/{table}` | `GET` | Filtreleme, sıralama, sayfalama ile satırları sorgula |
| `/rest/v1/{table}` | `POST` | Satır ekle (toplu ve upsert destekler) |
| `/rest/v1/{table}` | `PATCH` | Filtrelerle eşleşen satırları güncelle |
| `/rest/v1/{table}` | `DELETE` | Filtrelerle eşleşen satırları sil |
| `/rest/v1/rpc/{function}` | `POST` | Bir Postgres fonksiyonu çağır |
| `/auth/v1/signup` | `POST` | Yeni kullanıcı oluştur |
| `/auth/v1/token?grant_type=password` | `POST` | Parolayla oturum aç |
| `/auth/v1/user` | `GET` | Mevcut kullanıcıyı al |
| `/auth/v1/admin/users` | `GET` | Tüm kullanıcıları listele (service\_role) |
| `/storage/v1/object/{bucket}/{path}` | `POST` | Dosya yükle |
| `/storage/v1/object/list/{bucket}` | `POST` | Kovadaki dosyaları listele |
| `/functions/v1/{function_name}` | `POST` | Edge Function çağır |

### Filtreleme Operatörleri

| Operatör | Açıklama | Örnek |
| --- | --- | --- |
| `eq` | Eşittir | `?status=eq.active` |
| `neq` | Eşit değildir | `?status=neq.deleted` |
| `gt`, `gte` | Büyüktür | `?amount=gt.100` |
| `lt`, `lte` | Küçüktür | `?created_at=lt.2024-01-01` |
| `like`, `ilike` | Desen eşleştirme | `?name=ilike.%john%` |
| `in` | Dizide | `?status=in.(active,trial)` |
| `is` | Null kontrolü | `?deleted_at=is.null` |

## Olaylar

### Kimlik Doğrulama Olayları

| Olay | Tetikleyici | Kullanım Durumu |
| --- | --- | --- |
| `user.signed_up` | Yeni kullanıcı kaydı | Hoş geldiniz serisi |
| `user.signed_in` | Kullanıcı oturumu | Aktivite takibi |
| `user.updated` | Profil değişiklikleri | Veri senkronizasyonu |
| `user.deleted` | Hesap silme | Temizleme iş akışları |

### Veritabanı Olayları (Gerçek Zamanlı)

| Olay | Tetikleyici | Kullanım Durumu |
| --- | --- | --- |
| `INSERT` | Yeni satır eklendi | Yeni sipariş/müşteri bildirimleri |
| `UPDATE` | Satır değiştirildi | Durum değişiklik iş akışları |
| `DELETE` | Satır kaldırıldı | Kayıp tespiti |

### Webhook Olayları

| Olay | Tetikleyici | Kullanım Durumu |
| --- | --- | --- |
| `auth.user.created` | Webhook aracılığıyla kullanıcı kaydı | Onboarding tetikleme |
| `storage.object.created` | Dosya yüklendi | Varlık işleme |

## Kod Örnekleri

### Bağlayıcıyı Başlatma

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

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

// Supabase projesini bağla
await tajo.connectors.connect('supabase', {
  projectUrl: process.env.SUPABASE_URL,
  serviceRoleKey: process.env.SUPABASE_SERVICE_ROLE_KEY,
});
```

### Kullanıcıları Kişilere Senkronize Etme

```javascript
// Tüm Supabase Auth kullanıcılarını kişi olarak senkronize et
await tajo.connectors.sync('supabase', {
  type: 'full',
  resources: ['users'],
});

// Artımlı senkronizasyon (yalnızca yeni/değişen kullanıcılar)
await tajo.connectors.sync('supabase', {
  type: 'incremental',
  resources: ['users'],
  since: '2024-01-01T00:00:00Z',
});
```

### Gerçek Zamanlı Değişiklikleri Dinleme

```javascript
// Etkileşim tetikleyicileri için yeni siparişlere abone ol
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) => {
      // Tajo'ya olay olarak ilet
      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();
```

### Sorgulama ve Segmentleme

```javascript
// Hedefli kampanyalar için müşterileri plana göre sorgula
const { data: proUsers } = await supabase
  .from('customers')
  .select('email, full_name, plan, mrr')
  .eq('plan', 'pro')
  .gt('mrr', 100)
  .order('mrr', { ascending: false });

// Kampanya hedefleme için bir Brevo listesine senkronize et
await tajo.lists.addContacts(PRO_LIST_ID, proUsers);
```

## Hız Sınırları

API Hız Sınırları

Supabase hız sınırları planınıza bağlıdır. Ücretsiz katman: dakikada 500 istek. Pro: saniyede 1.000 istek. Kurumsal sınırlar için Supabase ile iletişime geçin.

| Plan | Hız Sınırı | Gerçek Zamanlı Bağlantılar |
| --- | --- | --- |
| Ücretsiz | 500 istek/dk | 200 eşzamanlı |
| Pro | 1.000 istek/sn | 500 eşzamanlı |
| Team | 2.000 istek/sn | 1.000 eşzamanlı |
| Enterprise | Özel | Özel |

## Sorun Giderme

### Yaygın Sorunlar

| Sorun | Neden | Çözüm |
| --- | --- | --- |
| 401 Unauthorized | Geçersiz veya süresi dolmuş API anahtarı | Supabase Dashboard → Settings → API bölümünden API anahtarlarını kontrol edin |
| 403 Forbidden | RLS politikası erişimi engelliyor | Yönetici işlemleri için `service_role` anahtarını kullanın veya RLS politikalarını kontrol edin |
| Gerçek zamanlı olay yok | Tablo için Realtime etkin değil | Database → Replication → tabloyu yayına ekleyin |
| Boş sorgu sonuçları | RLS tüm satırları filtreliyor | RLS politikalarının kimliği doğrulanmış rolün okumasına izin verdiğini doğrulayın |
| Depolama yüklemesi başarısız | Kova politikaları | Depolama kovasının herkese açık veya doğru RLS politikalarına sahip olduğunu kontrol edin |

### Hata Ayıklama Modu

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

### Bağlantı Testi

```bash
tajo connectors test supabase
# ✓ API bağlantısı başarılı
# ✓ Kimlik doğrulama uç noktası erişilebilir
# ✓ Tablolar okunabilir (12 tablo bulundu)
# ✓ Depolama erişilebilir (3 kova)
# ✓ Gerçek zamanlı bağlantı kuruldu
# ✓ Edge Functions mevcut (4 işlev)
```

## En İyi Uygulamalar

1. **service\_role anahtarını yalnızca sunucu tarafında kullanın**, Asla istemci kodunda ifşa etmeyin
2. **Tüm tablolarda RLS’yi etkinleştirin**, service\_role ile bile, derinlemesine savunma için RLS ile tasarlayın
3. **Olay odaklı senkronizasyon için Realtime kullanın**, Değişiklikleri yoklamaktan daha verimlidir
4. **Toplu işlemler**, Yüksek hacimli işlemler için toplu eklemeler ve `in` filtresini kullanın
5. **Kullanıcı meta verilerini eşleyin**, Kayıt sırasında etkileşimle ilgili alanları `user_metadata` içinde saklayın
6. **Webhook’lar için Edge Functions kullanın**, Düşük gecikmeli işleme için gelen webhook’ları Supabase Edge Functions ile işleyin

## Güvenlik

- **API Anahtarı Kimlik Doğrulaması**, Tüm istekler geçerli API anahtarları gerektirir
- **Satır Düzeyi Güvenlik (RLS)**, Satır başına Postgres yerel erişim kontrolü
- **JWT Doğrulaması**, Kimlik doğrulama belirteçleri her istekte doğrulanan imzalı JWT’lerdir
- **SSL/TLS**, Tüm bağlantılar aktarımda şifrelenir
- **SOC 2 Type II**, Supabase SOC 2 uyumludur
- **Ağ Kısıtlamaları**, Ücretli planlarda isteğe bağlı IP izin verme

## İlgili Kaynaklar

- [Shopify Bağlayıcısı](https://tajo.io/tr/docs/connectors/ecommerce/shopify)
- [Stripe Bağlayıcısı](https://tajo.io/tr/docs/connectors/ecommerce/stripe)
- [Auth0 Bağlayıcısı](https://tajo.io/tr/docs/connectors/custom/auth0)
- [Supabase Resmi Belgeleri](https://supabase.com/docs)
- [Supabase REST API Kılavuzu](https://supabase.com/docs/guides/api)
- [Supabase Auth Kılavuzu](https://supabase.com/docs/guides/auth)
