내용으로 건너뛰기

접근 제어 참조

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_billingbilling 정보 및 현재 플랜 보기✅✅✅❌
org.update_billing결제 방법 및 플랜 업데이트✅❌✅❌
org.read_invoices청구서 보기✅✅✅❌
org.read_audit조직 활동 로그 보기✅✅❌❌
org.read_billing_auditbilling-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 키가 생성한 채널에 대한 읽기, 자신의 패키지를 승격시키고, 해당 채널을 삭제할 수 있습니다.
__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의 채널에서 역할 staging App 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>"

터미널 창
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_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__ 내장 역할은 대부분의 팀 구조를 커버합니다. 사용자 지정 역할 생성은 우리의 로드맵에 있습니다 — 만약 팀이 이 기능을 필요로 한다면, 우리에 연락하세요. 사용 사례는 직접 이 기능의 우선순위를 결정할 것입니다.

Access Control Reference에서 계속 진행하세요.

Access Control Reference에서 계속 진행하세요.

Access Control Reference을 사용 중이라면 권한 제어 참조 계획 대시보드 및 API 연산을 위해 연결하세요. API 개요 API 개요에서 구현 세부 정보를 참조하세요. 소개 소개에서 구현 세부 정보를 참조하세요. API 키 API 키에서 구현 세부 정보를 참조하세요. 기기 기기 구현 세부 사항에 대해 패키지 패키지 구현 세부 사항에 대해