조직: 팀, 알림, 요금, 감사 기록
구성원 초대와 역할, 알림 채널, 청구서, 감사 기록, 그리고 같은 일을 HTTP(/api/v1)로 하는 경로.
조직: 팀, 알림, 요금, 감사 기록
프로젝트는 조직에 속해요. 아래 도구는 조직 전체에 걸리지만, 다른 도구처럼 그 조직의 아무 프로젝트 ref로 불러요.
역할마다 할 수 있는 일이 정해져 있고, 토큰은 주인의 역할을 그대로 가져요.
조직이 여럿이면 create_project의 org(list_projects의 organisation_id나 조직 이름)로 어느 조직에 만들지 골라요. 그 조직의 소유자·관리자·개발자만, 요금제의 프로젝트 수 안에서 만들 수 있어요.
팀
list_team 구성원, 역할, 2단계 인증 여부, 수락 전 초대
invite_member 이메일로 초대 (admin | developer | billing | viewer)
cancel_invitation 보낸 초대 취소
set_member_role 구성원의 역할 바꾸기
remove_member 내보내기 (소유자는 못 내보냄)
set_mfa_required 모든 구성원에게 2단계 인증 요구사람을 바로 넣는 방법은 없어요. 초대 메일의 링크를 그 사람이 열어야 참여해요(7일). 바꾸는 것은 모두 소유자·관리자만 할 수 있어요.
접근 그룹과 프로젝트 접근
list_access_groups 그룹, 구성원, 프로젝트별 역할
create_access_group 빈 그룹 만들기
update_access_group 이름, 구성원(이메일), 프로젝트별 역할 (developer | billing | viewer)
remove_access_group 그룹 지우기 (confirm에 이름)
get_member_access 구성원 한 명이 여는 프로젝트
set_member_access 모든 프로젝트(scoped false) 또는 고른 프로젝트만(scoped true)공유 환경 변수
list_shared_env_vars 조직이 여러 프로젝트에 주는 변수 (개발자 이상)
create_shared_env_var 만들기 (key, value, targets, projects)
update_shared_env_var 값, 대상, 연결한 프로젝트 바꾸기
remove_shared_env_var 지우기 (confirm에 이름)감사 기록 내보내기, 조직 웹훅
list_audit_drains 감사 기록을 보내는 곳 (https | datadog | splunk | syslog)
create_audit_drain 보낼 곳 더하기 (요금제에 있어야 함)
set_audit_drain_enabled 멈추기·다시 보내기
test_audit_drain 시험 기록 하나 보내기
remove_audit_drain 지우기
list_org_webhooks 조직 알림을 보내는 웹훅과 서명 키
create_org_webhook 만들기 (events, projects: 비우면 전부)
set_org_webhook_enabled 멈추기·다시 보내기
test_org_webhook 시험 이벤트 보내기
list_org_webhook_deliveries 전달 기록
retry_org_webhook_delivery 전달 하나 다시 보내기
remove_org_webhook 지우기외부 커미터, SSO, 배포 정책
get_committer_settings 외부 커미터 정책, 믿는 커미터, 기다리는 프리뷰
set_committer_policy auto | require
trust_committer 이 이메일의 프리뷰는 승인 없이 빌드
remove_trusted_committer 다시 승인을 기다리게
answer_preview_approval 기다리는 프리뷰에 답하기 (approve | trust | decline)
get_org_sso 조직의 OpenID Connect 로그인과 도메인
set_org_sso 만들기·바꾸기 (준 값만, 요금제에 있어야 함)
remove_org_sso 지우기 (confirm에 issuer)
add_org_sso_domain 도메인 더하기 (TXT 레코드를 줌)
verify_org_sso_domain DNS에서 TXT 레코드 확인
remove_org_sso_domain 도메인 지우기
get_org_policies 새 프로젝트의 기본 보호, 배포 경로, 프리뷰 도메인
set_org_policies 바꾸기 (준 값만)
set_preview_suffix 프리뷰 도메인 정하기 (TXT 레코드를 줌)
verify_preview_suffix DNS에서 TXT 레코드 확인
remove_preview_suffix 프리뷰 도메인 지우기모두 조직 전체에 걸려서, 프로젝트 하나에 묶인 연결(project_ref)에서는 보이지 않아요. 바꾸는 것은 소유자·관리자만 돼요(감사 기록 내보내기는 감사 기록을 읽는 사람, 공유 변수 읽기는 개발자 이상, 기다리는 프리뷰는 그 프로젝트에 쓸 수 있는 사람).
조직의 OAuth 앱(/org/apps)은 조직 이름으로 움직이는 자격 증명이라 도구로 만들지 않아요. 콘솔에서 사람이 만들어요.
알림 채널
list_channels Slack·카카오워크·웹훅 채널과 마지막 전송 결과
create_channel 추가 (notices: deployments, domains, usage, billing)
test_channel 시험 메시지 한 통
set_channel_enabled 멈추기·다시 받기
remove_channel 삭제요금과 기록
get_billing 한 달의 청구서와 날짜별 사용량 (소유자·관리자·결제 담당)
get_audit_log 누가 무엇을 바꿨는지(activity), 누가 개인정보에 접근했는지(access) (소유자·관리자)
rename_project 프로젝트 이름, 조직 이름 바꾸기 (소유자·관리자)
list_transfer_targets 프로젝트를 옮길 수 있는 다른 조직 (소유자·관리자)
transfer_project 프로젝트를 다른 조직으로 옮기기 (지금 조직의 소유자, confirm에 프로젝트 이름)
get_plan 지금 요금제와 고를 수 있는 요금제 (소유자·관리자·결제 담당)
get_spend_controls 지출 상한, 월 한도, 이번 달 사용량 (소유자·관리자·결제 담당)
set_spend_cap 지출 상한 켜기·끄기 (소유자·관리자·결제 담당)
set_spend_limit 월 초과 요금 한도와 알림 웹훅 (소유자·관리자·결제 담당)카드 등록, 요금제 변경, 계정 비밀번호와 토큰, 고객 지원 문의는 도구로 하지 않아요. 콘솔에서 사람이 해요.
같은 일을 HTTP로
https://<zone>/api/v1 아래, 같은 토큰을 Authorization: Bearer로 보내요. 프로젝트 하위 경로는 /projects/<ref> 아래예요.
GET /regions POST /regions/requests {region, note}
GET /server-sizes?region=¤cy= 서버 크기와 지역별 월 금액 (list_server_sizes)
PATCH /projects/<ref> {name, organisation}
GET /projects/<ref>/transfer POST /projects/<ref>/transfer {organisation, confirm}
GET /git POST /git/repos {provider, repo, branch}
PUT /git/tokens/<github|gitlab> {token, gitlab_base} DELETE 같은 경로
DELETE /git/github-app
GET /log-drains POST /log-drains {name, kind, url, secret, sources}
PATCH /log-drains/<id> {enabled} DELETE /log-drains/<id>
DELETE /users/<id> PUT /auth/anonymous {enabled}
GET /auth/sms PUT /auth/sms {provider, key, secret, account, sender, allowed_countries}
DELETE /auth/sms GET /auth/sso
GET /auth/smtp PUT /auth/smtp {sender_email, sender_name, host, port, username, password}
DELETE /auth/smtp POST /auth/smtp/test {to}
GET /auth/templates GET /auth/templates/<type> PUT /auth/templates/<type> {subject, body}
DELETE /auth/templates/<type> POST /auth/templates/<type>/preview {subject, body}
POST /auth/sso {metadata_url, domains} PUT /auth/sso/<id> {domains} DELETE /auth/sso/<id>
GET /config/auth PATCH /config/auth {<키>: <값>}
GET /config/auth/custom-providers POST /config/auth/custom-providers {identifier, name, provider_type, issuer, client_id, client_secret, claim_map, token_auth, pkce, jwks_uri, email_optional}
PUT /config/auth/custom-providers/<identifier> PATCH 같은 경로 {enabled} DELETE 같은 경로
GET /config/auth/third-party-auth POST /config/auth/third-party-auth {type, value, region, audiences} DELETE /config/auth/third-party-auth/<id>
PUT /function-egress {enabled}
GET /server-memory
PUT /server-memory {memory_mb}
GET /concurrent-builds PUT /concurrent-builds {concurrent_builds}
GET /network POST /network/static-outbound-ip DELETE 같은 경로
GET /team POST /team/invitations {email, role}
DELETE /team/invitations/<id> PUT /team/mfa {required}
PATCH /team/members/<email> {role} DELETE /team/members/<email>
GET /channels POST /channels {kind, name, url, notices}
POST /channels/<id>/test PATCH /channels/<id> {enabled} DELETE /channels/<id>
GET /realtime PUT /realtime/<표> {enabled}
GET /extensions PUT /extensions/<이름> DELETE /extensions/<이름>
GET /branches POST /branches {name, git_branch, with_seed} PUT /branching {automatic, seed_sql, lifetime_days}
POST /branches/<이름>/merge POST /branches/<이름>/reset DELETE /branches/<이름>
GET /queues POST /queues {name, unlogged} PUT /queues/api {exposed} DELETE /queues/<이름>
POST /queues/<이름>/messages {message, delay} GET /queues/<이름>/messages?limit= POST /queues/<이름>/purge
GET /vault POST /vault {name, value, description} PATCH·DELETE /vault/<이름>
GET /network-restrictions PUT /network-restrictions {allowed_cidrs, allow_all, enforce_ssl, confirm}
GET /metrics?range=24h GET /billing?period=YYYY-MM
GET /billing/plan GET /billing/spend
PUT /billing/spend-cap {enabled} PUT /billing/spend-limit {spend_limit_minor, webhook_url}
POST /deployments/sources (본문: 압축 파일) POST /deployments {source | files, target, prebuilt}
GET /buckets/<버킷>/objects?prefix= POST /buckets/<버킷>/objects {name, content, encoding, upsert}
GET /buckets/<버킷>/object?name= DELETE /buckets/<버킷>/object?name=
POST /buckets/<버킷>/signed-urls {name, expires_in}
PATCH /buckets/<버킷> {public, file_size_limit, allowed_mime_types} POST /buckets/<버킷>/empty DELETE /buckets/<버킷> {confirm}
PATCH /users/<id> {email, password, email_confirm, ban_duration, user_metadata, app_metadata}
POST /users/import {users, dry_run}
POST /users/<이메일>/links {type, password, data, redirect_to}
GET /tables/<표>/csv?column=&op=&value=&sort=&desc= POST /tables/<표>/csv {csv, columns}
POST /deployments/sources/upload-urls 그 url에 PUT (본문: 압축 파일, 토큰 없이)
POST /projects {name, region, org}
GET /audit?tab=activity|access&from=&to=&actor=&action=&limit=&offset=
GET /signing PUT /signing {alg}
POST /signing/rotate {grace_hours} DELETE /signing/keys/<kid>
PUT /domains/<도메인>/certificate {certificate, key} DELETE 같은 경로
PUT /domains/<도메인>/redirect {to, status} to: 도메인 또는 도메인/경로, 비우면 끄기