Access Control Reference
__CAPGO_KEEP_0__
Capgo を使用します。 ロールベースのアクセス制御 (RBAC) を使用して、各チームメンバーが実行できることを管理します。ロールはスコープによって組織化されます。 スコープ スコープ スコープ
スコープ スコープ.
スコープ
スコープスコープ
| スコープ | スコープ | 使用例 |
|---|---|---|
| 組織 | 組織全体とそのすべてのアプリ | 共同創業者はSuper Admin、会計士はBilling Manager |
| アプリ | アプリとそのチャンネル | 1つのアプリに従事している契約者はApp Developer |
| チャンネル | アプリ内の一つのチャンネル | QAエンジニアは staging チャンネル |
| パッケージ | バンドルバージョン | 特定のリリースに読み取り権限があるレビュアーが必要 |
メンバーは 1つのスコープターゲットごとに — たとえば、1つの組織ロール、App Aのロール、App Bの異なるロール。
組織ロール
「組織ロール」のセクションメンバーを招待する際に割り当てられるロールです。組織全体にアクセスを許可します。
| ロール | 内部名 | 説明 |
|---|---|---|
| スーパーアドミン | 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 | メンバーの役割を変更 (管理者はスーパーアドミンに昇格できません — ロール階層によりブロックされます) | ✅ | ✅ | ❌ | ❌ |
org.read_billing | 請求情報と現在のプランを表示 | ✅ | ✅ | ✅ | ❌ |
org.update_billing | 支払い方法とプランを更新 | ✅ | ❌ | ✅ | ❌ |
org.read_invoices | 請求書を表示 | ✅ | ✅ | ✅ | ❌ |
org.read_audit | 組織活動ログを表示 | ✅ | ✅ | ❌ | ❌ |
org.read_billing_audit | 請求関連の監査ログを表示 | ✅ | ✅ | ✅ | ❌ |
アプリロール
アプリロール1つのアプリにスコープされている。チームメンバーが1つのアプリのみで作業する場合に使用します。
| ロール | 内部名 | 説明 |
|---|---|---|
| アプリ管理者 | app_admin | 1つのアプリの全権限 — チャネル、デバイス、ユーザーロールのアプリ。アプリの削除または移行は組織レベルでの操作です。 |
| アプリ開発者 | 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 | デバイスを割り当てる、上書きする、またはリンクを切断する | ✅ | ✅ | ❌ | ❌ |
app.read_devices | デバイスのリストを表示する | ✅ | ✅ | ✅ | ✅ |
app.build_native | ネイティブクラウドビルドをトリガーする | ✅ | ✅ | ❌ | ❌ |
app.read_audit | アプリレベルアクティビティログを表示する | ✅ | ✅ | ✅ | ✅ |
app.update_user_roles | アプリスコープロール割り当てを管理する | ✅ | ❌ | ❌ | ❌ |
bundle.delete | バンドルを削除する | ✅ | ❌ | ❌ | ❌ |
アプリプレビュー許可セット
アプリプレビュー許可セット使用 アプリプレビュー (app_preview組織とアプリに紐づいたCIキーを使用して、PRプレビューライフサイクルを管理します。アプリまたは組織全体に広範なアクセスは必要ありません。
The app_preview binding grants only these app-level permissions:
| Permission | Allows |
|---|---|
app.read | Read the selected app |
app.read_bundles | Read uploaded bundles |
app.upload_bundle | Upload a bundle |
app.create_channel | Create a channel |
When an App Preview key creates a channel, Capgo automatically gives that key a child channel_preview binding for the new channel only:
| Permission | Allows |
|---|---|
channel.read | チャンネルを作成するためのキーを読みます。 |
channel.promote_bundle | キー自身がアップロードしたバンドルをそのチャンネルに設定します。 |
channel.delete | そのチャンネルを削除します。 |
なぜなら app_preview 保存している app.read、キーは選択したアプリでチャンネルメタデータを列挙できます。自動的の子孫バインディングは、キーが作成しなかったチャンネルに対してライフサイクル変化を許可しない管理境界です。 管理 __CAPGO_KEEP_0__は、各チャンネルを作成し、各バンドルをアップロードしたプレビュー キーを記録します。したがって、App プレビュー キーは、必要なすべての非公開プレビュー チャンネルを作成し、自身のバンドルをプロモートし、チャンネルとバンドルを原子的に削除できます。ただし、既存のデフォルト/メイン チャンネル、他のプレビュー キーのチャンネル、または他のキーのバンドルに対してはそれを行うことはできません。
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 | 1 つのチャンネルの完全な管理権限: 設定、バンドルをプロモート/ロールバック、強制デバイスの管理。 |
| チャンネルビューア | 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 | チャンネル活動ログを表示する | ✅ | ✅ | ❌ |
バンドルロールを設定する
バンドルロールの設定バンドルバージョンにスコープされたもの。ほとんどのチームはアプリレベルロールを使用するので、まれに必要になります。
| 役割 | 内部名 | 説明 |
|---|---|---|
| バンドル管理者 | bundle_admin | 特定のバンドルを読み、更新、削除できます。 |
| バンドルビューア | bundle_reader | 特定のバンドルへの読み取り専用アクセス |
チャンネル権限オーバーライド(ダッシュボード)
「チャンネル権限オーバーライド(ダッシュボード)」のセクションデフォルトでは、ダッシュボードでチャンネルへのアクセスはユーザーのアプリロールによって決定されます。より細かい制御が必要な場合は、 ユーザーまたはグループごとに特定のチャンネル権限をオーバーライドできます。 __CAPGO_KEEP_0__
上書きは、アプリの アクセス タブから、ユーザーの隣にあるチャンネル許可ボタン(盾のアイコン)をクリックして設定します。 詳細は「 組織 — チャンネル許可の上書き
」を参照してください。
上書き可能な権限| 「上書き可能な権限」 | 権限 | 説明 |
|---|---|---|
| 標準動作 | 読み取り | アプリロールから継承 |
| 履歴 | チャンネルでのバンドル割り当ての履歴を表示 | アプリロールから継承 |
| バンドルを関連付け | チャンネルに有効なバンドルを設定または変更 | アプリロールから継承 |
各権限を次のように設定できます
- デフォルト — アプリロールから継承 (デフォルト)
- 許可 — アプリロールを無視して明示的に許可
- 許可しない — 明示的にブロックする、どのアプリロールに関係なく
これにより、たとえば、App Reader に Bundle を関連付ける権限を与え、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)実際の動作について:
- 1 組織レベルでの管理者 組織レベルでの管理者は、組織内のすべてのアプリで、アプリ管理者ができることをすべて実行できます。 2 アプリ管理者
- アプリ管理者は、指定されたアプリ内のすべてのチャネルで、チャネル管理者ができることをすべて実行できます。 チャネル管理者 チャネル管理者は、指定されたアプリ内のすべてのチャネルで、チャネル管理者ができることをすべて実行できます。 __CAPGO_KEEP_0__ __CAPGO_KEEP_1__
- 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 グループ グループに役割を割り当てます。グループのすべてのメンバーは、自動的にそのグループに割り当てられた役割を継承します。
グループのしくみ
「グループのしくみ」- グループは 1 つの組織に属します — 1 つの組織を超えては存在できません。
- グループは 任意のスコープ: 組織、 アプリ、 チャンネル、 チャンネル管理者 アプリケーション B の
stagingチャンネルの - ユーザーのパーミッションが評価される際、すべてのグループのメンバーシップが透過的に解決されます。必要なパーミッションを与えるグループが存在する場合、許可が与えられます。
- ユーザーは 複数のグループに所属することができます、すべてのグループからのパーミッションは加算されます。
- グループベースのパーミッションは ユーザープリンシパル API キーはグループロールを継承しません。
グループの使用時期
グループの使用時期| シナリオ | グループなし | グループあり |
|---|---|---|
| 5人のQAエンジニアが3つのアプリに開発者アクセス権を必要とする | 15個の個別ロールバインディング | 1つのグループ + 3つのロールバインディング |
| QAチームに誰かが参加する | 3つのロールバインディングを手動で追加する | グループに追加する |
| QAチームから誰かが退会する | 3つのロールバインディングを手動で削除する | グループから削除する |
Managing groups via API
Section titled “Managing groups via API”すべてのグループエンドポイントは、認証が必要であり、 /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 権限 (スーパーアドミン または Capacitorライブアップデートの代替).
Capacitorライブアップデートの代替
Capacitorライブアップデートの代替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
Section titled “Assigning roles via API”グループのメンバー
メンバーの一覧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" }'CLIを使用したロールの割り当て
「CLIを使用したロールの割り当て」のセクション組織の一覧
「組織の一覧」のセクションnpx @capgo/cli organization list --apikey <API_KEY>メンバーの一覧
「メンバーの一覧」セクションnpx @capgo/cli organization members <ORG_ID> --apikey <API_KEY>カスタムロール
「カスタムロール」セクション組み込みロールはほとんどのチーム構造をカバーしています。カスタムロールの作成は、開発計画に含まれています — これがチームが必要としている場合 Capgoにご連絡くださいご利用のケースは、この機能の優先順位を直接決定します。
Access Control Referenceから続けてください
タイトル:Access Control Referenceから続けてくださいあなたが利用している場合 Access Control Reference ダッシュボードとAPIの運用計画を行っている場合、API Overviewと接続してください API Overview API Overviewの実装詳細 導入 導入の実装詳細 API Keys 実装詳細の API キー用 デバイス 実装詳細のデバイス、 バンドル 実装詳細のバンドル用