Skip to content

Access Control Reference

Capgo 사용 역할 기반 접근 제어 (RBAC) 팀원 각각의 할 수 있는 일을 관리하는 데 사용됩니다. 역할은 범위에 따라 분류됩니다. 범위 — 조직 전체에서 단일 패키지까지.

관리자 대시보드에서 멤버 관리를 위한 시각적인_walkthrough를 보려면 조직.


역할 범위

역할 범위

각 역할은 특정 리소스에 대한 접근 권한을 부여하는 범위를 가집니다.

범위적용예시 사용 사례
단체단체 전체 및 모든 앱동료 창업주의 경우 Super Admin; 회계 담당자의 경우 Billing Manager
단일 앱 및 채널단일 앱에 근무하는 계약자에게 App Developer
채널단일 앱 내의 채널QA 엔지니어가 관리하는 채널 staging 채널
패키지한 개의 패키지 버전특정 릴리스에 대한 읽기 접근 권한이 필요한 리뷰어

A member can hold __CAPGO_KEEP_0__ multiple roles. 한 영역당 하나의 역할 — 예를 들어, 하나의 조직 역할, App A의 하나의 역할, 그리고 App B의 다른 역할.


조직 역할

조직 역할

이 역할은 멤버를 초대할 때 assign되며, 전체 조직에 대한 접근 권한을 부여합니다.

역할내부 이름설명
최고관리자org_super_adminOwner와 같은 권한. org을 삭제하고, billing을 관리하고, 앱을 전환할 수 있는 전체 권한. org을 만든 사람에게 자동으로 부여됩니다.
관리자org_admin전체 관리 — 멤버, 앱, 채널을 관리할 수 있습니다. org을 삭제하거나, billing을 업데이트 하거나, 앱을 전환하거나, 사용자를 Super Admin로 승격할 수 없습니다.
billing 관리자org_billing_adminbilling 전용 접근: billing 정보, 청구서, billing 감사 로그를 볼 수 있고 업데이트 할 수 있습니다. 앱이나 멤버에 대한 접근 권한이 없습니다.
멤버org_memberorg 및 모든 앱에 대한 읽기 전용 접근 권한.

org 권한 매트릭스

권한 매트릭스
설명Super Admin권한 매트릭스관리자결제관리자회원
org.read조직 보기
org.update_settings조직 이름, 로고, 관리 이메일 편집
org.delete조직 영구 삭제
org.read_members회원 목록 보기
org.invite_user새 회원 초대
org.update_user_roles회원 역할 변경 (관리자로 슈퍼 관리자 승격 불가 — 역할 계층으로 차단)
org.read_billing결제 정보 및 현재 플랜 보기
org.update_billing결제 수단 및 플랜 업데이트
org.read_invoices청구서 보기
org.read_audit활동 로그 보기
org.read_billing_auditbilling 관련 감사 로그 보기

앱 역할

앱 역할

단일 앱에만 제한됩니다. 팀원 한 명이 단일 앱만 작업해야 할 때 사용합니다.

역할내부 이름설명
앱 관리자app_admin단일 앱의 전체 제어 — 채널, 장치, 앱 내의 사용자 역할. 앱 삭제 또는 전송은 조직 수준의 작업입니다.
앱 개발자app_developer업로드 패키지, 장치 관리, 네이티브 빌드 트리거, 채널 설정 업데이트. 삭제, 앱 설정 변경, 채널 생성은 허용되지 않습니다.
앱 업로더app_uploader읽기 접근 권한 + 새로운 버전의 패키지 업로드
앱 리더app_reader읽기 전용 — 통계, 패키지, 채널, 로그, 장치.
앱 미리보기app_preview조직 및 앱에 바인딩된 미리보기 CI 라이프사이클: 패키지를 업로드하고 미리보기 채널을 생성하세요. 채널을 생성하면 자동으로 라이프사이클 권한이 부여됩니다.

앱 권한 매트릭스

앱 권한 매트릭스
권한설명앱 관리자앱 개발자앱 업로더앱 리더
app.read앱 상세 정보를 확인하고 통계 및 메타데이터를 확인하세요.
app.update_settings애플리케이션 설정 편집
app.read_bundles업로드 된 패키지 목록을 확인하세요
app.upload_bundle새 패키지 버전 업로드
app.create_channel새 채널 만들기
app.read_channels채널 목록 보기
app.read_logs업데이트 배포 로그 보기
app.manage_devices장치Assign, Override, 또는 Unlink
app.read_devices장치 목록 보기
app.build_native자연 클라우드 빌드 트리거
app.read_audit앱 수준 활동 로그 보기
app.update_user_roles앱 범위 역할 assignments 관리
bundle.delete패키지 삭제

앱 미리보기 권한 집합

사용

앱 미리보기 앱 미리보기 (app_preview그룹 및 앱에 결합된 CI 키를 사용하여 PR 미리보기 라이프 사이클을 관리할 수 있습니다.

The app_preview binding은 다음 앱 수준 권한만 부여합니다:

권한Allows
app.read선택한 앱을 읽습니다.
app.read_bundles업로드된 패키지를 읽습니다.
app.upload_bundle패키지를 업로드합니다.
app.create_channel채널을 생성합니다.

App Preview 키가 채널을 생성할 때, Capgo는 자동으로 새로운 채널에 대한 자식 channel_preview 권한

AllowsAllows
channel.read채널을 생성한 키를 읽으세요.
channel.promote_bundle키가 업로드한 채널에 자신의 패키지를 설정하세요.
channel.delete채널을 삭제하세요.

그런 이유로 app_preview 보존합니다. app.read, 키는 선택한 앱에서 채널 메타데이터를 열거할 수 있습니다. 자동 자식 바인딩은 키가 생성하지 않은 채널에 대해 생명 주기 수정을 허용하지 않습니다. 관리 경계: 키가 생성하지 않은 채널에 대해 생명 주기 수정을 허용하지 않습니다.

Capgo은 각 채널과 패키지를 생성한 App Preview 키를 기록합니다. 따라서 App Preview 키는 필요할 때 각 비공개 미리보기 채널을 생성하고 자신의 패키지를 승격하고, 채널과 패키지를 원자적으로 삭제할 수 있습니다. 그러나 기존 기본/메인 채널, 다른 미리보기 키의 채널, 또는 다른 키의 패키지에 대해 이러한 작업을 수행할 수 없습니다. channel delete --delete-bundle포함하지 않습니다.

, 장치 또는 역할 관리, app.update_settings__CAPGO_KEEP_0__ channel.update_settings, channel.rollback_bundle강제 장치 관리, 또는 일반 bundle.delete.


채널 역할

채널 역할

단일 채널에 제한됩니다. 특정 릴리스 채널에 대한 목표 접근 권한을 제공하기 위해 유용합니다.

대신 사용하여 사용자별 채널 접근 권한을 세부적으로 조정하세요.역할내부 이름
설명channel_admin채널 관리자
한 채널에 대한 전체 제어: 설정, 배포/롤백 패키지, 강제 장치 관리.channel_reader채널 뷰어
읽기 전용 — 현재 패키지, 기록, 강제 장치, 감사 로그.channel_preview채널 프리뷰

채널 권한 매트릭스

채널 권한 매트릭스 제목
권한설명채널 관리자채널 뷰어채널 미리보기
channel.read채널과 현재 버블을 보기
channel.update_settings채널 설정 편집 (플랫폼 토글, 업데이트 정책…)
channel.delete채널 삭제
channel.read_history버블 할당 기록 보기
channel.promote_bundle채널에 활성화된 버블 설정
channel.rollback_bundle이전 버전으로 돌아가기
channel.manage_forced_devices특정 장치에 이 채널을 강제로 적용
channel.read_forced_devices강제로 적용된 장치 목록 보기
channel.read_audit채널 활동 로그 보기

버nd롤 할당

버nd롤 할당

단일 버전으로 제한된 역할입니다. 거의 사용되지 않습니다. 대부분의 팀은 앱 수준 역할을 사용합니다.

역할내부 이름설명
번들 관리자bundle_admin특정 번들의 읽기, 업데이트 및 삭제 권한
번들 뷰어bundle_reader채널 권한 오버라이드 (대시보드)

사용자 또는 그룹별로 특정 채널 권한을 오버라이드할 수 있습니다. 번들 관리자 번들 뷰어

Override 설정은 앱의 접근 버튼을 클릭하여 채널 권한을 오버라이드합니다. Organization — 채널 권한 오버라이드 오버라이드 가능한 권한

Section titled “오버라이드 가능한 권한”

권한
설명기본 동작읽기
채널과 현재 버블을 보십시오.View the channel and its current bundle애플리케이션 역할에서 상속됨
역사채널 할당 기록을 확인하세요애플리케이션 역할에서 상속됨
채널 할당채널에 활성화된 채널을 설정하거나 변경하세요각 권한은 다음과 같이 설정할 수 있습니다:

기본

  • — 애플리케이션 역할에서 상속 (기본값) 허용
  • — 애플리케이션 역할과 관계없이 명시적으로 허용 역사
  • 거부 — 앱 역할에 관계없이 명시적으로 차단합니다.

이것은 예를 들어 App Reader에게 채널에서 패키지를 연관시킬 수 있는 권한을 부여하는 것을 허용합니다. staging 권한 계층


부모 역할은 자식 역할의 모든 권한을 상속합니다. 자식 역할은 부모 역할의 모든 권한을 상속합니다. 부모 역할은 자식 역할의 모든 권한을 상속합니다. org_admin 부모 역할은 자식 역할의 모든 권한을 상속합니다. app_admin 부모 역할은 자식 역할의 모든 권한을 상속합니다. channel_admin 부모 역할은 자식 역할의 모든 권한을 상속합니다.

Super Admin (org_super_admin)
└── Admin (org_admin)
└── App Admin (app_admin)
├── App Developer (app_developer)
│ └── App Uploader (app_uploader)
│ └── App Reader (app_reader)
├── Bundle Admin (bundle_admin)
│ └── Bundle Viewer (bundle_reader)
└── Channel Admin (channel_admin)
└── Channel Viewer (channel_reader)

실제로 어떻게 작동하는지:

  • 관리자 기관 수준의 관리자는 모든 앱에서 앱 관리자가 할 수 있는 모든 것을 할 수 있습니다. 앱 관리자
  • 특정 앱의 앱 관리자는 앱 내의 모든 채널에서 채널 관리자가 할 수 있는 모든 것을 할 수 있습니다. __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ __CAPGO_KEEP_2__ __CAPGO_KEEP_3__
  • 어떤 애플리케이션 개발자 어떤 애플리케이션 업로더 애플리케이션 업로더가 할 수 있는 것과 더 많은 것을 할 수 있습니다.

권한이 내려오는 계층은 아래로만 흐릅니다. 아래로channel_admin 권한이 올라가지 않으며, 앱 레벨 권한을 가지고 있더라도 조직 레벨 권한을 얻지 못합니다.


사용자별로 역할을 assign하는 대신, 그룹을 생성하여 역할을 assign할 수 있습니다. 그룹 그룹에 역할을 할당하고, 그룹의 모든 멤버는 자동으로 그 역할을 상속합니다.

  • 그룹은 한 개의 조직에 속합니다. 다중 조직을跨越할 수 없습니다.
  • 그룹은 어떤 범위에서든 역할 결합을 보유할 수 있습니다.org, app, channel, 또는 bundle. 예를 들어, 그룹은 App A에 App Developer 역할을 할당하고, App B에 App Viewer 역할을 할당할 수 있습니다. App Developer 채널 관리자 앱 B의 staging 채널에 대한
  • 사용자의 권한이 평가될 때, 그들의 그룹 멤버십은 투명하게 해결됩니다. 그룹 중 하나가 필요한 권한을 부여하면 접근이 허용됩니다.
  • 사용자는 여러 그룹에 속할 수 있습니다, 모든 그룹의 권한이 누적됩니다.
  • 그룹 기반 권한은 사용자 주체 에만 적용됩니다. — API 키는 그룹 역할을 상속하지 않습니다.

그룹 사용하기

제목 "그룹 사용하기"
시나리오그룹 없이그룹과 함께
5명의 QA 엔지니어가 3개의 앱에 개발자 접근 권한이 필요합니다.15개의 개별 역할 바인딩1개의 그룹 + 3개의 역할 바인딩
QA 팀에 누군가가 합류합니다.3개의 역할 바인딩을 수동으로 추가합니다.그룹에 추가합니다.
QA 팀에서 누군가가 탈퇴합니다.3개의 역할 바인딩을 수동으로 제거합니다.그룹에서 제거합니다.

모든 그룹 엔드포인트는 인증이 필요하고 __CAPGO_KEEP_0__ 하위에 제공됩니다. /private/groups.

그룹 목록

터미널 창
클립보드에 복사
curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \
-H "authorization: <API_KEY>"

그룹 만들기 org.read_members 터미널 창

그룹 만들기

그룹 목록
그룹 관리
curl -X POST "https://api.capgo.app/private/groups/<ORG_ID>" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "QA Team",
"description": "Quality assurance engineers"
}'

필요 org.update_user_roles 권한이 필요합니다 (슈퍼 관리자 또는 권한이 필요합니다 ().

터미널 창
curl -X PUT "https://api.capgo.app/private/groups/<GROUP_ID>" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "QA Team",
"description": "Updated description"
}'

그룹을 삭제합니다

그룹을 삭제합니다
터미널 창
curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>" \
-H "authorization: <API_KEY>"

그룹을 삭제하면 그룹의 모든 역할 바인딩도 삭제됩니다. 조직의 멤버는 삭제되지 않습니다.

그룹 멤버 목록

그룹 멤버 목록
터미널 창
curl -X GET "https://api.capgo.app/private/groups/<GROUP_ID>/members" \
-H "authorization: <API_KEY>"

그룹에 멤버를 추가

그룹에 멤버를 추가
터미널 창
curl -X POST "https://api.capgo.app/private/groups/<GROUP_ID>/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "user_id": "<USER_UUID>" }'

이미 조직의 멤버인 사용자가 이미 있어야 합니다. 기존 멤버를 추가하는 것은 아무런 효과가 없습니다.

그룹에서 멤버를 제거합니다.

그룹에서 멤버를 제거하는 방법
터미널 창
curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \
-H "authorization: <API_KEY>"

역할 assign을 API를 통해 합니다.

역할 assign을 API하는 방법

멤버 목록

List 회원 목록
터미널 창
curl -X GET "https://api.capgo.app/organization/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "orgId": "<ORG_ID>" }'

응답:

[
{
"uid": "user-uuid",
"email": "alice@example.com",
"image_url": "https://...",
"role": "org_admin",
"is_tmp": false
}
]

회원 초대

회원 초대
터미널 창
curl -X POST "https://api.capgo.app/organization/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"orgId": "<ORG_ID>",
"email": "bob@example.com",
"invite_type": "org_admin"
}'

허용되는 값 invite_type:

할당된 역할
org_super_admin최고관리자
org_admin관리자
org_billing_admin결제관리자
org_member회원

회원 제거

회원 제거
터미널 창
curl -X DELETE "https://api.capgo.app/organization/members" \
-H "authorization: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"orgId": "<ORG_ID>",
"email": "bob@example.com"
}'

역할 assign CLI

역할 assign CLI

조직 목록

조직 목록
터미널 창
npx @capgo/cli organization list --apikey <API_KEY>
터미널 창
npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>

사용자 지정 역할

제목: 사용자 지정 역할

내장 역할은 대부분의 팀 구조를 커버합니다. 사용자 지정 역할 생성은 우리의 로드맵에 있습니다 — 만약 팀이 이 기능을 필요로 한다면. 우리에게 연락해 주세요이 기능을 우선순위로 하기 위해, 당신의 사용 사례가 직접 도움이 될 것입니다.

Access Control Reference에서 계속 진행하세요

Access Control Reference에서 계속 진행하세요

당신이 Access Control Reference 를 사용하여 대시보드와 API 연산을 계획하고 있다면, 그것을 API Overview와 연결하세요 API Overview API Overview에서 API 구현 세부 정보를 확인하세요 소개 소개에서 구현 세부 정보를 확인하세요 API 키 API 키 구현 세부 사항에 대해 장치 __CAPGO_KEEP_0__ 구현 세부 사항, 장치 및 블록 __CAPGO_KEEP_0__ 구현 세부 사항에 대해 블록