Trình Kết Nối Supabase

Kết nối Supabase với Brevo qua Tajo để đồng bộ database records, auth users và realtime events, kích hoạt chiến dịch marketing tự động từ thay đổi dữ liệu ứng dụng.

Tổng Quan

Thuộc TínhGiá Trị
Nền TảngSupabase
Danh MụcTùy Chỉnh
Độ Phức Tạp Thiết LậpDễ
Tích Hợp Chính ThứcKhông
Dữ Liệu Đồng BộDatabase, Auth Users, Realtime
Loại APIPostgREST API + Auth API
URL APIhttps://[project-ref].supabase.co

Tính Năng

  • Đồng bộ database table - Truy vấn và đồng bộ bất kỳ Supabase table nào
  • Auth users - Nhập Supabase auth users vào liên hệ Brevo
  • Realtime subscriptions - Nhận cập nhật khi database rows thay đổi
  • Row Level Security - Truy cập dữ liệu an toàn với Supabase service role
  • Functions - Gọi Supabase Edge Functions để xử lý dữ liệu tùy chỉnh

Yêu Cầu

Trước khi bắt đầu, hãy đảm bảo bạn có:

  1. Tài khoản Supabase với project hoạt động
  2. Project URL và API keys
  3. Tài khoản Brevo với quyền truy cập API
  4. Tài khoản Tajo

Xác Thực

API Keys

Sử dụng service_role key cho server-side integrations vì nó bypass Row Level Security. Không bao giờ expose service_role key phía client — chỉ dùng anon key ở phía client.

Terminal window
# Sử dụng service role key cho tích hợp server-side
curl "https://[ref].supabase.co/rest/v1/users" \
-H "apikey: YOUR_SERVICE_ROLE_KEY" \
-H "Authorization: Bearer YOUR_SERVICE_ROLE_KEY"

Kết Nối với Tajo

Terminal window
tajo connectors install supabase \
--project-url $SUPABASE_URL \
--service-role-key $SUPABASE_SERVICE_ROLE_KEY

Cấu Hình

Thiết Lập Cơ Bản

connectors:
supabase:
enabled: true
project_url: "${SUPABASE_URL}"
service_role_key: "${SUPABASE_SERVICE_ROLE_KEY}"
sync:
auth_users: true
tables:
- name: "profiles"
primary_key: "user_id"
sync_to: brevo_contacts
- name: "subscriptions"
sync_to: brevo_attributes
realtime:
enabled: false # Bật nếu cần realtime updates
tables: ["profiles", "subscriptions"]

Ánh Xạ Trường

field_mapping:
# Auth user fields
email: email
raw_user_meta_data->>'full_name': FULLNAME
created_at: SIGNUP_DATE
last_sign_in_at: LAST_LOGIN
# Profile table fields
profiles.phone: SMS
profiles.company: COMPANY_NAME
profiles.plan: PLAN_TYPE
# Subscription fields
subscriptions.status: SUBSCRIPTION_STATUS
subscriptions.current_period_end: SUBSCRIPTION_RENEWAL

API Endpoints

Phương ThứcEndpointMô Tả
GET/rest/v1/{table}Query table data
POST/rest/v1/{table}Insert rows
PATCH/rest/v1/{table}?filterUpdate rows
DELETE/rest/v1/{table}?filterDelete rows
GET/auth/v1/admin/usersLiệt kê auth users
GET/auth/v1/admin/users/{id}Lấy auth user theo ID

Ví Dụ Code

Khởi Tạo Trình Kết Nối

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
await tajo.connectors.connect('supabase', {
projectUrl: process.env.SUPABASE_URL,
serviceRoleKey: process.env.SUPABASE_SERVICE_ROLE_KEY
});

Đồng Bộ Users Sang Brevo

// Đồng bộ Supabase auth users sang liên hệ Brevo
await tajo.connectors.sync('supabase', {
type: 'incremental',
resources: ['auth_users', 'profiles'],
since: '2024-01-01',
joinTables: true
});

Giới Hạn Tốc Độ API

Supabase enforces rate limits dựa trên gói của bạn. Free plan giới hạn 500 yêu cầu/giây. Theo dõi header x-ratelimit-remaining để tránh lỗi 429.

Giới Hạn Tốc Độ

GóiGiới Hạn
Free500 yêu cầu/giây
Pro1.000 yêu cầu/giây
Team5.000 yêu cầu/giây
EnterpriseTùy chỉnh

Khắc Phục Sự Cố

Sự CốNguyên NhânGiải Pháp
401 UnauthorizedAPI key không hợp lệKiểm tra service role key trong Supabase dashboard
RLS blocking accessRow Level SecurityĐảm bảo dùng service_role key, không phải anon key
Table không tìm thấyTên table saiKiểm tra schema và tên table chính xác
Auth users rỗngQuyền admin thiếuService role key cần quyền admin để truy cập auth.users

Tài Nguyên Liên Quan

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
Trợ lý AI

Xin chào! Hãy hỏi tôi về tài liệu.