채널
설치 단계와 이 플러그인의 전체 마크다운 가이드를 포함한 설정 프롬프트를 복사하세요.
Capgo의 핵심 업데이트 관리 메커니즘인 채널은 앱 업데이트를 관리하는 데 사용됩니다. 채널을 통해 사용자가 업데이트를 언제 받고 어떻게 받는지 제어할 수 있으며, A/B 테스트, 단계별 출시, 플랫폼별 업데이트와 같은 기능을 활성화할 수 있습니다.
배포 버전 제어
- : 사용자가 받는 배포 버전을 지정합니다.플랫폼 대상
- : iOS/Android/Electron과 같은 특정 플랫폼을 대상으로합니다.업데이트 정책
- : 업데이트가 전달되는 방식을 제어합니다.장치 제한
- : 업데이트에 접근할 수 있는 장치를 관리합니다.Understanding Channels
채널 설정 옵션
채널 설정 옵션 제목- public: 새로운 장치에 대한 기본 채널 설정.
- disableAutoUpdateUnderNative: 장치의 네이티브 앱 버전이 채널의 스테빌 버전보다 최신일 때 업데이트를 방지.
- disableAutoUpdate: 업데이트 동작을 제어 (
major,minor,metadata,patch, 또는none). - ios/android/electron: 플랫폼별로 전달을 허용하거나 차단.
- allow_device_self_set: 장치가 채널을 선택하도록 하세요.
- allow_emulator, allow_device, allow_dev, allow_prod: 업데이트 받을 장치 및 빌드 타입을 제어하세요.
- Progressive rollout: 안정적인 번들을 유지하면서 특정 그룹에 대상 번들을 노출하세요. Progressive rollouts.
Best Practices
Section titled “Best Practices”- Testing Channel: __CAPGO_KEEP_0__ 테스트 채널을 유지하여 내부 검증을 수행합니다.
- __CAPGO_KEEP_0__: 여러 채널을 사용하여 점진적인 업데이트 배포를 수행합니다.
- __CAPGO_KEEP_0__: iOS, Android 및 Electron에 필요한 경우 별도의 채널을 생성합니다.
- __CAPGO_KEEP_0__버전 제어 (Bundle) __CAPGO_KEEP_0__ : 명확한 업데이트 경로를 위해 __CAPGO_KEEP_0__를 사용합니다.
__CAPGO_KEEP_0__
Endpoints__CAPGO_KEEP_0__ Section titled “Endpoints”
POSThttps://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}rollout 및 auto-pause field에 대한 API는 snake_case 형식, 예를 들어 rollout_version 또는 auto_pause_enabled. 양쪽 형식이 제공되면 camelCase 값이 우선합니다. rollback camelCase 형식만 허용됩니다.
rollout 대상은 이미 할당된 안정적인 번들을 가지고 있어야 하거나 version POST 요청과 함께 받을 수 있습니다. rollback __CAPGO_KEEP_0__ promoteToStable __CAPGO_KEEP_1__
__CAPGO_KEEP_2__
__CAPGO_KEEP_3____CAPGO_KEEP_4__ production __CAPGO_KEEP_5__
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/__CAPGO_KEEP_8__
__CAPGO_KEEP_9__{ "status": "ok"}__CAPGO_KEEP_11__
https://api.capgo.app/channel/
채널 정보를 조회합니다. 1페이지당 50개의 채널을 반환합니다. channel에서 channel에서
Query Parameters
Section titled “Query Parameters”app_id: 앱 IDpage: 페이지 번호 (페이징)channel: 특정 채널 이름을 조회합니다
Example Requests
Section titled “Example Requests”# 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/
채널을 삭제합니다. 이 채널을 사용하는 모든 장치에 영향을 미칩니다.
__CAPGO_KEEP_0__
__CAPGO_KEEP_1__interface Channel { channel: string app_id: string}__CAPGO_KEEP_3__
__CAPGO_KEEP_4__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/__CAPGO_KEEP_7__
__CAPGO_KEEP_8__{ "status": "ok"}__CAPGO_KEEP_10__
__CAPGO_KEEP_11__일반 오류 상황 및 그에 대한 대응:
// 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를 사용 중이라면 __CAPGO_KEEP_0__ 채널 채널 라우팅과 단계별 롤아웃을 계획하려면 채널 채널 채널 베타 테스트 솔루션 베타 테스트 솔루션의 제품 워크플로우 버전 대상 솔루션 버전 대상 솔루션의 제품 워크플로우 Capgo Environment Best Practices: Staging with One Mobile App ID Capgo 환경에서 실용적인 맥락을 위한 Capgo 환경 설정 지침: 단일 모바일 앱 ID를 사용한 스테이징.