내용으로 건너뛰기

Access Control Reference

Capgo 사용 역할 기반 접근 제어 (RBAC) 각 팀원에게 할 수 있는 일을 관리하는 데 도움이 됩니다. 역할은 전체 조직에서 단일 번들까지의 범위에 따라 조직화됩니다. __CAPGO_KEEP_0__ 범위

조직 역할 범위.


__CAPGO_KEEP_1__

예시 사용 사례조직__CAPGO_KEEP_2__
__CAPGO_KEEP_3____CAPGO_KEEP_0____CAPGO_KEEP_0__
__CAPGO_KEEP_0__
채널채널버전 staging 릴리스에 대한 읽기 전용 접근이 필요합니다.
__CAPGO_KEEP_0____CAPGO_KEEP_0____CAPGO_KEEP_0__

__CAPGO_KEEP_0__ 회원은 __CAPGO_KEEP_0__ 범위 내에서 예를 들어, __CAPGO_KEEP_0__ 역할, __CAPGO_KEEP_1__ 앱 역할, __CAPGO_KEEP_2__ 앱 역할 등 하나의 역할을 가질 수 있습니다.


__CAPGO_KEEP_0__ 역할은 __CAPGO_KEEP_1__ 멤버 초대 시 assign 됩니다. __CAPGO_KEEP_0__ 역할은 __CAPGO_KEEP_2__ 전체 조직에 대한 접근 권한을 부여합니다.

__CAPGO_KEEP_0__ 역할__CAPGO_KEEP_0____CAPGO_KEEP_0__
__CAPGO_KEEP_1__org_super_admin__CAPGO_KEEP_2__
__CAPGO_KEEP_3__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회원 역할 변경 (관리자 Super Admin으로 승격 못 함 — 역할 계층으로 차단)
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.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앱 범위 역할 Assign
bundle.delete배달 삭제

단일 채널에 제한적이다. 특정 릴리스 채널에 대한 목표 접근 권한을 제공하기 위해 유용하다.

역할내부 이름설명
채널 관리자channel_admin채널 1개에 대한 전체 제어: 설정, 배포/롤백 패키지, 강제 장치 관리.
채널 관찰자channel_reader읽기 전용 — 현재 배포, 기록, 강제 장치, 감사 로그.

채널 권한 매트릭스

채널 권한 매트릭스 섹션
권한권한 설명채널 관리자채널 관찰자
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채널 활동 로그를 보십시오

__CAPGO_KEEP_0__와 __CAPGO_KEEP_1__를 통해 Bundle 역할을 사용할 수 있습니다.

역할내부 이름설명
Bundle 관리자bundle_admin특정 Bundle을 읽고, 업데이트, 삭제할 수 있습니다.
Bundle Viewerbundle_reader__CAPGO_KEEP_0__

특정 번들에 대한 읽기 전용 접근.

__CAPGO_KEEP_1__

기본적으로 대시보드에서 채널 접근은 사용자의 앱 역할에 의해 결정됩니다. 더 세부적인 제어를 원하시면 사용자 또는 그룹에 대한 특정 채널 권한을 override 권한을 변경하지 않고 앱 역할을 변경하지 않으면서

__CAPGO_KEEP_2__ 에서 앱의 Access 탭을 클릭하여 사용자 옆에 있는 채널 권한 버튼(shield 아이콘)을 클릭하여 구성합니다. 자세한 설명은 Organization — Overriding channel permissions

Override 가능한 권한

Override 가능한 권한
권한설명기본 동작
읽기채널과 현재 번들 보기앱 역할에서 상속
이력번들 assignment 이력 보기앱 역할에서 상속
번들 연결채널에서 활성화된 번들 설정 또는 변경앱 역할에서 상속

각 권한은 다음과 같이 설정할 수 있습니다:

  • 기본 — 앱 역할에서 상속 (기본)
  • 허용 — 앱 역할에 관계없이 명시적으로 허용
  • 거부 — 앱 역할에 관계없이 명시적으로 거부

예를 들어, 앱 리더에게 채널에서 번들을 연관시킬 수 있는 권한을 부여하여 개발자로 승격하지 않도록 할 수 있습니다. staging 역할 계층


__CAPGO_KEEP_0__

역할 계층

역할은 계층 구조를 형성합니다. 부모 역할은 자식 역할의 모든 권한을 상속합니다. 따라서 org_adminapp_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)

클립보드에 복사

  • 실제 적용 방법: 기관 수준의 관리자 App Admin 전체 조직 내의 모든 앱에서 작동할 수 있습니다.
  • 특정 앱의 App Admin은 모든 Channel Admin 이 앱 내의 모든 채널에서 작동할 수 있습니다. 특정 앱의 App Developer는 모든 App Uploader
  • 의 기능을 모두 가지고 있으며 더 많은 기능이 있습니다. __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ __CAPGO_KEEP_2__ __CAPGO_KEEP_3__

The hierarchy only flows downward — a channel_admin never gains org-level permissions, even if they also hold an app-level role.


Groups

그룹

Instead of assigning roles to each user individually, you can create 그룹 and assign roles to the group. Every member of the group inherits those roles automatically.

그룹의 작동 방식

그룹의 작동 방식
  • 그룹은 한 개의 조직 — 여러 개의 조직을跨越할 수 없습니다.
  • 그룹은 org, app, channel, 또는 bundle의任意 범위에서 역할 할당을 보유할 수 있습니다. 예를 들어, 그룹은 App A에 App Developer 역할을 할당하고 App B의 채널에 Channel Admin 역할을 할당할 수 있습니다. 사용자의 권한이 평가될 때, 그룹 구성원십이 투명하게 해결됩니다. 만약 그룹 중 하나가 필요한 권한을 부여하면 접근이 허용됩니다.사용자는 역할 할당 범위 App Developer Channel Admin staging 권한
  • 권한
  • 권한 다중 그룹모든 그룹의 권한 및 권한이 누적됩니다.
  • 그룹 기반 권한은 사용자 주체 — API 키는 그룹 역할을 상속하지 않습니다.
사례그룹이 없는 경우그룹이 있는 경우
5명의 QA 엔지니어가 3개의 앱에 개발자 접근 권한이 필요합니다15개의 개별 역할 바인딩1 그룹 + 3 역할 바인딩
QA 팀에 누군가가 합류합니다3 역할 바인딩을 수동으로 추가합니다그룹에 추가합니다
QA 팀에 누군가가 떠나면3 역할 바인딩을 수동으로 제거합니다그룹에서 제거합니다

API를 통해 그룹 관리

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>"

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>" }'

Response:

[
{
"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회원

회원 제거

__CAPGO_KEEP_0__
터미널 창
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

조직 목록

__CAPGO_KEEP_0__
터미널 창
npx @capgo/cli organization list --apikey <API_KEY>

멤버 목록

__CAPGO_KEEP_0__
터미널 창
npx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>

사용자 지정 역할

사용자 지정 역할

내장 역할은 대부분의 팀 구조를 커버합니다. 사용자 지정 역할 생성은 우리의 로드맵에 있습니다 — 이 기능이 팀이 필요로 한다면 우리에 연락하세요. 이 기능을 사용하는 경우 직접 우리를 도와 우리의 우선순위를 결정할 것입니다.

Access Control Reference에서 계속

Access Control Reference에서 계속

__CAPGO_KEEP_1__를 사용하는 경우 액세스 제어 참조 API과 연결하여 대시보드 및 API 작업을 계획하세요. API 개요 API 개요의 구현 세부 정보에 대해 알아보세요. 소개 소개의 구현 세부 정보에 대해 알아보세요. API 키 API 키의 구현 세부 정보에 대해 알아보세요. 장치 장치의 구현 세부 정보에 대해 알아보세요. 배포 집합 배포 집합의 구현 세부 정보에 대해 알아보세요.