Skip to content

Access Control Reference

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

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


역할 범위

역할 범위

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

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

멤버는 한 개의 범위 목표당 한 개의 조직 역할, App A의 한 역할, App B의 다른 역할과 같은 예를 들어.


초대 멤버에게 할당되는 이러한 역할은 조직 전체에 대한 접근 권한을 부여합니다.

역할내부 이름설명
슈퍼 어드민org_super_adminOwner와 같은 권한. 조직 삭제, 청구 관리, 앱 전송 포함 전체 제어. 조직 생성자에게 자동으로 부여됨.
관리자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_auditbilling 관련 감사 로그 보기

Appflow 플러그인 또는

앱 역할

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

역할내부 이름설명
앱 관리자app_admin단일 앱에 대한 전체 제어 — 채널, 장치, 앱 사용자 역할. 앱 삭제 또는 전송은 조직 수준의 작업입니다.
앱 개발자app_developer배포 패키지 업로드, 장치 관리, 네이티브 빌드 트리거, 채널 설정 업데이트. 삭제, 앱 설정 변경, 채널 생성은 허용되지 않습니다.
앱 업로더app_uploader읽기 전용 + 새로운 배포 패키지 버전 업로드
앱 리더app_reader읽기 전용 — 통계, 패키지, 채널, 로그, 장치.
앱 미리보기app_previewOrganization-와 앱에 바인딩된 미리보기 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개의 역할 바인딩을 수동으로 제거합니다.그룹에서 제거합니다.

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

그룹 목록

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

그룹 만들기 org.read_members 그룹 만들기

List groups
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 세부 사항에 대한 묶음.