Supabase
연결
터미널에서 Supabase을 연결하세요. Supabase이 받는 플래그는 --help로 확인할 수 있고, 헤드리스 환경에서는 --no-browser를 함께 사용하세요.
polylane cloud connect --provider supabaseOAuth 인증, 또는 Supabase 계정 설정의 개인 액세스 토큰입니다.
Supabase는 OAuth로 연결합니다: Connect with Supabase를 클릭하고, 연결할 조직을 선택하면서 Supabase에서 읽기 접근을 승인하면, 동기화가 이미 시작된 상태로 돌아옵니다. 토큰은 저장 전에 암호화되며 에이전트는 이를 절대 보지 못합니다.
개인 액세스 토큰 대안
장기 자격 증명을 선호하면 대신 개인 액세스 토큰으로 연결하세요:
- Supabase를 열고 Account → Access Tokens로 이동합니다.
- Generate new token을 클릭하고 토큰을 복사합니다(
sbp_로 시작합니다). - 토큰을 Polylane에 붙여 넣습니다. 계정이 둘 이상의 조직에 접근할 수 있으면 연결할 조직 슬러그도 제공하세요.
- Polylane이 토큰을 검증하고 동기화를 시작합니다.
각 연결은 하나의 Supabase 조직을 다룹니다. Polylane은 조직의 프로젝트를 엣지 함수, 데이터베이스 브랜치, 스토리지 버킷과 함께 상태, 리전, 컴퓨트 크기를 포함해 발견합니다.
문제 해결
"Invalid access token" 오류
- Supabase 계정 설정에서 토큰이 취소되지 않았는지 확인하세요.
- 개인 액세스 토큰은 계정의 권한으로 동작합니다. 계정이 조직에 접근할 수 있는지 확인하세요.
"Multiple Supabase organizations are reachable" 오류
- 자격 증명이 둘 이상의 조직에 접근할 수 있으므로 연결할 조직을 지정하세요.
- 콘솔에서 OAuth로 연결하는 경우, 승인 후 요청 시 조직을 선택하세요.
- API로 연결하는 경우,
organization필드를 조직 슬러그로 설정하세요.
리소스 누락
- Supabase가 모든 것을 동기화하는 데 몇 분이 걸릴 수 있습니다.
- 일시 중지된(비활성) 프로젝트는 나열되지만, 엣지 함수, 브랜치, 버킷은 프로젝트가 활성 상태일 때만 동기화됩니다.
- 계정 헤더에서 수동 Sync를 실행해 새로 고치세요.
연결 해제
Polylane에서 계정의 연결을 해제한 뒤, Supabase 계정 설정에서 액세스 토큰을 취소하세요.
CI 작업이나 브라우저가 없는 다른 환경에서 Supabase을 연결하세요.
Supabase 연결에는 브라우저가 필요하지 않습니다: 콘솔이 호출하는 것과 같은 엔드포인트를 CI 작업에 담을 수 있습니다. 인증된 POST 하나가 연결을 만들고 첫 동기화를 시작합니다.
사전 요구 사항
cloud_accounts:write와cloud_accounts:read스코프를 가진 Polylane API 키. API 키와 OAuth를 참고하세요.ws_로 시작하는 워크스페이스 ID. 같은 키로GET /v1/workspaces에서 읽을 수 있습니다.- Account → Access Tokens의 Supabase 개인 액세스 토큰(
sbp_로 시작). 콘솔의 OAuth 흐름은 브라우저가 필요하지만 액세스 토큰은 필요하지 않습니다.
연결 만들기
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "supabase",
"workspaceId": "ws_0abc123",
"token": "sbp_...",
"organization": "my-org-slug"
}'
한 번의 호출로 Supabase 조직 하나가 연결됩니다.
organization은 토큰이 정확히 하나의 조직에만 접근할 수 있을 때만 생략할 수 있습니다. 그렇지 않으면 접근 가능한 조직 슬러그를 나열하는400으로 호출이 실패합니다.
응답은 연결된 것을 나열하며, 첫 동기화는 이미 실행 중입니다. 나머지 흐름이 읽는 두 필드만 남기면:
{
"success": true,
"result": {
"provider": "supabase",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
이미 연결된 계정은 accounts 대신 failures에 들어가므로, 호출을 반복해도 연결이 중복되지 않습니다.
첫 동기화 기다리기
반환된 각 계정을 id로 status가 ready에 도달할 때까지 폴링하세요(등록 시 new, 리소스가 들어오는 동안 syncing):
until [ "$(curl -s "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY" | jq -r '.result.status')" = "ready" ]; do
sleep 15
done
실패한 연결이 작업을 멈추게 하는 대신 실패시키도록 루프에 기한을 두세요. 계정이 ready가 되면 리소스는 토폴로지에 있고 Polylane은 첫 검사를 시작한 상태입니다.
API에서 연결 해제
연결을 삭제하면 모든 동기화와 검사가 중단되고 Polylane이 보관하던 자격 증명이 삭제됩니다. 호출에는 cloud_accounts:delete 스코프가 필요합니다:
curl -X DELETE "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY"
그 다음 아래 연결 해제에 설명된 대로 제공자 쪽에서 Supabase 자격 증명을 취소하세요.
연결 해제
연결을 해제하면 모든 동기화와 검사가 중단되고 Polylane이 보관하던 자격 증명이 삭제됩니다. Polylane은 Supabase의 API가 허용하는 범위에서 제거합니다. 다음은 직접 제거하기 전까지 남습니다:
- OAuth grant
polylane cloud disconnect <id>도구
4에이전트가 스레드에서 수행할 수 있는 작업입니다.
지원 리소스
13인프라 그래프에 표시되는 리소스 유형입니다.