내용으로 건너뛰기

Access Control Reference

Capgo 사용 역할 기반 접근 제어(RBAC)를 사용하여 팀원 각각이 무엇을 할 수 있는지 관리합니다. 역할은 범위 — 조직 전체에서 단일 번들까지 멤버를 관리하는 데스크톱의 시각적인_walkthrough를 보려면

조직 Organization.


역할 범위

역할 범위

모든 역할은 특정 리소스에 접근 허용하는 범위에 속합니다.

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

멤버는 한 개의 역할을 한 개의 범위 목표당으로 유지할 수 있습니다. 예를 들어, 한 개의 조직 역할, App A의 역할, App B의 다른 역할. 조직 역할


조직 역할

__CAPGO_KEEP_0__

이 역할은 멤버를 초대할 때 assign됩니다. 이 역할은 전체 조직에 대한 접근 권한을 부여합니다.

역할내부 이름설명
슈퍼 어드민org_super_admin소유권과 유사. 조직을 삭제하고, 청구를 관리하고, 앱을 이전할 수 있는 전체 제어권. 조직 생성자에게 자동으로 부여됩니다.
관리자org_admin전체 관리 — 멤버, 앱, 채널을 관리할 수 있습니다. 조직을 삭제할 수 없으며, 청구를 업데이트 할 수 없으며, 앱을 이전할 수 없으며, 사용자를 슈퍼 어드민으로 승격할 수 없습니다.
청구 매니저org_billing_admin청구만 접근할 수 있는 권한: 청구 정보, 청구서, 청구 감사 로그를 볼 수 있습니다. 앱 또는 멤버에 대한 접근 권한이 없습니다.
멤버org_member조직 및 모든 앱에 대한 읽기 전용 접근 권한

조직 권한 매트릭스

조직 권한 매트릭스 섹션
권한설명슈퍼 관리자관리자결제 관리자멤버
org.read조직을 보려면
org.update_settings조직 이름, 로고, 관리 이메일 편집
org.delete조직을 영구 삭제
org.read_members멤버 목록 보기
org.invite_user새로운 멤버 초대
org.update_user_roles관리자로 승격할 수 없습니다. 역할 계층 구조로 인해 Super Admin으로 승격할 수 없습니다.
org.read_billingBILLING 정보 및 현재 플랜 보기
org.update_billing결제 방법 및 플랜 업데이트
org.read_invoices인보이스 보기
org.read_audit조직 활동 로그 보기
org.read_billing_auditBILLING 관련 감사 로그 보기

역할

내부 이름설명앱 관리자
한 앱에 대한 전체 제어 — 채널, 장치, 앱에 대한 사용자 역할. 앱을 삭제하거나 전송할 수 없습니다 (이것은 조직 수준의 작업입니다).app_admin__CAPGO_KEEP_0__
애플리케이션 개발자app_developer배ंडल 업로드, 장치 관리, 네이티브 빌드 트리거, 채널 설정 업데이트. 삭제, 앱 설정 변경, 채널 생성 없음.
앱 업로더app_uploader읽기 액세스 + 새로운 배ंडल 버전 업로드.
앱 리더app_reader읽기 전용 — 통계, 배ंडल, 채널, 로그, 장치.

앱 권한 매트릭스

권한
설명앱 관리자애플리케이션 개발자__CAPGO_KEEP_0__앱 업로더앱 리더
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앱 범위 역할 할당 관리
bundle.delete배ंडल 삭제

채널 역할

채널 역할

단일 채널에 제한됩니다. 특정 릴리스 채널에 대한 표적 접근을 제공하는 데 유용합니다.

채널 관리자채널 권한 오버라이드대시보드
채널channel_admin한 채널의 완전한 제어: 설정, promote/rollback 패키지, 강제 장치 관리.
채널 뷰어channel_reader읽기 전용 — 현재 패키지, 기록, 강제 장치, 감사 로그.

채널 권한 매트릭스

권한 매트릭스 섹션
권한설명채널 관리자채널 뷰어
channel.read채널과 현재 패키지를 확인하세요.
channel.update_settings채널 설정 편집 (플랫폼 토글, 업데이트 정책…)
channel.delete채널 삭제
channel.read_history__CAPGO_KEEP_0__
channel.promote_bundle__CAPGO_KEEP_1__
channel.rollback_bundle__CAPGO_KEEP_2__
channel.manage_forced_devices__CAPGO_KEEP_3__
channel.read_forced_devices__CAPGO_KEEP_4__
channel.read_audit__CAPGO_KEEP_5__

__CAPGO_KEEP_6__

__CAPGO_KEEP_7__

__CAPGO_KEEP_8__

역할내부 이름설명
Bundle Adminbundle_admin특정 번들에 대해 읽기, 업데이트 메타데이터, 삭제
Bundle Viewerbundle_reader특정 번들에 대한 읽기 전용 접근

채널 권한 오버라이드 (대시보드)

채널 권한 오버라이드 (대시보드)

대시보드에서 채널 접근은 기본적으로 사용자의 앱 역할에 의해 결정됩니다. 더 세부적인 제어가 필요하다면, 특정 채널 권한을 우선순위로 설정 사용자 또는 그룹별로 앱 역할을 변경하지 않고

권한 우선순위는 앱의 Access 탭에서 채널 권한 버튼(보호기호)을 클릭하여 사용자 옆에 있습니다. 자세한 설명은 Organization — 채널 권한 우선순위 를 참조하세요.

권한설명기본 동작
읽기채널과 현재 번들 보기앱 역할에서 상속
역사채널에 할당된 번들의 역사 보기앱 역할에서 상속
번들 연결채널에 활성화된 번들을 설정하거나 변경앱 역할에서 상속

권한을 설정할 수 있습니다.

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

이것은 예를 들어 App Reader에게 채널에서 패키지를 연관시킬 수 있는 권한을 부여하는 것을 허용합니다. 그러나 패키지를 App Developer로 승격시키지는 않습니다. staging 역할 계층


__CAPGO_KEEP_0__ __CAPGO_KEEP_0__ __CAPGO_KEEP_0__ org_admin __CAPGO_KEEP_0__ 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)

실제로 작동하는 방식:

  • 1 기관 수준의 Admin은 모든 것을 할 수 있는 App Admin은 기관 수준에서 모든 앱에서 모든 것을 할 수 있습니다. 특정 앱의 App Admin은 모든 것을 할 수 있습니다. 1
  • 특정 앱의 App Admin은 모든 것을 할 수 있습니다. 1 특정 앱의 App Admin은 모든 것을 할 수 있습니다. 채널 관리자 __CAPGO_KEEP_0__
  • An 앱 개발자 __CAPGO_KEEP_0__ 앱 업로더 __CAPGO_KEEP_0__

그룹 그룹 그룹 channel_admin 그룹


개별 사용자에 역할을 assign하는 대신, 그룹 을 만들고 그룹에 역할을 assign할 수 있습니다. 그룹의 모든 멤버는 자동으로 그룹에 할당된 역할을 inherit합니다.

그룹이 어떻게 작동하는가

그룹이 어떻게 작동하는가
  • 그룹은 한 개의 organization에 속합니다 — 여러 org에 걸쳐서는 안됩니다. 그룹은
  • 어떤 scope에서 role binding을 가질 수 있습니다 : org, app, channel, 또는 bundle. 예를 들어, 그룹은 org에 role binding을 가질 수 있습니다. __CAPGO_KEEP_0__ 예를 들어, 그룹은 app에 role binding을 가질 수 있습니다.__CAPGO_KEEP_0__ 예를 들어, 그룹은 channel에 role binding을 가질 수 있습니다. 애플리케이션 개발자 앱 A에서 역할을 수행하고 채널 관리자 앱 B의 채널에서 역할을 수행하고 staging 사용자의 권한이 평가될 때, 그룹 멤버십이 투명하게 해결됩니다. 그룹 중 하나가 필요한 권한을 부여하면 접근이 허용됩니다.
  • 사용자는
  • 여러 그룹에 속할 수 있습니다 , 모든 그룹의 권한이 누적됩니다.그룹 기반 권한은
  • 사용자 주체 — __CAPGO_KEEP_0__ 키는 그룹 역할을 상속하지 않습니다. API

When to use groups

그룹 사용 시기
Scenario시나리오Without groups
그룹이 없는 경우With groups그룹이 있는 경우
5 QA engineers need Developer access to 3 apps5명의 QA 엔지니어가 3개의 앱에 개발자 접근 권한이 필요합니다.15 individual role bindings
15개의 개인 역할 바인딩이 필요합니다. (1명당 1개씩 15명이 필요합니다.)수동으로 3 개의 역할 결합 제거그룹에서 제거

API를 통해 그룹 관리

제목: API를 통해 그룹 관리

모든 그룹 엔드포인트는 인증이 필요하고 Cloudflare에서 제공됩니다. /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 권한 (슈퍼 관리자 또는 관리자).

그룹 업데이트

그룹 업데이트
터미널 창
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>" }'

응답:

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

__CAPGO_KEEP_0__ 역할 assign하기에 허용되는 값 invite_type:

역할 assign
org_super_admin슈퍼 관리자
org_admin관리자
org_billing_adminBilling 매니저
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"
}'

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

사용자 지정 역할

개인 역할

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

__CAPGO_KEEP_0__ Overview와 연결하세요. __CAPGO_KEEP_0__ Overview에서 __CAPGO_KEEP_0__ Overview에 대한 구현 세부 정보를 참조하세요. to plan dashboard and API operations, connect it with API Overview for the implementation detail in API Overview, If you are using __CAPGO_KEEP_0__ 구현 세부 정보 API 키 API 키의 구현 세부 정보 장치 __CAPGO_KEEP_0__ 구현 세부 정보 묶음 __CAPGO_KEEP_0__ 구현 세부 정보