---
title: "Σύνδεσμος Supabase"
description: "Πλήρης οδηγός ενσωμάτωσης Supabase για συγχρονισμό εγγραφών βάσης δεδομένων, πιστοποίησης χρήστη, αποθήκευσης αρχείων και εκδηλώσεων σε πραγματικό χρόνο με την πλατφόρμα αφοσίωσης."
url: https://tajo.io/gr/docs/connectors/custom/supabase/
markdown: https://tajo.io/gr/docs/connectors/custom/supabase.md
lang: el-GR
robots: noindex
---

Ζητήστε πρώιμη πρόσβαση

Συμπληρώστε το μικρό σας όνομα και την επαγγελματική διεύθυνση email. Θα σας στείλουμε σύνδεσμο για να επιβεβαιώσετε το αίτημα πρόσβασης στο Tajo.

# Σύνδεσμος Supabase

Κατάσταση συνδέσμου: Προγραμματισμένο Δεν έχει κατασκευαστεί ακόμη. Το Tajo δεν εκτελεί σήμερα αυτόν τον σύνδεσμο.

| Πεδίο πηγής | Πεδίο προορισμού | Ενδεικτική τιμή |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Συνδέστε το project Supabase για συγχρονισμό εγγραφών βάσης δεδομένων, δεδομένων πιστοποίησης χρηστών, εκδηλώσεων αποθήκευσης αρχείων και αλλαγών σε πραγματικό χρόνο για αυτοματοποίηση αφοσίωσης πελατών.

## Επισκόπηση

| Ιδιότητα | Τιμή |
| --- | --- |
| **Πλατφόρμα** | Supabase |
| **Κατηγορία** | Βάση Δεδομένων & Backend |
| **Πολυπλοκότητα Ρύθμισης** | Εύκολη |
| **Επίσημη Ενσωμάτωση** | Όχι |
| **Δεδομένα που Συγχρονίζονται** | Χρήστες, Πίνακες, Αποθήκευση, Εκδηλώσεις |
| **Διαθέσιμες Δεξιότητες** | 11 |
| **Τύπος API** | REST (PostgREST) + Realtime WebSocket |
| **Επίσημη Τεκμηρίωση** | [supabase.com/docs](https://supabase.com/docs) |

## Χαρακτηριστικά

- **Αυτόματα δημιουργούμενο REST API**, λειτουργίες CRUD σε οποιονδήποτε πίνακα Postgres μέσω PostgREST, χωρίς κώδικα
- **Συγχρονισμός χρηστών Auth**, Συγχρονισμός χρηστών Supabase Auth (email, τηλέφωνο, κοινωνικές συνδέσεις) στην πλατφόρμα αφοσίωσης
- **Εγγραφές σε πραγματικό χρόνο**, Ακρόαση εκδηλώσεων INSERT, UPDATE, DELETE σε οποιονδήποτε πίνακα σε πραγματικό χρόνο
- **Ασφάλεια Επιπέδου Γραμμής**, Όλη η πρόσβαση API σέβεται τις πολιτικές RLS Postgres για ασφαλή πολυ-ενοικιαστή δεδομένα
- **Ενσωμάτωση αποθήκευσης**, Παρακολούθηση μεταφορτώσεων αρχείων και διαχείριση πόρων σε buckets αποθήκευσης
- **Edge Functions**, Κλήση serverless συναρτήσεων Deno για προσαρμοσμένη λογική και webhooks
- **Αναζήτηση πλήρους κειμένου**, Αξιοποίηση δυνατοτήτων αναζήτησης πλήρους κειμένου Postgres μέσω API

## Προαπαιτούμενα

Πριν ξεκινήσετε, βεβαιωθείτε ότι διαθέτετε:

1. Project Supabase ([app.supabase.com](https://app.supabase.com/))
2. Το **URL API** και τα **κλειδιά API** του project σας (στις Ρυθμίσεις → API)
3. Λογαριασμό Tajo με πρόσβαση API

Κλειδιά API

Το Supabase παρέχει δύο κλειδιά: `anon` (δημόσιο, σέβεται RLS) και `service_role` (παρακάμπτει RLS, πρόσβαση διαχειριστή). Χρησιμοποιήστε `service_role` για ενσωματώσεις πλευράς server και `anon` για πλευράς client.

## Πιστοποίηση

Το Supabase χρησιμοποιεί πιστοποίηση με κλειδί API. Κάθε αίτημα απαιτεί header `apikey` και προαιρετικά Bearer token `Authorization` για πρόσβαση με εύρος χρήστη.

```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 | Email χρήστη από Supabase Auth (μοναδικό αναγνωριστικό) |
| `phone` optional | string | Αριθμός τηλεφώνου για αφοσίωση SMS/WhatsApp |
| `user_metadata.full_name` optional | string | Εμφανιζόμενο όνομα από μεταδεδομένα χρήστη Auth |
| `user_metadata.avatar_url` optional | string | URL εικόνας προφίλ |
| `created_at` optional | timestamp | Χρονική σφραγίδα δημιουργίας λογαριασμού |
| `last_sign_in_at` optional | timestamp | Πιο πρόσφατη σύνδεση για βαθμολόγηση αφοσίωσης |
| `app_metadata.provider` optional | string | Πάροχος Auth (email, google, github, κ.λπ.) |
| `confirmed_at` optional | timestamp | Χρονική σφραγίδα επιβεβαίωσης email |

#### Αντιστοίχιση Προσαρμοσμένου Πίνακα

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

## Endpoints API

Το REST API Supabase δημιουργείται αυτόματα από το σχήμα βάσης δεδομένων σας στο `https://<ref>.supabase.co/rest/v1/`.

| Endpoint | Μέθοδος | Περιγραφή |
| --- | --- | --- |
| `/rest/v1/{table}` | `GET` | Ερώτηση γραμμών με φιλτράρισμα, ταξινόμηση, σελιδοποίηση |
| `/rest/v1/{table}` | `POST` | Εισαγωγή γραμμών (υποστηρίζει μαζική και 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` | Εγγραφή νέου χρήστη | Σειρά καλωσορίσματος |
| `user.signed_in` | Σύνδεση χρήστη | Παρακολούθηση δραστηριότητας |
| `user.updated` | Αλλαγές προφίλ | Συγχρονισμός δεδομένων |
| `user.deleted` | Διαγραφή λογαριασμού | Ροές εργασίας καθαρισμού |

### Εκδηλώσεις Βάσης Δεδομένων (Realtime)

| Εκδήλωση | Ενεργοποιητής | Περίπτωση Χρήσης |
| --- | --- | --- |
| `INSERT` | Προσθήκη νέας γραμμής | Ειδοποιήσεις νέας παραγγελίας/πελάτη |
| `UPDATE` | Τροποποίηση γραμμής | Ροές εργασίας αλλαγής κατάστασης |
| `DELETE` | Αφαίρεση γραμμής | Ανίχνευση αποχώρησης |

### Εκδηλώσεις Webhook

| Εκδήλωση | Ενεργοποιητής | Περίπτωση Χρήσης |
| --- | --- | --- |
| `auth.user.created` | Εγγραφή χρήστη μέσω webhook | Ενεργοποίηση 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

Τα όρια ρυθμού Supabase εξαρτώνται από το πλάνο σας. Δωρεάν επίπεδο: 500 αιτήματα/λεπτό. Pro: 1.000 αιτήματα/δευτερόλεπτο. Επικοινωνήστε με το Supabase για Enterprise όρια.

| Πλάνο | Όριο Ρυθμού | Συνδέσεις Realtime |
| --- | --- | --- |
| Free | 500 αιτ./λεπτό | 200 ταυτόχρονες |
| Pro | 1.000 αιτ./δευτ. | 500 ταυτόχρονες |
| Team | 2.000 αιτ./δευτ. | 1.000 ταυτόχρονες |
| Enterprise | Προσαρμοσμένο | Προσαρμοσμένο |

## Αντιμετώπιση Προβλημάτων

### Συνήθη Προβλήματα

| Πρόβλημα | Αιτία | Λύση |
| --- | --- | --- |
| 401 Unauthorized | Μη έγκυρο ή ληγμένο κλειδί API | Ελέγξτε κλειδιά API στο Supabase Dashboard → Ρυθμίσεις → API |
| 403 Forbidden | Η πολιτική RLS αποκλείει πρόσβαση | Χρησιμοποιήστε κλειδί `service_role` για λειτουργίες διαχειριστή ή ελέγξτε πολιτικές RLS |
| Δεν υπάρχουν εκδηλώσεις realtime | Το Realtime δεν είναι ενεργοποιημένο για τον πίνακα | Ενεργοποιήστε στη Βάση Δεδομένων → Replication → προσθέστε πίνακα στη δημοσίευση |
| Κενά αποτελέσματα ερωτήματος | Το RLS φιλτράρει όλες τις γραμμές | Επαληθεύστε ότι οι πολιτικές RLS επιτρέπουν στον πιστοποιημένο ρόλο να διαβάζει |
| Αποτυχία μεταφόρτωσης αποθήκευσης | Πολιτικές bucket | Ελέγξτε ότι το 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 μόνο πλευράς server**, Μην το εκθέτετε ποτέ σε κώδικα client
2. **Ενεργοποιήστε RLS σε όλους τους πίνακες**, Ακόμα και με service\_role, σχεδιάστε με RLS για άμυνα σε βάθος
3. **Χρησιμοποιήστε Realtime για συγχρονισμό βάσει εκδηλώσεων**, Πιο αποδοτικό από polling για αλλαγές
4. **Λειτουργίες batch**, Χρησιμοποιήστε μαζικές εισαγωγές και φίλτρο `in` για λειτουργίες υψηλού όγκου
5. **Αντιστοιχίστε μεταδεδομένα χρήστη**, Αποθηκεύστε πεδία σχετικά με αφοσίωση στο `user_metadata` κατά την εγγραφή
6. **Χρησιμοποιήστε Edge Functions για webhooks**, Επεξεργαστείτε εισερχόμενα webhooks με Supabase Edge Functions για χαμηλή καθυστέρηση

## Ασφάλεια

- **Πιστοποίηση Κλειδιού API**, Όλα τα αιτήματα απαιτούν έγκυρα κλειδιά API
- **Ασφάλεια Επιπέδου Γραμμής (RLS)**, Εγγενής στο Postgres έλεγχος πρόσβασης ανά γραμμή
- **Επαλήθευση JWT**, Τα tokens πιστοποίησης είναι υπογεγραμμένα JWT που επαληθεύονται σε κάθε αίτημα
- **SSL/TLS**, Όλες οι συνδέσεις κρυπτογραφούνται κατά τη μεταφορά
- **SOC 2 Type II**, Το Supabase είναι συμβατό με SOC 2
- **Περιορισμοί Δικτύου**, Προαιρετικό allowlisting IP σε πληρωμένα πλάνα

## Σχετικοί Πόροι

- [Σύνδεσμος Shopify](https://tajo.io/gr/docs/connectors/ecommerce/shopify)
- [Σύνδεσμος Stripe](https://tajo.io/gr/docs/connectors/ecommerce/stripe)
- [Σύνδεσμος Auth0](https://tajo.io/gr/docs/connectors/custom/auth0)
- [Επίσημη Τεκμηρίωση Supabase](https://supabase.com/docs)
- [Οδηγός REST API Supabase](https://supabase.com/docs/guides/api)
- [Οδηγός Auth Supabase](https://supabase.com/docs/guides/auth)
