アクセス制御リファレンス
__CAPGO_KEEP_0__
Capgoを使用します。 ロールベースのアクセス制御(RBAC)を使用して、各チームメンバーが何ができるかを管理します。ロールはスコープによって組織化されます。 スコープ スコープ スコープ
スコープ スコープ.
スコープ
スコープスコープ
| スコープ | スコープ | 使用例 |
|---|---|---|
| 組織 | 組織全体とすべてのアプリ | 共同創業者がSuper Admin、会計士がBilling Manager |
| アプリ | 1つのアプリとそのチャンネル | 1つのアプリに従事する契約者がApp Developer |
| チャンネル | 1つのアプリ内に存在するチャンネル | チャンネル staging バンドル |
| __CAPGO_KEEP_0__ | バンドルのバージョン | 特定のリリースに読み取り権限があるレビュアーが必要 |
メンバーは 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 | 請求関連の監査ログを表示 | ✅ | ✅ | ✅ | ❌ |
チャネル管理者
App ロール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アプリプレビュー
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は、チャンネルを作成し、各バンドルをアップロードしたプレビュー キーを記録します。したがって、App プレビュー キーは必要なすべての非公開プレビュー チャンネルを作成し、自身のバンドルをプロモートし、チャンネルとバンドルを原子的に削除できます。ただし、既存のデフォルト/メイン チャンネル、別のプレビュー キーのチャンネル、または別のキーのバンドルに対してはそれを行うことはできません。 channel delete --delete-bundle含まれない
、デバイスまたはロールの管理 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 | 特定のバンドルへの読み取り専用アクセス |
チャンネル権限のオーバーライド(ダッシュボード)
「チャンネル権限のオーバーライド(ダッシュボード)」のセクションデフォルトでは、ダッシュボードでチャンネルへのアクセスはユーザーのアプリロールによって決定されます。より細かい制御が必要な場合は、 ユーザーまたはグループごとに特定のチャンネル権限をオーバーライドできます。 アプリロール
上書きは、アプリの アクセス タブから、ユーザーに隣接するチャンネル許可ボタン(盾アイコン)をクリックして設定します。 Organization — 上書きチャンネル許可 上書き可能な権限
「上書き可能な権限」
権限| 説明 | デフォルトの動作 | 読み取り |
|---|---|---|
| チャンネルとその現在のバンドルを表示します。 | Organization — 上書きチャンネル許可 | アプリロールから継承 |
| 履歴 | バンドルの割り当て履歴を表示 | アプリロールから継承 |
| バンドルを関連付け | チャンネルに表示されているアクティブなバンドルを設定または変更 | アプリロールから継承 |
各権限を次のいずれかに設定できます
- デフォルト — アプリロールのデフォルト値を継承する
- 許可 — アプリロールの値に関係なく、明示的に許可する
- 許可しない — 明示的にブロックする、どのアプリロールに関係なく
これにより、たとえば、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)実際の動作について:
- 組織 組織レベルでAdmin 組織レベルでAdminと同等の権限を持つ アプリ アプリレベルでAdmin
- アプリレベルでAdminと同等の権限を持つ アプリ チャンネル チャンネルレベルでAdmin チャンネルレベルでAdminと同等の権限を持つ
- An アプリ開発者 can do everything an アプリアップローダ can, plus more.
The hierarchy only flows 下向き downward channel_admin —
never gains org-level permissions, even if they also hold an app-level role. Groups Groups Section titled “Groups” Instead of assigning roles to each user individually, you can create グループ グループに役割を割り当てます。グループのすべてのメンバーは、自動的にそのグループに割り当てられた役割を継承します。
グループのしくみ
「グループのしくみ」- グループは 1 つの組織に属します — 複数の組織を跨ぐことはできません。
- グループは 任意のスコープ: 組織、 アプリ、 チャネル、 または バンドル。たとえば、グループはアプリ A に "アプリ開発者" の役割を割り当て、 アプリ開発者 役割 チャンネル管理者 __CAPGO_KEEP_0__のチャンネル
stagingApp Bのチャンネル - ユーザーの権限が評価される際、すべてのグループのメンバーシップが透過的に解決されます。グループのいずれかが必要な権限を付与している場合、許可が与えられます。
- ユーザーは 複数のグループに属することができ、すべてのグループからの権限は加算されます。
- グループベースの権限は ユーザープリンシパル にのみ適用されます。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 権限 (スーパーアドミン または 管理者).
グループを更新
ターミナル画面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”__CAPGO_KEEP_0__
メンバーの一覧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から続けてください”Capgoを使用している場合 ダッシュボードと__CAPGO_KEEP_0__の運用計画を行うためにAccess Control Referenceを使用している場合、__CAPGO_KEEP_0__ Overviewと接続してください API Overviewの実装詳細について API Overview API Keysの実装詳細について Capgo Capacitor API Keys 実装詳細の API キーについて デバイス 実装詳細のデバイスについて、 バンドル 実装詳細のバンドルについて