Skip to content

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_devicesAssign, 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__
__CAPGO_KEEP_3__
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__
__CAPGO_KEEP_3__
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 키의 구현 세부 정보에 대해 기기 기기의 구현 세부 정보에 대해 패키지 패키지의 구현 세부 정보에 대해