Access Control Reference
설치
Capgo 사용 역할 기반 접근 제어 (RBAC) 각 팀원들이 할 수 있는 것을 관리하는 데 사용됩니다. 역할은 범위에 따라 분류됩니다. 범위 — 조직 전체에서 단일 패키지까지.
관리자 대시보드에서 멤버 관리를 위한 시각적인_walkthrough를 보려면 조직.
역할 범위
역할 범위각 역할은 특정 리소스에 대한 접근 권한을 부여하는 범위를 지정합니다.
| 범위 | 적용 | 예시 사용 사례 |
|---|---|---|
| 단체 | 단체 전체 및 모든 앱 | 동료 창업주가 Super Admin; 회계사에게 Billing Manager가 됩니다 |
| 앱 | 단일 앱 및 앱 내 채널 | 단일 앱에 근무하는 계약자에게 App Developer가 됩니다 |
| 채널 | 단일 앱 내 채널 | QA 엔지니어가 단일 채널만 관리합니다 staging 채널 |
| 패키지 | 한 개의 버전 | 한 개의 특정 릴리스에 대한 읽기 접근 권한이 필요한 리뷰어 |
멤버는 한 개의 범위 목표당 한 개의 조직 역할, App A의 한 역할, App B의 다른 역할과 같은 예를 들어.
조직 역할
제목 “조직 역할”초대 멤버에게 할당되는 이러한 역할은 조직 전체에 대한 접근 권한을 부여합니다.
| 역할 | 내부 이름 | 설명 |
|---|---|---|
| 슈퍼 어드민 | org_super_admin | Owner와 같은 권한. 조직 삭제, 청구 관리, 앱 전송 포함 전체 제어. 조직 생성자에게 자동으로 부여됨. |
| 관리자 | org_admin | 전체 관리 — 멤버, 앱, 채널 관리. 조직 삭제, 청구 업데이트, 앱 전송, Super Admin 승격 불가. |
| 청구 관리자 | org_billing_admin | 청구 전용 접근: 청구 정보, 청구서, 청구 감사 로그만 볼 수 있음. 앱 또는 멤버에 대한 접근 불가. |
| 멤버 | org_member | 조직 및 모든 앱에 대한 읽기 전용 접근. |
조직 권한 매트릭스
권한| 설명 | 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 관련 감사 로그 보기 | ✅ | ✅ | ✅ | ❌ |
Appflow 플러그인 또는
앱 역할단일 앱에만 적용됩니다. 팀원 한 명이 단일 앱만 작업해야 할 때 사용합니다.
| 역할 | 내부 이름 | 설명 |
|---|---|---|
| 앱 관리자 | app_admin | 단일 앱에 대한 전체 제어 — 채널, 장치, 앱 사용자 역할. 앱 삭제 또는 전송은 조직 수준의 작업입니다. |
| 앱 개발자 | app_developer | 배포 패키지 업로드, 장치 관리, 네이티브 빌드 트리거, 채널 설정 업데이트. 삭제, 앱 설정 변경, 채널 생성은 허용되지 않습니다. |
| 앱 업로더 | app_uploader | 읽기 전용 + 새로운 배포 패키지 버전 업로드 |
| 앱 리더 | app_reader | 읽기 전용 — 통계, 패키지, 채널, 로그, 장치. |
| 앱 미리보기 | app_preview | Organization-와 앱에 바인딩된 미리보기 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 | 번들 삭제 | ✅ | ❌ | ❌ | ❌ |
앱 미리보기 권한 집합
사용앱 미리보기 )을 사용하여 앱 및 앱에 결합된 CI 키를 사용하여 PR 미리보기 라이프 사이클을 관리할 수 있습니다. 앱 또는 조직 전체에 대한 광범위한 액세스를 제공하지 않습니다. (app_preview__CAPGO_KEEP_0__
The app_preview binding은 다음 앱 수준 권한만 부여합니다:
| 권한 | 허용 |
|---|---|
app.read | 선택한 앱을 읽습니다 |
app.read_bundles | 업로드된 패키지를 읽습니다 |
app.upload_bundle | 패키지를 업로드합니다 |
app.create_channel | 채널을 생성합니다 |
App Preview 키가 채널을 생성할 때, Capgo은 자동으로 새로운 채널에 대한 자식 channel_preview binding을 생성합니다:
| 권한 | 허용 |
|---|---|
channel.read | 채널을 생성한 키를 읽으십시오. |
channel.promote_bundle | 키가 업로드한 채널에 자신의 패키지를 설정하십시오. |
channel.delete | 채널을 삭제하십시오. |
그리고 app_preview 보존 app.read키가 선택한 앱에서 채널 메타데이터를 열거할 수 있기 때문에, 자동 자식 바인딩은 경계입니다: 키가 생성하지 않은 채널에 라이프 사이클 변화를 허용하지 않습니다. __CAPGO_KEEP_0__은 각 채널과 패키지를 생성한 App Preview 키를 기록합니다. 따라서 App Preview 키는 필요할 때마다 비공개 프리뷰 채널을 생성하고, 자신의 패키지를 승격시키고, 채널과 패키지를 원자적으로 삭제할 수 있습니다. 그러나 기존 기본/메인 채널, 다른 프리뷰 키의 채널, 또는 다른 키의 패키지에 대해 이러한 작업을 수행할 수 없습니다.
Capgo records the preview key that created each channel and uploaded each bundle. Therefore an App Preview key can create each non-public preview channel it needs, promote its own bundle, and atomically delete that channel and bundle with channel delete --delete-bundle장치 또는 역할 관리
It does not include app.update_settings, device or role management, channel.update_settings, channel.rollback_bundle강제 장치 관리, 또는 일반 bundle.delete.
채널 역할
채널 역할단일 채널에 제한됩니다. 특정 릴리스 채널에 대한 목표 접근 권한을 제공하기 위해 유용합니다.
| 역할 | 내부 이름 | 설명 |
|---|---|---|
| 채널 관리자 | channel_admin | 한 채널에 대한 전체 제어: 설정, 배포/롤백 패키지, 강제 장치 관리 |
| 채널 뷰어 | channel_reader | 읽기 전용 — 현재 패키지, 기록, 강제 장치, 감사 로그 |
| 채널 미리보기 | channel_preview | 시스템에 할당된 App 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롤 할당단일 버nd롤 버전에만 적용됩니다. 일반적으로 앱 수준의 역할을 사용하는 팀이 많습니다.
| 역할 | 내부 이름 | 설명 |
|---|---|---|
| 배너 관리자 | bundle_admin | 특정 배너의 읽기, 업데이트 및 삭제 권한 |
| 배너 뷰어 | bundle_reader | 채널 권한 오버라이드 (대시보드) |
채널 권한 오버라이드 (대시보드) 섹션
대시보드에서 채널 접근 권한은 기본적으로 사용자의 앱 역할에 의해 결정됩니다. 더 세부적인 제어가 필요할 경우,사용자 또는 그룹에 대한 특정 채널 권한을 오버라이드할 수 있습니다. 권한 권한
Override 설정은 앱의 접근 버튼 (보호기호) 을 클릭하여 사용자 옆에 있는 채널 권한 버튼 Organization — 채널 권한 Override 채널 권한 Override를 위한 시각적인 walkthrough
Override 가능한 권한
Override 가능한 권한 섹션| 권한 | 설명 | 기본 동작 |
|---|---|---|
| 읽기 | 채널과 현재 버블을 보는 것 | 애플리케이션 역할에서 상속됨 |
| 기록 | 채널 배포 기록을 확인하세요 | 애플리케이션 역할에서 상속됨 |
| 배포 연결 | 채널에서 활성 배포를 설정하거나 변경하세요 | 각 권한은 다음과 같이 설정할 수 있습니다: |
기본
- — 애플리케이션 역할에서 상속 (기본값) 허용
- — 애플리케이션 역할에 상관없이 명시적으로 허용 기록
- 거부 — 명시적으로 차단, 앱 역할에 관계없이
이것은 예를 들어, App Reader에게 채널에서 패키지를 연관시킬 수 있는 권한을 부여하는 것을 허용합니다. 그러나 그들을 App Developer로 승격시키지 않습니다. 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__
- An 애플리케이션 개발자 can do everything an 앱 업로더 can, plus more.
The hierarchy only flows downward — a channel_admin never gains org-level permissions, even if they also hold an app-level role.
Instead of assigning roles to each user individually, you can create 그룹 그룹에 역할을 assign하고 그룹의 모든 멤버가 자동으로 그 역할을 inherit합니다.
그룹이 어떻게 작동하는가
그룹이 어떻게 작동하는가- 그룹은 한 개의 조직에 속합니다. 다중 조직에 걸쳐서는 안됩니다.
- 그룹은 어떤 범위에서든 역할 바인딩을 가질 수 있습니다.조직, 앱, 채널, 또는 패키지. 예를 들어, 그룹은 앱 A에 App Developer 역할을 assign하고 App A와 함께 App Developer 역할을 inherit합니다. 채널 관리자 App 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>"Assigning roles via API
API__CAPGO_KEEP_0__
멤버 목록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>사용자 정의 역할
‘사용자 정의 역할’ 제목__CAPGO_KEEP_0__의 내장 역할은 대부분의 팀 구조를 커버합니다. 사용자 정의 역할 생성은 우리의 로드맵에 있습니다 — 만약 팀이 이것을 필요로 한다면 우리에 대한 연락을 하세요이 기능을 우선순위로 할 수 있도록 직접적인 사용 사례가 될 것입니다.
Access Control Reference에서 계속 진행하세요
Access Control Reference에서 계속 진행하세요Access Control Reference을 사용하여 대시보드와 __CAPGO_KEEP_0__ 연산을 계획하고 있다면, 그것을 __CAPGO_KEEP_0__ Overview와 연결하세요 API Overview에서 API Overview의 구현 세부 사항을 확인하세요 API Overview for the implementation detail in API Overview, __CAPGO_KEEP_0__ 키 __CAPGO_KEEP_0__ API implementation 세부 사항에 대한 API 키 기기 implementation 세부 사항에 대한 기기, 그리고 묶음 implementation 세부 사항에 대한 묶음.