Access Control Reference
이 플러그인에 대한 설치 단계와 전체 마크다운 가이드가 포함된 AI 설정 프롬프트를 복사하세요.
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_admin | Owner와 같은 권한. org을 삭제하고, billing을 관리하고, 앱을 전환할 수 있는 전체 권한. org을 만든 사람에게 자동으로 부여됩니다. |
| 관리자 | org_admin | 전체 관리 — 멤버, 앱, 채널을 관리할 수 있습니다. org을 삭제하거나, billing을 업데이트 하거나, 앱을 전환하거나, 사용자를 Super Admin로 승격할 수 없습니다. |
| billing 관리자 | org_billing_admin | billing 전용 접근: billing 정보, 청구서, billing 감사 로그를 볼 수 있고 업데이트 할 수 있습니다. 앱이나 멤버에 대한 접근 권한이 없습니다. |
| 멤버 | org_member | org 및 모든 앱에 대한 읽기 전용 접근 권한. |
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_audit | billing 관련 감사 로그 보기 | ✅ | ✅ | ✅ | ❌ |
앱 역할
앱 역할단일 앱에만 제한됩니다. 팀원 한 명이 단일 앱만 작업해야 할 때 사용합니다.
| 역할 | 내부 이름 | 설명 |
|---|---|---|
| 앱 관리자 | 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 권한
| Allows | Allows |
|---|---|
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개의 역할 바인딩을 수동으로 제거합니다. | 그룹에서 제거합니다. |
Managing groups via API
Section titled “Managing groups via API”모든 그룹 엔드포인트는 인증이 필요하고 __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__ 구현 세부 사항에 대해 블록