Access Control Reference
이 플러그인에 대한 설치 단계와 전체 마크다운 가이드를 포함한 설정 프롬프트를 복사하십시오.
Capgo은 역할 기반 접근 제어 (RBAC)를 사용하여 각 팀원들이 할 수 있는 것을 관리합니다. 역할은 범위 — 조직 전체에서 단일 번들까지입니다.
팀원 관리에 대한 시각적인_walkthrough를 보려면 대시보드에서 확인하세요. 조직.
역할 범위
역할 범위모든 역할은 특정 리소스에 접근할 수 있는 범위를 결정하는 범위에 속합니다.
| 범위 | 적용 대상 | 예시 사용 사례 |
|---|---|---|
| 조직 | 전체 조직 및 모든 앱 | 동료 창업가에게 Super Admin 권한을 부여하고 회계 담당자에게 Billing Manager 권한을 부여합니다. |
| 앱 | 단일 앱 및 채널 | __CAPGO_KEEP_0__은 한 앱에 작업 중인 계약자가 App Developer |
| __CAPGO_KEEP_0__ 채널 | __CAPGO_KEEP_0__ 내의 한 채널 | __CAPGO_KEEP_0__ QA 엔지니어가만aging하는 채널 staging __CAPGO_KEEP_0__ 버전 |
| __CAPGO_KEEP_0__에서 특정 릴리스에 대한 읽기 전용 접근권한이 필요한 리뷰어 | __CAPGO_KEEP_0__은 한 스코프 타겟당 __CAPGO_KEEP_0__을 보유할 수 있습니다. | 예를 들어, 한 조직 역할, App A의 역할, App B의 다른 역할. |
조직 역할 __CAPGO_KEEP_0__ 내의 역할 __CAPGO_KEEP_0__ 내의 역할
__CAPGO_KEEP_0__ 내의 역할
조직 역할회원 초대 시 할당되는 역할입니다. 전체 조직에 대한 접근 권한을 부여합니다.
| 역할 | 내부 이름 | 설명 |
|---|---|---|
| 최고관리자 | org_super_admin | 조직을 삭제하고, 청구를 관리하고, 앱을 이전하는 등 전체 권한을 가집니다. 조직 생성자에게 자동으로 부여됩니다. |
| 관리자 | org_admin | 회원, 앱, 채널을 관리할 수 있지만 조직을 삭제하거나 청구를 업데이트 하거나 앱을 이전하거나 사용자를 최고관리자로 승격할 수 없습니다. |
| 청구관리자 | org_billing_admin | 청구에만 접근할 수 있습니다. 청구 정보, 청구서, 청구 로그를 볼 수 있지만 앱이나 회원에 대한 접근 권한이 없습니다. |
| 회원 | org_member | 읽기 전용 접근 권한을 org 및 모든 앱에 대해 제공합니다. |
조직 권한 매트릭스
‘조직 권한 매트릭스’라는 제목의 섹션| 권한 | 설명 | 슈퍼 관리자 | 관리자 | 결제 관리자 | 멤버 |
|---|---|---|---|---|---|
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 | 결제 관련 감사 로그를 보십시오 | ✅ | ✅ | ✅ | ❌ |
__CAPGO_KEEP_0__ 단일 앱에만 제한됩니다. 팀원은 단일 앱에만 작업해야 하며 전체 조직은 아닙니다.
| 역할 | 내부 이름 | 설명 |
|---|---|---|
| 앱 관리 | app_admin | 한 앱에 대한 전체 제어 — 채널, 장치, 사용자 역할. |
| 앱 개발자 | app_developer | 배포 패키지 업로드, 장치 관리, 원시 빌드 트리거, 채널 설정 업데이트. |
| 앱 업로더 | app_uploader | 읽기 권한 + 새로운 배포 패키지 버전 업로드. |
| 앱 리더 | app_reader | 읽기 전용 — 통계, 배포 패키지, 채널, 로그, 장치. |
| 앱 미리보기 | app_preview | 앱 권한 매트릭스 |
앱 권한 매트릭스 섹션
권한| Organization- and app-bound preview CI lifecycle: upload a bundle and create a preview channel. Creating that channel automatically grants lifecycle rights only for it. | 설명 | 앱 관리자 | 앱 개발자 | 앱 업로더 | 앱 리더 |
|---|---|---|---|---|---|
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 devices | ✅ | ✅ | ❌ | ❌ |
app.read_devices | 기기 목록 보기 | ✅ | ✅ | ✅ | ✅ |
app.build_native | 자연 클라우드 빌드를 트리거하세요 | ✅ | ✅ | ❌ | ❌ |
app.read_audit | 앱 수준 활동 로그 보기 | ✅ | ✅ | ✅ | ✅ |
app.update_user_roles | 앱 범위 역할 assignments 관리 | ✅ | ❌ | ❌ | ❌ |
bundle.delete | 배ंडल 삭제 | ✅ | ❌ | ❌ | ❌ |
앱 미리보기 권한 집합
앱 미리보기 권한 집합사용 앱 미리보기 (app_previeworganization-와 app-에 바인딩된 CI 키가 PR 미리보기 라이프 사이클을 관리하는 데 사용됩니다. 앱 또는 organization-에 대한 광범위한 액세스를 제공하지 않습니다.
The app_preview 바인딩은 다음 앱 수준 권한만 부여합니다:
| 권한 | 허용 |
|---|---|
app.read | 선택한 앱을 읽습니다. |
app.read_bundles | 업로드된 번들을 읽습니다. |
app.upload_bundle | __CAPGO_KEEP_0__를 업로드하는 배포본을 업로드하세요. |
app.create_channel | __CAPGO_KEEP_0__를 생성하세요. |
App Preview 키가 채널을 생성할 때, Capgo는 자동으로 그 키에 새로운 채널에 대한 자식 바인딩을 제공합니다. channel_preview __CAPGO_KEEP_0__는 새로운 채널에 대한 바인딩만 제공합니다.
| 권한 | 허용 |
|---|---|
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.
채널 역할
역할__CAPGO_KEEP_0__ 채널에 한정됩니다. 특정 릴리스 채널에 대한 목표된 접근 권한을 제공하는 데 유용합니다.
| 역할 | 내부 이름 | 설명 |
|---|---|---|
| 채널 관리자 | channel_admin | 채널 관리자는 채널 설정, 배포/롤백 패키지, 강제 장치 관리에 대한 전체 제어를 가집니다. |
| 채널 뷰어 | channel_reader | 읽기 전용 — 현재 패키지, 기록, 강제 장치, 감사 로그. |
| 채널 미리보기 | channel_preview | 채널을 생성한 App Preview 키에 할당되며, 읽기, 자신의 패키지를 승격시키고, 해당 채널을 삭제할 수 있습니다. |
채널 권한 매트릭스
채널 권한 매트릭스 섹션| 권한 | 설명 | 채널 관리자 | 채널 뷰어 | 채널 미리보기 |
|---|---|---|---|---|
channel.read | 채널과 현재 배포본을 확인하세요 | ✅ | ✅ | ✅ |
channel.update_settings | 채널 설정 편집 (플랫폼 토글, 업데이트 정책…) | ✅ | ❌ | ❌ |
channel.delete | 채널 삭제 | ✅ | ❌ | ✅ |
channel.read_history | 배포본 assignments 기록 보기 | ✅ | ✅ | ❌ |
channel.promote_bundle | 채널에 현재 배포본 설정 | ✅ | ❌ | ✅ |
channel.rollback_bundle | 이전 배포본으로 롤백 | ✅ | ❌ | ❌ |
channel.manage_forced_devices | 특정 장치에 이 채널 강제 | ✅ | ❌ | ❌ |
channel.read_forced_devices | 강제 장치 목록 보기 | ✅ | ✅ | ❌ |
channel.read_audit | 채널 활동 로그 보기 | ✅ | ✅ | ❌ |
배포본 역할
배포본 역할Scoped to a single bundle version. Rarely needed — most teams use app-level roles instead.
| 내부 이름 | 설명 | 버운드 어드민 |
|---|---|---|
| 특정 버운드의 메타데이터 읽기, 업데이트, 삭제 권한이 있습니다. | bundle_admin | 버운드 뷰어 |
| Read, update metadata, and delete a specific bundle. | bundle_reader | 특정 번들에 대한 읽기 전용 접근 권한. |
채널 권한 우선순위 (대시보드)
채널 권한 우선순위 (대시보드) 제목대시보드에서 채널 접근 권한은 기본적으로 사용자의 앱 역할에 의해 결정됩니다. 더 세부적인 제어를 원하시면 사용자 또는 그룹별로 채널 접근 권한을 특정 채널 권한을 우선순위로 변경하지 않고 사용자 또는 그룹별로 채널 권한을 우선순위로 변경할 수 있습니다.
앱의 접근 탭에서 채널 권한을 우선순위로 변경할 수 있습니다. 자세한 내용은 Organization — 채널 권한 우선순위 를 참조하세요.
우선순위로 변경할 수 있는 권한
Section titled “Overridable permissions”| 권한 | 설명 | 기본 동작 |
|---|---|---|
| 읽기 | 채널과 현재 번들 보기 | 앱 역할에서 상속 |
| 이력 | 번들 assignment 이력 보기 | 앱 역할에서 상속 |
| 번들 연결 | 채널의 활성 번들을 설정하거나 변경 | Inherited from app role |
각 권한은 다음과 같이 설정할 수 있습니다:
- 기본 — 앱 역할에서 상속 (기본)
- 허용 — 앱 역할에 관계없이 명시적으로 허용
- 거부 — 앱 역할에 관계없이 명시적으로 거부
이것은 예를 들어, App Reader에게 채널에서 패키지를 연관시킬 수 있는 권한을 부여하는 것을 허용합니다. 그러나 App Developer로 승격하는 것을 허용하지 않습니다. staging 역할 계층
역할 계층
__CAPGO_KEEP_0__역할은 계층 구조를 형성합니다. 부모 역할은 자식 역할의 모든 권한을 상속합니다. 따라서 는 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)실제 적용 방법:
- 기관 수준의 관리자 는 앱 관리자 모든 앱에서.
- An 앱 관리자 특정 앱의 앱 관리자는 모든 채널에서 채널 관리자가 할 수 있는 것과 같은 모든 것을 할 수 있습니다. An 앱 개발자
- 앱 업로더가 할 수 있는 것과 더 많은 것을 할 수 있습니다. The hierarchy only flows __CAPGO_KEEP_0__ __CAPGO_KEEP_0__
__CAPGO_KEEP_0__ downward — a channel_admin 권한이 없이는 조직 수준 권한을 얻을 수 없습니다.
사용자별로 역할을 assign하는 대신, 그룹을 만들고 그룹에 역할을 assign할 수 있습니다. 그룹은 어떻게 작동하는가 Section titled “그룹은 어떻게 작동하는가”
그룹은
한 조직에 속합니다.- one organization one organization — 여러 조직에 걸쳐서는 안됩니다.
- 그룹은 org, 앱, 채널, 또는 번들 중任意의 범위에서 역할 할당을 보유할 수 있습니다. 예를 들어, 그룹은 앱 A에 대한 "앱 개발자" 역할과 앱 B의 채널에 대한 "채널 관리자" 역할을 할당받을 수 있습니다. 사용자의 권한이 평가될 때, 그들의 그룹 구성원십은 투명하게 해결됩니다. 만약 그들의 그룹 중 하나가 필요한 권한을 부여한다면, 접근이 허용됩니다.사용자는 여러 그룹에 속할 수 있습니다. __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__
staging__CAPGO_KEEP_0__ - __CAPGO_KEEP_0__
- __CAPGO_KEEP_0__ __CAPGO_KEEP_0__그룹의 모든 권한은 더해집니다.
- 그룹 기반 권한은 사용자 주체 — API 키는 그룹 역할을 상속하지 않습니다.
그룹 사용하기
제목 ‘그룹 사용하기’| 사례 | 그룹이 없는 경우 | 그룹이 있는 경우 |
|---|---|---|
| 5명의 QA 엔지니어가 3개의 앱에 개발자 접근 권한이 필요합니다. | 15개의 개별 역할 바인딩 | 1개의 그룹 + 3개의 역할 바인딩 |
| QA 팀에 새로운 멤버가 합류합니다 | 3개의 역할 바인딩을 수동으로 추가합니다 | 그룹에 추가합니다 |
| QA 팀에 새로운 멤버가 떠납니다 | 3개의 역할 바인딩을 수동으로 삭제합니다 | 그룹에서 제거합니다 |
API를 통해 그룹 관리합니다
API를 통해 그룹 관리하는 방법인증이 필요한 모든 그룹 엔드포인트는 __CAPGO_KEEP_1__에서 제공됩니다 /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>"__CAPGO_KEEP_1__
__CAPGO_KEEP_2__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>" }'__CAPGO_KEEP_4__
__CAPGO_KEEP_5__
__CAPGO_KEEP_6__curl -X DELETE "https://api.capgo.app/private/groups/<GROUP_ID>/members/<USER_UUID>" \ -H "authorization: <API_KEY>"역할을 API를 통해 assign하는 방법
역할을 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 | 결제 관리자 |
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
CLI을 통해 역할 assign하는 섹션조직 목록
조직 목록 섹션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 Access Control Reference를 사용하고 있다면 API 운영을 계획하고 API 작업을 연결하는 데 사용하세요. API 개요 API 개요의 구현 세부 정보에 대해 소개 소개의 구현 세부 정보에 대해 API 키 API 키의 구현 세부 정보에 대해 기기 기기의 구현 세부 정보에 대해 패키지 패키지의 구현 세부 정보에 대해