チャンネル
このプラグインのインストール手順とフルマークダウンガイドのすべてのステップを含む設定プロンプトをコピーする
Capgoのアプリのアップデートを管理する基本的なメカニズムはチャンネルです。ユーザーがアップデートを受け取る方法と時期を制御することができ、A/Bテスト、ステージドロールアウト、プラットフォーム固有のアップデートなどの機能を有効にします。
チャンネルの理解
「チャンネルの理解」のセクションチャンネルは、アプリのアップデートの配布トラックを表します。各チャンネルは、特定のルールと制約とともに構成できます:
- バンドル(バージョン)制御:ユーザーが受け取るバンドル(バージョン)を指定
- プラットフォーム対象設定: iOS/Android/Electron向けにターゲットを設定します
- 更新ポリシー: 更新の配信方法を制御します
- デバイス制限: 更新にアクセスできるデバイスを管理します
チャンネル設定オプション
チャンネル設定オプションのセクション- パブリック: 新しいデバイスにデフォルトのチャンネルとして設定します。
- disableAutoUpdateUnderNative: デバイスのネイティブアプリのバージョンがチャンネルの安定バンドルのバージョンよりも新しい場合、更新を防止します。
- 自動更新を無効にする: アップデートの動作を制御します (
major,minor,metadata,patch, またはnone). - ios/android/electron: プラットフォームごとに配信を有効または無効にする
- デバイスがチャンネルを選択できるようにするエミュレータを許可する
- デバイスを許可する, 開発用を許可する, 生産用を許可する, : デバイスとビルドの種類を制御してアップデートを送信する受信するデバイスとビルドの種類を制御する
- 進歩的ロールアウト: 安定したバンドルを維持しながら、ターゲットバンドルを固有のコホートに公開する 進歩的ロールアウト.
ベストプラクティス
セクション "ベストプラクティス"- テストチャネル: 内部検証のためにテストチャネルを維持する
- 段階的なロールアウト: 複数のチャネルを使用して、順次アップデートの展開
- プラットフォーム分離: iOS、Android、Electron の場合に必要な場合に、別々のチャネルを作成する
- バンドル(バージョン)管理: 使用 意味的バージョニング 明確なアップデートパス
エンドポイント
セクション「エンドポイント」POST
セクション「POST」https://api.capgo.app/channel/
チャンネル設定を作成または更新します。
リクエストボディ
セクション「リクエストボディ」type DisableAutoUpdate = "major" | "minor" | "metadata" | "patch" | "none"type AutoPauseAction = "pause" | "rollback" | "notify"
interface ChannelSet { app_id: string channel: string version?: string | null // stable bundle name public?: boolean disableAutoUpdateUnderNative?: boolean disableAutoUpdate?: DisableAutoUpdate ios?: boolean android?: boolean electron?: boolean allow_device_self_set?: boolean allow_emulator?: boolean allow_device?: boolean allow_dev?: boolean allow_prod?: boolean
// Progressive rollout (camelCase is preferred) rolloutVersion?: string | number | null // target bundle name or ID rolloutPercentage?: number // 0–100 rolloutPercentageBps?: number // 0–10000; takes precedence when both are set rolloutEnabled?: boolean rolloutPaused?: boolean // input-only convenience flag rolloutPausedAt?: string | null // ISO timestamp or null rolloutPauseReason?: string | null rolloutCacheTtlSeconds?: number // 60–31536000 rollback?: boolean promoteToStable?: boolean
// Rollout auto-pause policy autoPauseEnabled?: boolean autoPauseWindowMinutes?: number autoPauseFailureRateBps?: number | null autoPauseConfidence?: number autoPauseMinAttempts?: number | null autoPauseMinFailures?: number | null autoPauseAction?: AutoPauseAction autoPauseCooldownMinutes?: number}ロールアウトと自動停止フィールドの場合、API は同等の値も受け入れます。 snake_case フォームなど rollout_version または auto_pause_enabledはキャメルケースのみです。 rollback ロールアウトのターゲットには既存のチャンネルが必要です。既存のチャンネルには安定したバンドルが割り当てられている必要があります。また、POSTリクエストでバンドルを受け取ることもできます。
そして version は終端アクションです。1つずつ実行してください。 rollback 例えば promoteToStable サンプルリクエスト
and production and
curl -X POST \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "com.example.app", "channel": "production", "rolloutVersion": "1.3.0", "rolloutPercentage": 5, "rolloutEnabled": true, "rolloutCacheTtlSeconds": 2592000, "autoPauseEnabled": true, "autoPauseFailureRateBps": 500, "autoPauseMinAttempts": 100, "autoPauseAction": "pause" }' \ https://api.capgo.app/channel/成功応答
「成功応答」のセクション{ "status": "ok"}POSTは、ステータスのみを返します。結果のチャンネル構成を読むには、GET要求を実行してください。
アプリプレビュー キー境界
「アプリプレビュー キー境界」のセクション最小限の特権のPRプレビューのために、このエンドポイントを認証する必要があります。 authorization: $CAPGO_API_KEY または capgkey: $CAPGO_API_KEYヘッダーはチャンネル__CAPGO_KEEP_0__で受け入れられません。 x-api-key header is not accepted by the Channels API.
An app_preview キーを使用して、非公開のプレビュー チャンネルを作成できます。作成すると、そのキーはそのチャンネルにのみスコープされているライフサイクル バインディングが自動的に割り当てられます。ロールには channel.update_settings, so it cannot use POST to update an existing channel, including an existing default or main channel.
なので、既存のチャンネル(既定のチャンネルやメインチャンネルを含む)を更新するにはPOSTを使用できません。 public 未設定 false未設定(または bundle upload --channel )にします。PR プレビュー チャンネルの場合、代わりに
を使用して、作成とアップロードのフローを実行します。
GEThttps://api.capgo.app/channel/
タイトル「GET」 channelチャンネル情報を取得します。50チャンネルごとにページを返します。 channelを指定しない場合、レスポンスは配列になります。
パラメータ
「パラメータ」のセクションapp_id: 必須。アプリのIDpage: オプション。ページネーションのページ番号channel: オプション。特定のチャンネル名を取得
例のリクエスト
「例のリクエスト」のセクション# Get all channelscurl -H "authorization: your-api-key" \ "https://api.capgo.app/channel/?app_id=com.example.app"
# Get a specific channelcurl -H "authorization: your-api-key" \ "https://api.capgo.app/channel/?app_id=com.example.app&channel=production"
# Get the next pagecurl -H "authorization: your-api-key" \ "https://api.capgo.app/channel/?app_id=com.example.app&page=1"レスポンスのタイプ
「レスポンスのタイプ」のセクションinterface Channel { id: number created_at: string updated_at: string name: string app_id: string created_by: string public: boolean disableAutoUpdateUnderNative: boolean disableAutoUpdate: DisableAutoUpdate allow_device_self_set: boolean allow_emulator: boolean allow_device: boolean allow_dev: boolean allow_prod: boolean version: { id: number, name: string } | null // stable bundle
// These three response identifiers intentionally use snake_case. rollout_version: number | null rollout_id: string rollout_version_info: { id: number, name: string } | null
rolloutPercentageBps: number rolloutEnabled: boolean rolloutPausedAt: string | null rolloutPauseReason: string | null rolloutCacheTtlSeconds: number autoPauseEnabled: boolean autoPauseWindowMinutes: number autoPauseFailureRateBps: number | null autoPauseConfidence: number autoPauseMinAttempts: number | null autoPauseMinFailures: number | null autoPauseAction: AutoPauseAction autoPauseCooldownMinutes: number autoPauseLastTriggeredAt: string | null autoPauseLastCheckedAt: string | null}rolloutPaused は入力専用のショートカットであり、返されません。ロールアウトが一時停止されている場合、非 null の rolloutPausedAt.
例の応答
「例の応答」のセクション[ { "id": 1, "name": "production", "app_id": "com.example.app", "version": { "id": 1, "name": "1.2.0" }, "rollout_version": 2, "rollout_id": "e60c19c9-2e65-4e0d-bc06-d1f5b4f96276", "rollout_version_info": { "id": 2, "name": "1.3.0" }, "rolloutPercentageBps": 500, "rolloutEnabled": true, "rolloutPausedAt": null, "rolloutCacheTtlSeconds": 2592000, "autoPauseEnabled": true, "autoPauseFailureRateBps": 500, "autoPauseAction": "pause" }]DELETE
「DELETE」のセクションhttps://api.capgo.app/channel/
チャンネルを削除します。ただし、このチャンネルを使用しているすべてのデバイスに影響を与えることに注意してください。
リクエストボディ
「リクエストボディ」のセクションinterface Channel { channel: string app_id: string delete_bundle?: boolean // also delete the linked bundle}例のリクエスト
「例のリクエスト」のセクションcurl -X DELETE \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "com.example.app", "channel": "beta" }' \ https://api.capgo.app/channel/成功応答
「成功応答」セクション{ "status": "ok"}アプリプレビューのクリーンアップ
「アプリプレビューのクリーンアップ」セクションそして delete_bundle: true, ある app_preview キーは、自身が作成したチャンネルと、その紐付けられた、共有されていないバンドルを含めて、作成したチャンネルを含めて、のみクリーンアップすることができます。キーは一般的な bundle.delete 許可を受けません。
curl -X DELETE \ -H "capgkey: $CAPGO_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "app_id": "com.example.app", "channel": "pr-123", "delete_bundle": true }' \ https://api.capgo.app/channel/エラー処理
「エラー処理」のセクション一般的なエラーシナリオとその応答:
// Channel not found{ "error": "Channel not found", "status": "KO"}
// Invalid bundle (version) format{ "error": "Invalid version format. Use semantic versioning", "status": "KO"}
// Invalid update policy{ "error": "Invalid disableAutoUpdate value", "status": "KO"}
// Permission denied{ "error": "Insufficient permissions to manage channels", "status": "KO"}一般的な使用例
「一般的な使用例」のセクション- ベータテスト
{ "app_id": "com.example.app", "channel": "beta", "version": "1.2.0-beta", "public": false, "allow_emulator": true, "allow_dev": true}- 本番展開
{ "app_id": "com.example.app", "channel": "production", "version": "1.2.0", "public": true, "disableAutoUpdate": "minor"}- プラットフォーム固有の更新
{ "app_id": "com.example.app", "channel": "ios-hotfix", "version": "1.2.1", "ios": true, "android": false}チャンネルから続けて
「チャンネルから続けて」セクションCapgoを使用している場合 チャンネル context:Capgoのリリースチャンネル機能名。ページ/エリア:Capgoのソリューションズマーケティングページ。役割:短いUIラベルまたはナビゲーションアイテム。見つける場所:ページソリューションズ/ホワイトラベル.astro。メッセージキー`solutions_white_label_visual_cell2_value` (ソリューションズホワイトラベルビジュアルセル2値)。 チャンネル context:Capgoのリリースチャンネル機能名。ページ/エリア:Capgoのソリューションズマーケティングページ。役割:短いUIラベルまたはナビゲーションアイテム。見つける場所:ページソリューションズ/ホワイトラベル.astro。メッセージキー`solutions_white_label_visual_cell2_value` (ソリューションズホワイトラベルビジュアルセル2値)。 チャンネルの実装詳細について チャンネル context:Capgoのリリースチャンネル機能名。ページ/エリア:Capgoのソリューションズマーケティングページ。役割:短いUIラベルまたはナビゲーションアイテム。見つける場所:ページソリューションズ/ホワイトラベル.astro。メッセージキー`solutions_white_label_visual_cell2_value` (ソリューションズホワイトラベルビジュアルセル2値)。 チャンネルの実装詳細については、以下のページを参照してください。チャンネルから続けて バージョン対象ソリューション バージョン対象ソリューションにおける製品ワークフローについて Capgo 環境のベストプラクティス:1つのモバイルアプリIDでステージング Capgo 環境のベストプラクティス:1つのモバイルアプリIDでステージングの実践