Saluran
Copy sebuah prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Saluran adalah mekanisme inti untuk mengelola pembaruan aplikasi di Capgo. Mereka memungkinkan Anda untuk mengontrol bagaimana dan kapan pengguna Anda menerima pembaruan, memungkinkan fitur seperti tes A/B, peluncuran berjenjang, dan pembaruan spesifik platform.
Pengertian Saluran
Judul bagian “Pengertian Saluran”Saluran mewakili jalur distribusi untuk pembaruan aplikasi Anda. Setiap saluran dapat dikonfigurasi dengan aturan dan keterbatasan tertentu:
- Pengendalian Paket (Versi): Tentukan paket (versi) yang diterima pengguna
- Pengtargetan Platform: Target platform tertentu (iOS/Android/Elektron)
- Kebijakan Pembaruan: Mengontrol bagaimana pembaruan disampaikan
- Pengaturan Perangkat: Mengelola perangkat mana yang dapat mengakses pembaruan
Opsi Konfigurasi Saluran
Judul Bagian ‘Opsi Konfigurasi Saluran’- publik: Tetapkan saluran default untuk perangkat baru.
- disableAutoUpdateUnderNative: Mencegah pembaruan ketika versi aplikasi asli perangkat lebih baru dari bundle stabil saluran.
- disableAutoUpdate: Kendalikan perilaku pembaruan (
major,minor,metadata,patch, ataunone). - ios/android/electron: Aktifkan atau nonaktifkan pengiriman berdasarkan platform.
- izin_perangkat_diri_atur: Biarkan perangkat memilih saluran.
- izin emulator, izin perangkat, izin dev, izin prod: Tentukan perangkat dan jenis build mana yang menerima pembaruan.
- Rollout Progresif: Simpan bundle stabil sambil menampilkan bundle target ke kohort yang menempel. Lihat Rollout Progresif.
Praktik Terbaik
Bagian berjudul “Praktik Terbaik”- Saatnya Menguji SaluranMaintain a testing channel for internal validation
- Pengaturan Rilis Terencana: Gunakan beberapa saluran untuk pengaktifan update secara bertahap
- Pemisahan Platform: Buatkan saluran yang terpisah untuk iOS, Android, dan Electron jika diperlukan
- Pengendalian Paket (versi): Gunakan versi semantik untuk jalur update yang jelas
Endpoint
Bagian berjudul “Endpoint”https://api.capgo.app/channel/
Buat atau perbarui konfigurasi saluran.
Tubuh Permintaan
Bagian berjudul “Tubuh Permintaan”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}Untuk bidang peluncuran dan pause otomatis, API juga dapat menerima bentuk yang setara, seperti snake_case atau rollout_version . Jika kedua bentuk disediakan, nilai camelCase yang lebih berkuasa. auto_pause_enabledhanya dalam bentuk camelCase. rollback Sasaran peluncuran memerlukan saluran yang sudah ada. Saluran tersebut harus memiliki bundle stabil yang sudah ditugaskan atau menerima satu melalui
dalam permintaan POST yang sama. version untuk rollback dan adalah aksi terminal; jangan kombinasikan mereka dengan satu sama lain. promoteToStable Contoh Permintaan
Bab berjudul “Contoh Permintaan”
Konfigurasi 5% rollout untuk saluran yang sudah ada:saluran tersebut sudah memiliki bundle stabil. production Jendela Terminal
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/Bab berjudul “Respons Sukses”
Salin ke clipboard{ "status": "ok"}Copy to clipboard
https://api.capgo.app/channel/
Ambil informasi saluran. Mengembalikan 50 saluran per halaman. Tanpa channel, responsnya adalah array. Dengan channel, responsnya adalah objek saluran tunggal.
Parameter Pemintaan
Judul Bagian “Parameter Pemintaan”app_id: Wajib. ID aplikasi Andapage: Opsional. Nomor halaman untuk pengaturan halamanchannel: Opsional. Nama saluran spesifik untuk diambil
Contoh Permintaan
Judul Bagian “Contoh Permintaan”# 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"Tipe Respons
Judul bagian “Tipe Respons”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 adalah singkat masuk saja dan tidak dikembalikan. Rilis yang terhenti ditunjukkan oleh nilai tidak null rolloutPausedAt.
Contoh Respons
Judul bagian “Contoh Respons”[ { "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" }]HAPUS
Judul bagian “HAPUS”https://api.capgo.app/channel/
Hapus saluran. Perlu diingat bahwa ini akan mempengaruhi semua perangkat yang menggunakan saluran ini.
Parameter Kueri
Bagian berjudul “Parameter Kueri”interface Channel { channel: string app_id: string}Contoh Permintaan
Bagian berjudul “Contoh Permintaan”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/Respons Sukses
Bagian berjudul “Respons Sukses”{ "status": "ok"}Pengelolaan Kesalahan
Bagian berjudul “Pengelolaan Kesalahan”Skenario kesalahan umum dan responsnya:
// 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"}Penggunaan Umum
Judul bagian “Penggunaan Umum”- Pengujian Beta
{ "app_id": "com.example.app", "channel": "beta", "version": "1.2.0-beta", "public": false, "allow_emulator": true, "allow_dev": true}- Peluncuran Produksi
{ "app_id": "com.example.app", "channel": "production", "version": "1.2.0", "public": true, "disableAutoUpdate": "minor"}- Perbaruan Platform-Spesifik
{ "app_id": "com.example.app", "channel": "ios-hotfix", "version": "1.2.1", "ios": true, "android": false}Lanjutkan dari Channel
Judul bagian “Lanjutkan dari Channel”Jika Anda menggunakan Saluran untuk merencanakan routing saluran dan peluncuran tahap demi tahap, hubungkannya dengan Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Solusi Uji Coba Beta untuk alur kerja produk di Solusi Uji Coba Beta, Solusi Target Versi untuk alur kerja produk di Solusi Target Versi, dan Capgo Praktik Terbaik Lingkungan: Pengembangan dengan Satu ID Aplikasi Mobile untuk konteks praktis di Capgo Praktek Praktis Lingkungan: Staging dengan Satu ID Aplikasi Mobile.