Saluran
Kopi 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 mengontrol bagaimana dan kapan pengguna Anda menerima pembaruan, memungkinkan fitur seperti pengujian A/B, peluncuran berjenjang, dan pembaruan spesifik platform.
Paham Saluran
Bab berjudul “Paham 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
- Target Platform: Target spesifik platform (iOS/Android/Electron)
- Kebijakan Perbarui: Kendalikan bagaimana perbarui disampaikan
- Keterbatasan Perangkat: Atur perangkat mana yang dapat mengakses perbarui
Pilihan Konfigurasi Saluran
: Bagian berjudul “Pilihan Konfigurasi Saluran”- publik: Tetapkan sebagai saluran default untuk perangkat baru.
- matiKanPerbaruiDiBawahAplikasiAsli: Mencegah perbarui ketika perangkat memiliki aplikasi asli yang lebih baru dari bundle stabil saluran.
- Menghentikan pembaruan otomatis: Mengontrol perilaku pembaruan (
major,minor,metadata,patch, ataunone). - Mengontrol apakah perangkat mengunduh zip, delta, atau kedua-duanya (, atau
all,zip,delta,zip_from_builtin). Lihatdelta_from_builtinPaket pembaruan ios/android/electron. - : Mengaktifkan atau menonaktifkan pengiriman berdasarkan platform.Mengizinkan perangkat menentukan saluran sendiri
- __CAPGO_KEEP_0____CAPGO_KEEP_1__
- izin emulator, izin perangkat, izin dev, izin produksi: Mengontrol perangkat dan jenis konstruksi yang menerima pembaruan.
- Rollout progresif: Tahan bundle stabil sambil menampilkan bundle target ke kohort yang menempel. Lihat Rollout progresif.
Praktik Terbaik
Judul bagian “Praktik Terbaik”- Saluran Pengujian: Tahan saluran pengujian untuk validasi internal
- Pengaturan Perilisan Langsung: Gunakan beberapa saluran untuk peluncuran pembaruan secara bertahap
- Pemisahan Platform: Buat saluran terpisah untuk iOS, Android, dan Electron jika diperlukan
- Pengendalian Paket (versi): Gunakan versi semantik untuk jalur pembaruan yang jelas
Endpoint
Bab berjudul “Endpoint”https://api.capgo.app/channel/
Membuat atau memperbarui konfigurasi saluran.
Badan Permintaan
Bab berjudul “Badan 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 updatePackage?: "all" | "zip" | "delta" | "zip_from_builtin" | "delta_from_builtin" 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 penghentian otomatis, API juga menerima bentuk yang setara snake_case seperti rollout_version atau auto_pause_enabled. updatePackage Juga menerima update_package. Jika kedua bentuk disediakan, nilai camelCase yang lebih tinggi akan menang. rollback Hanya camelCase.
Target peluncuran memerlukan saluran yang sudah ada. Saluran tersebut harus memiliki bundle stabil yang sudah ditugaskan atau menerima satu melalui version di permintaan POST yang sama. rollback dan promoteToStable tindakan terminal; jangan kombinasikan mereka dengan satu sama lain.
Contoh Permintaan
Judul Bagian “Contoh Permintaan”Konfigurasi 5% untuk saluran yang sudah ada: 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/Judul Bagian “Respons Berhasil”
Salin ke Papan Klip{ "status": "ok"}Salin ke Papan Klip
App Preview key boundary
Section titled “Pembatasan Kunci Aplikasi Pra-Tayang”For a least-privilege PR preview, authenticate this endpoint with authorization: $CAPGO_API_KEY atau capgkey: $CAPGO_API_KEYcontext: HTML teks fragmen dari string Capgo UI yang lebih panjang (kunci induk `alternatives_cta_questions`). Halaman/area: Halaman perbandingan alternatif Capacitor live-update. Peran: Paragraf pemasaran atau hukum yang panjang. Dilihat di: halaman alternatives.astro. Simpanlah istilah produk/brand dan istilah pengembang Capgo secara tepat. Pesan kunci `alternatives_cta_questions` (Alternatives CTA Questions). | HTML teks fragmen dari string Capgo UI yang lebih panjang (kunci induk `appflow_cta_questions`). Halaman/area: Halaman perbandingan/migrasi pemasaran Appflow. Peran: Paragraf pemasaran atau hukum yang panjang. Dilihat di: halaman ionic-appflow.astro. Simpanlah istilah produk/brand dan istilah pengembang Capgo secara tepat. Pesan kunci `appflow_cta_questions` (Appflow CTA Questions). | HTML teks fragmen dari string Capgo UI yang lebih panjang (kunci induk `capwesome_cta_questions`). Halaman/area: Halaman perbandingan Capawesome. Peran: Paragraf pemasaran atau hukum yang panjang. Dilihat di: halaman capwesome.astro. Simpanlah istilah produk/brand dan istilah pengembang Capgo secara tepat. Pesan kunci `capwesome_cta_questions` (Capwesome CTA Questions). | HTML teks fragmen dari string Capgo UI yang lebih panjang (kunci induk `consulting_faq_subtitle`). Halaman/area: Halaman layanan konsultasi. Peran: Judul atau tagline bagian FAQ. Dilihat di: halaman consulting.astro. Simpanlah istilah produk/brand dan istilah pengembang Capgo secara tepat. Pesan kunci `consulting_faq_subtitle` (Consulting FAQ Subtitle). | Halaman/area: Halaman perbandingan/migrasi pemasaran Appflow. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman ionic-appflow.astro, halaman ionic-enterprise-plugins.astro, halaman solusi/ionic-enterprise-plugins.astro. Pesan kunci `appflow_plugins_or` (Appflow Plugins Or). x-api-key header is not accepted by the Channels API.
header tidak diterima oleh Channel __CAPGO_KEEP_0__. app_preview Sebuah channel.update_settingsKunci dapat membuat saluran pra-tayang non-umum baru. Pembuatan secara otomatis memberikan kunci tersebut sebuah ikatan kehidupan siklus kanal untuk saluran tersebut hanya.
Peran tidak termasuk public , sehingga tidak dapat menggunakan POST untuk memperbarui saluran yang ada, termasuk saluran default atau utama yang ada. falseBiarkanlah bundle upload --channel untuk aliran pembuatan dan unggah sebaliknya dari menganggap POST sebagai tampilan umum-channel upsert.
https://api.capgo.app/channel/
Mengambil informasi channel. Mengembalikan 50 channel per halaman. Tanpa channel, tanggapan adalah array. Dengan channel, tanggapan adalah objek channel tunggal.
Parameter Pencarian
Judul Bagian “Parameter Pencarian”app_id: Wajib. ID aplikasi Andapage: Opsional. Nomor halaman untuk pengaturan halamanchannel: Opsional. Nama channel spesifik untuk mengambil
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 Respon
Judul Bagian “Tipe Respon”interface Channel { id: number created_at: string updated_at: string name: string app_id: string created_by: string public: boolean disableAutoUpdateUnderNative: boolean disableAutoUpdate: DisableAutoUpdate updatePackage: "all" | "zip" | "delta" | "zip_from_builtin" | "delta_from_builtin" 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 singkatan masukan saja dan tidak dikembalikan. Rilis yang tertunda diwakili oleh nilai tidak null rolloutPausedAt.
Contoh Respon
Judul Bagian “Contoh Respon”[ { "id": 1, "name": "production", "app_id": "com.example.app", "updatePackage": "all", "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.
Badan Permintaan
Bagian berjudul “Badan Permintaan”interface Channel { channel: string app_id: string delete_bundle?: boolean // also delete the linked bundle}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 Berhasil
Bagian berjudul “Respons Berhasil”{ "status": "ok"}Pembersihan Pratinjau Aplikasi
Judul Bagian: “Pembersihan Pratinjau Aplikasi”Dengan delete_bundle: true, sebuah app_preview Kunci dapat membersihkan atomik hanya sebuah saluran yang dibuat dan bundel terkait, tidak berbagi. Kunci tidak menerima izin umum. bundle.delete Tampilan Jendela Terminal
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/Judul Bagian: “Pengelolaan Kesalahan”
Skenario kesalahan umum dan responsnya:Salin ke Papan Klip
// 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}- Penyebaran Produksi
{ "app_id": "com.example.app", "channel": "production", "version": "1.2.0", "public": true, "disableAutoUpdate": "minor"}- Pembaruan Platform-Spesifik
{ "app_id": "com.example.app", "channel": "ios-hotfix", "version": "1.2.1", "ios": true, "android": false}Teruskan dari Channel
Judul bagian “Teruskan dari Channel”Jika Anda menggunakan Channel Teruskan ke channel routing dan penyebaran tahap, hubungkannya dengan Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Pengujian Beta untuk alur kerja produk di Pengujian Beta, Pengaturan Versi untuk alur kerja produk di Pengaturan Versi, dan Capgo Praktik Terbaik Lingkungan: Staging dengan Satu ID Aplikasi Mobile untuk konteks yang praktis di Capgo Praktik Terbaik Lingkungan: Staging dengan Satu ID Aplikasi Mobile.