레퍼런스노드 레퍼런스액션액션연동연동
Supabase
Supabase 데이터베이스, 인증(Auth), 스토리지를 관리합니다.
개요
| 항목 | 내용 |
|---|---|
| 카테고리 | 연동 |
| 연동 필요 | Supabase 프로젝트 URL + API Key |
| 지원 리소스 | 데이터베이스, 인증 (Auth), 스토리지 |
작업 종류
데이터베이스
| 작업 | 설명 |
|---|---|
| 데이터 조회 (Select) | 테이블 데이터 조회 (필터, 정렬, 페이지네이션 지원) |
| 데이터 삽입 (Insert) | 테이블에 새 레코드 삽입 |
| 데이터 수정 (Update) | 필터 조건에 맞는 레코드 수정 |
| 데이터 삭제 (Delete) | 필터 조건에 맞는 레코드 삭제 |
| 데이터 삽입/수정 (Upsert) | 충돌 시 수정, 없으면 삽입 |
| RPC 호출 (저장 프로시저) | Postgres 함수 호출 |
지원 필터 연산자
기본 비교(eq, neq, gt, gte, lt, lte), 패턴 매칭(like, ilike), NULL 체크(is), 배열 포함(in, cs, cd, ov), 범위 연산, 전문 검색(fts, plfts, phfts, wfts) 등을 지원합니다.
인증 (Auth)
| 작업 | 설명 |
|---|---|
| 사용자 목록 조회 | 전체 사용자 목록 (페이지네이션) |
| 사용자 조회 (ID) | UUID로 사용자 조회 |
| 사용자 조회 (이메일) | 이메일로 사용자 조회 |
| 사용자 생성 | 새 사용자 생성 (이메일, 비밀번호, 메타데이터) |
| 사용자 수정 | 사용자 정보 수정 |
| 사용자 삭제 | 사용자 삭제 |
| 사용자 차단 | 기간 지정하여 사용자 차단 (24h, 7d, 영구 등) |
| 사용자 차단 해제 | 차단 해제 |
| 사용자 로그아웃 | 모든/다른/현재 세션 로그아웃 |
| 링크 생성 | 초대, 회원가입, 매직링크, 비밀번호 복구 링크 생성 |
| MFA 요소 목록 조회 | 사용자의 MFA 요소 조회 |
| MFA 요소 삭제 | MFA 요소 삭제 |
스토리지
| 작업 | 설명 |
|---|---|
| 파일 목록 조회 | 버킷/폴더 내 파일 목록 조회 |
| 파일 업로드 | 파일 업로드 (Base64 또는 URL) |
| 파일 다운로드 | 파일 다운로드 |
| 파일 삭제 | 파일 삭제 |
| 파일 이동 | 파일을 다른 경로로 이동 |
| 파일 복사 | 파일 복사 |
| 공개 URL 생성 | 공개 버킷의 파일 URL 생성 |
| 서명된 URL 생성 | 만료 시간이 있는 서명된 URL 생성 |
| 서명된 URL 일괄 생성 | 여러 파일의 서명된 URL 한번에 생성 |
| 버킷 목록 조회 | 스토리지 버킷 목록 조회 |
| 버킷 조회 | 특정 버킷 상세 조회 |
| 버킷 생성 | 새 버킷 생성 (공개/비공개, 파일 크기 제한 등) |
| 버킷 수정 | 버킷 설정 변경 |
| 버킷 삭제 | 버킷 삭제 |
| 버킷 비우기 | 버킷 내 모든 파일 삭제 |
활용 예시
데이터 조회 및 가공
트리거: 일정 (매일 오전 9시)
액션 1: Supabase - 데이터 조회
├── 테이블: orders
├── 필터: status eq 'pending'
├── 정렬: created_at DESC
├── 제한: 100
액션 2: 반복 (조회 결과)
액션 3: 행 생성 (주문 데이터모델)신규 사용자 초대
트리거: 데이터모델 - 행 생성 (초대 요청)
액션 1: Supabase - 링크 생성
├── 링크 타입: 초대
├── 이메일: {{trigger.row.이메일}}
└── 리다이렉트 URL: "https://app.example.com/welcome"
액션 2: 이메일 발송
└── 내용: "초대 링크: {{actions.supabase.link}}"파일 업로드 후 URL 공유
트리거: 웹훅 (파일 생성 이벤트)
액션 1: Supabase - 파일 업로드
├── 버킷: documents
├── 파일 경로: reports/{{trigger.body.fileName}}
├── 파일 데이터: {{trigger.body.fileData}}
액션 2: Supabase - 서명된 URL 생성
├── 파일 경로: reports/{{trigger.body.fileName}}
├── 만료 시간: 3600
액션 3: 슬랙 메시지
└── 메시지: "새 보고서: {{actions.supabase.signedUrl}}"모범 사례
Supabase Realtime 구독은 워크플로우에서 직접 지원하지 않습니다. 실시간 이벤트가 필요한 경우 웹훅 트리거와 Supabase Database Webhook을 조합하여 사용하세요.
데이터 보안
- **서비스 역할 키(service_role)**는 RLS(Row Level Security)를 우회합니다. 필요한 경우에만 사용하세요
- anon 키는 RLS 정책에 따라 접근이 제한됩니다
에러 처리
API 호출 실패 시 재시도하거나 관리자에게 알림을 보내세요.