접근 제어 참조
설치 단계와 이 플러그인의 전체 마크다운 가이드를 포함하는 설정 지시어를 복사하세요.
Capgo 사용 역할 기반 접근 제어 (RBAC) 각 팀원들이 무엇을 할 수 있는지 관리하는 방법입니다. 범위 전체 조직에서 단일 패키지까지의 범위.
관리자 페이지에서 멤버 관리를 위한 시각적인_walkthrough를 보려면 조직.
역할 범위
역할 범위각 역할은 특정 리소스에 대한 접근 권한을 부여하는 범위를 결정합니다.
| 범위 | 적용 대상 | 사용 사례 예시 |
|---|---|---|
| 조직 | 전체 조직과 모든 앱 | 동료 창업가에게 Super Admin; 회계사에게 Billing Manager |
| 앱 | 단일 앱과 채널 | 단일 앱에 근무하는 계약자에게 App Developer |
| 채널 | 단일 앱 내의 채널 | 채널 staging 채널 |
| 버전 | 버전 | 특정 릴리스에 대한 읽기 접근 권한이 필요한 리뷰어 |
회원은 한 개의 역할을 한 개의 범위에 할당할 수 있습니다. 한 개의 역할을 한 개의 범위에 할당할 수 있습니다. — 예를 들어, 한 개의 조직 역할, App A의 한 개의 역할, App B의 다른 역할.
조직 역할
조직 역할조직 역할
| Role | 역할 | 내부 이름 |
|---|---|---|
| 설명 | org_super_admin | 슈퍼 어드민(관리자 권한자) |
| 관리자 | org_admin | 전체 관리 — 멤버, 앱, 채널 관리. 조직 삭제, 청구 업데이트, 앱 이전, Super Admin 승격 불가. |
| 청구 매니저 | org_billing_admin | 청구 전용 접근: 청구 정보, 청구서, 청구 감사 로그만 볼 수 있음. 앱 또는 멤버에 대한 접근 불가. |
| 멤버 | org_member | 조직 및 모든 앱에 대한 읽기 전용 접근. |
조직 권한 매트릭스
권한| 설명 | 슈퍼 관리자 | 권한 매트릭스 | 관리자 | Billing Manager | 회원 |
|---|---|---|---|---|---|
org.read | 조직 보기 | ✅ | ✅ | ✅ | ✅ |
org.update_settings | 조직 이름, 로고, 관리 이메일 편집 | ✅ | ✅ | ❌ | ❌ |
org.delete | 조직 영구 삭제 | ✅ | ❌ | ❌ | ❌ |
org.read_members | 회원 목록 보기 | ✅ | ✅ | ❌ | ✅ |
org.invite_user | 새로운 회원 초대 | ✅ | ✅ | ❌ | ❌ |
org.update_user_roles | 회원 역할 변경 (관리자로 승격할 수 없습니다 — 역할 계층으로 차단) | ✅ | ✅ | ❌ | ❌ |
org.read_billing | billing 정보 및 현재 플랜 보기 | ✅ | ✅ | ✅ | ❌ |
org.update_billing | 결제 방법 및 플랜 업데이트 | ✅ | ❌ | ✅ | ❌ |
org.read_invoices | 청구서 보기 | ✅ | ✅ | ✅ | ❌ |
org.read_audit | 조직 활동 로그 보기 | ✅ | ✅ | ❌ | ❌ |
org.read_billing_audit | billing-specific 로그를 확인하세요 | ✅ | ✅ | ✅ | ❌ |
단일 앱에 제한. 이 역할은 팀원에게 단일 앱만 작업하도록 제한할 때 사용합니다.
| 역할 | 내부 이름 | 설명 |
|---|---|---|
| 앱 관리자 | 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)
The app_preview 권한 부여는 다음 앱 수준 권한만 허용합니다:
| 권한 | 허용 |
|---|---|
app.read | 선택한 앱을 읽습니다. |
app.read_bundles | 업로드된 패키지를 읽습니다. |
app.upload_bundle | 패키지를 업로드합니다. |
app.create_channel | 채널을 생성합니다. |
App Preview 키가 채널을 생성할 때, Capgo는 자동으로 키에 새로운 채널에 대한 자식 channel_preview 권한 부여는 다음 채널 수준 권한만 허용합니다:
| 권한 | 허용 |
|---|---|
channel.read | 채널을 생성한 키가 만든 채널을 읽습니다. |
channel.promote_bundle | 채널에 업로드 된 패키지를 설정합니다. |
channel.delete | 채널을 삭제합니다. |
그런 이유로 app_preview 보존합니다. app.read, 키는 선택한 앱에서 채널 메타데이터를 열거할 수 있습니다. 자동 자식 바인딩은 키가 생성하지 않은 채널에 대한 라이프 사이클 변화를 허용하지 않습니다. 관리 경계: 키가 생성하지 않은 채널에 대한 라이프 사이클 변화를 허용하지 않습니다.
Capgo은 각 채널과 업로드 된 패키지를 생성한 App Preview 키를 기록합니다. 따라서 App Preview 키는 필요할 때 각 비공개 미리보기 채널을 생성하고 자신의 패키지를 승격하고, 채널과 패키지를 원자적으로 삭제할 수 있습니다. 그러나 기존 기본/메인 채널, 다른 미리보기 키의 채널, 또는 다른 키의 패키지에 대해 이러한 작업을 수행할 수 없습니다. channel delete --delete-bundle포함하지 않습니다.
장치 또는 역할 관리 app.update_settings강제 장치 관리 channel.update_settings, channel.rollback_bundle일반 bundle.delete.
채널 역할
채널 역할채널 역할은 특정 릴리스 채널에 대한-targeted 접근 권한을 제공하기 위해 유용합니다.
| 역할 | 내부 이름 | 설명 |
|---|---|---|
| 채널 관리자 | channel_admin | 한 채널에 대한 전체 제어: 설정, 배포/롤백 패키지, 강제 장치 관리. |
| 채널 뷰어 | channel_reader | 읽기 전용 — 현재 패키지, 기록, 강제 장치, 감사 로그. |
| 채널 프리뷰 | channel_preview | 시스템에 할당된 App Preview 키가 생성한 채널에 대한 읽기, 자신의 패키지를 승격시키고, 해당 채널을 삭제할 수 있습니다. |
채널 권한 매트릭스
Channel 권한 매트릭스 섹션 제목| __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ |
|---|---|---|---|---|
channel.read | __CAPGO_KEEP_0__ | ✅ | ✅ | ✅ |
channel.update_settings | __CAPGO_KEEP_0__ | ✅ | ❌ | ❌ |
channel.delete | __CAPGO_KEEP_0__ | ✅ | ❌ | ✅ |
channel.read_history | __CAPGO_KEEP_0__ | ✅ | ✅ | ❌ |
channel.promote_bundle | __CAPGO_KEEP_0__ | ✅ | ❌ | ✅ |
channel.rollback_bundle | __CAPGO_KEEP_0__ | ✅ | ❌ | ❌ |
channel.manage_forced_devices | 특정 기기에게 이 채널을 강제로 할당 | ✅ | ❌ | ❌ |
channel.read_forced_devices | 강제로 할당된 기기 목록 보기 | ✅ | ✅ | ❌ |
channel.read_audit | 채널 활동 로그 보기 | ✅ | ✅ | ❌ |
권한 묶음 할당
권한 묶음 할당단일 버전의 패키지에만 적용됩니다. 대부분의 팀은 앱 수준의 권한을 사용합니다.
| Role | 내부 이름 | 설명 |
|---|---|---|
| 패키지 관리자 | bundle_admin | 특정 패키지를 읽고, 업데이트, 삭제할 수 있습니다. |
| 패키지 뷰어 | bundle_reader | 특정 패키지에 대한 읽기 전용 접근 권한 |
채널 권한 오버라이드 (대시보드)
채널 권한 오버라이드 (대시보드) 섹션대시보드에서 채널 접근 권한은 기본적으로 사용자의 앱 역할에 의해 결정됩니다. 더 세부적인 제어를 원한다면, 사용자 또는 그룹에 대한 특정 채널 권한을 특정 채널 권한을 재정의합니다. 오버라이드는 앱의
설정에서 구성됩니다. 접근 채널 권한 버튼(보호기호) 옆의 사용자 클릭 Organization — 채널 권한 우선순위 시각적인 walkthrough를 위한
변경 가능한 권한
변경 가능한 권한| 권한 | 설명 | 기본 동작 |
|---|---|---|
| 읽기 | 채널과 현재 버블을 보는 | 앱 역할에서 상속 |
| 역사 | 채널에 할당된 배포 버전의 역사 보기 | 앱 역할에서 상속 |
| 배포 버전 연결 | 채널에 현재 활성화된 배포 버전 설정 또는 변경 | 앱 역할에서 상속 |
권한 설정
- 기본 — 앱 역할에서 상속 (기본 설정)
- 허용 — 앱 역할에 상관없이 명시적으로 허용
- 거부 — 앱 역할에 관계없이 명시적으로 차단합니다.
이것은 예를 들어 앱 리더에게 채널에서 번들을 연결할 수 있는 권한을 부여할 수 있게 해주며, 그들을 앱 개발자로 승격시키지 않도록 합니다. staging 역할 계층
부모 역할은 자식 역할의 모든 권한을 상속합니다. 자식 역할은 부모 역할의 모든 권한을 상속합니다. 자식 역할은 부모 역할의 모든 권한을 상속합니다. org_admin 복사하기 app_admin clipboard channel_admin copy to clipboard
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)실무에서 작동하는 방식:
- An 관리자 기관 수준의 앱 관리자 앱의 모든 앱에서 할 수 있는 모든 것을 할 수 있습니다.
- An 앱 관리자 특정 앱에서 채널 관리자 채널의 모든 채널에서 할 수 있는 모든 것을 할 수 있습니다.
- An 애플리케이션 개발자 애플리케이션 개발자는 앱 업로더 앱 업로더도 애플리케이션 개발자와 더 많은 일을 할 수 있습니다.
권한 구조는 아래로만 흐릅니다. downward — channel_admin 권한 구조는 아래로만 흐릅니다.
그룹
그룹그룹을 만들면 groups 그룹을 만들고 그룹에 역할을 할당하세요. 그룹의 모든 멤버는 자동으로 그룹에 할당된 역할을继承합니다.
그룹은 어떻게 작동하는가?
그룹은 어떻게 작동하는가?- 그룹은 한 개의 조직에 속합니다. 다중 조직에 걸쳐서 작동할 수 없습니다.
- 역할 바인딩은 scope조직, 앱, 채널, 또는 패키지. 예를 들어, 그룹은 앱 A에 App Developer 역할을 할당하고 채널에 App B의 채널에서 역할
stagingApp B의 채널에서 역할 - 사용자의 권한이 평가될 때, 그룹 멤버십이 투명하게 해결됩니다. 사용자가 필요한 권한을 부여받은 그룹이 있다면, 접근이 허용됩니다.
- 사용자는 여러 그룹에 속할 수 있습니다, 그룹의 모든 권한이 누적됩니다.
- 그룹 기반 권한은 사용자 주체 — API 키는 그룹 역할을 상속하지 않습니다.
그룹 사용하기
제목: 그룹 사용하기| 사용 사례 | 그룹 없이 | 그룹과 함께 |
|---|---|---|
| 5명의 QA 엔지니어가 3개의 앱에 개발자 접근 권한이 필요합니다. | 15개의 개별 역할 바인딩 | 1개의 그룹 + 3개의 역할 바인딩 |
| QA 팀에 누군가가 합류합니다. | 수동으로 3개의 역할 바인딩을 추가합니다. | 그룹에 추가합니다. |
| QA 팀에서 누군가가 떠나면 | 수동으로 3개의 역할 바인딩을 제거합니다. | 그룹에서 제거합니다. |
API를 통해 그룹 관리
그룹 관리를 위한 API모든 그룹 엔드포인트는 인증이 필요하고 /private/groups.
그룹 목록
그룹 목록curl -X GET "https://api.capgo.app/private/groups/<ORG_ID>" \ -H "authorization: <API_KEY>"권한이 필요합니다. org.read_members 그룹 만들기
그룹 만들기
__CAPGO_KEEP_0__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 권한 (최고관리자 또는 Admin).
앱플로우 플러그인 또는
그룹을 업데이트합니다.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
Section titled “Assigning roles via API”회원 목록
역할 assign 하기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:
| 값 | assign된 역할 |
|---|---|
org_super_admin | 슈퍼 관리자 |
org_admin | 관리자 |
org_billing_admin | billing 매니저 |
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" }'CLI를 통해 역할 assign
Section titled “Assigning roles via 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을 사용 중이라면 권한 제어 참조 계획 대시보드 및 API 연산을 위해 연결하세요. API 개요 API 개요에서 구현 세부 정보를 참조하세요. 소개 소개에서 구현 세부 정보를 참조하세요. API 키 API 키에서 구현 세부 정보를 참조하세요. 기기 기기 구현 세부 사항에 대해 패키지 패키지 구현 세부 사항에 대해