Saluran
Salin 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 pengujian A/B, peluncuran berjenjang, dan pembaruan spesifik platform.
Pahami Saluran
Bab berjudul “Pahami 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.
- matiKanAutoPerbaruiDiBawaLahan: Mencegah perbarui ketika perangkat native memiliki versi yang lebih baru daripada bundle stabil saluran.
- Menghapus Auto Update: Mengontrol perilaku pembaruan (
major,minor,metadata,patch, ataunone). - Mengupdate Paket: Mengontrol apakah perangkat mengunduh zip, delta, atau kedua-duanya (
all,zip,delta,zip_from_builtin, ataudelta_from_builtin). Lihat Paket Pembaruan. - : Aktifkan atau nonaktifkan pengiriman berdasarkan platform.Mengaktifkan Pengaturan Perangkat Sendiri
- : Biarkan perangkat memilih saluran.__CAPGO_KEEP_0__
- izin emulator, izin perangkat, izin dev, izin produksi: Mengontrol perangkat dan jenis build mana yang menerima pembaruan.
- Rollout Progressif: Simpan bundle stabil sambil menampilkan bundle target ke kohort yang menempel. Lihat Rollout Progressif.
Praktik Terbaik
Judul bagian “Praktik Terbaik”- Saluran Pengujian: Tahan saluran pengujian untuk validasi internal
- Rilis Terencana: 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.
Minta Tubuh Permintaan
Bab 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 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 context: Teks fragmen HTML dari string Capgo UI yang lebih panjang (kunci induk `alternatives_cta_questions`). Halaman/area: Halaman perbandingan Capacitor live-update. Peran: Paragraf pemasaran atau hukum yang panjang. Dilihat di: halaman alternatives.astro. Simpan istilah produk/brand dan istilah pengembang Capgo secara tepat. Kunci pesan `alternatives_cta_questions` (Pertanyaan Tindakan Alternatif). | Teks fragmen HTML 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. Simpan istilah produk/brand dan istilah pengembang Capgo secara tepat. Kunci pesan `appflow_cta_questions` (Pertanyaan Tindakan Appflow). | Teks fragmen HTML 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. Simpan istilah produk/brand dan istilah pengembang Capgo secara tepat. Kunci pesan `capwesome_cta_questions` (Pertanyaan Tindakan Capwesome). | Teks fragmen HTML dari string Capgo UI yang lebih panjang (kunci induk `consulting_faq_subtitle`). Halaman/area: Halaman layanan konsultasi. Peran: Judul atau tagline bagian. Dilihat di: halaman consulting.astro. Simpan istilah produk/brand dan istilah pengembang Capgo secara tepat. Kunci pesan `consulting_faq_subtitle` (Judul FAQ Layanan Konsultasi). | 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. Kunci pesan `appflow_plugins_or` (Appflow Plugins Atau). update_packagejuga menerima rollback . Jika kedua bentuk disediakan, nilai camelCase yang menang.
adalah camelCase hanya. version Target peluncuran memerlukan saluran yang sudah ada. Harus memiliki bundle stabil yang sudah ditugaskan atau menerima satu melalui 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 Sukses”
Salin ke Klipbord{ "status": "ok"}Salin ke Klipbord
App Preview key batas
Judul bagian “App Preview key batas”Untuk preview PR dengan hak akses minimal, autentikasi endpoint ini dengan authorization: $CAPGO_API_KEY atau capgkey: $CAPGO_API_KEYUntuk membuat preview non-umum, kunci dapat membuat saluran preview baru. Pembuatan secara otomatis memberikan kunci tersebut ikatan kehidupan siklus saluran untuk saluran tersebut hanya. x-api-key header is not accepted by the Channels API.
, sehingga tidak dapat menggunakan POST untuk memperbarui saluran yang sudah ada, termasuk saluran default atau utama. app_preview Biarkan channel.update_settingskosong (atau tetapkan ke
) untuk saluran preview PR. Gunakan public Kunci dapat membuat saluran preview baru. Pembuatan secara otomatis memberikan kunci tersebut ikatan kehidupan siklus saluran untuk saluran tersebut hanya. falsePeran ini tidak termasuk bundle upload --channel untuk aliran pembuatan dan unggah alih-alih menganggap POST sebagai tampilan umum-channel upsert.
https://api.capgo.app/channel/
Ambil 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 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 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 akan 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
Judul Bagian “Badan Permintaan”interface Channel { channel: string app_id: string delete_bundle?: boolean // also delete the linked bundle}Contoh Permintaan
Judul Bagian “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
Judul Bagian “Respons Berhasil”{ "status": "ok"}Pembersihan Pratinjau Aplikasi
Penghapusan Pratinjau AplikasiDengan 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 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/Penghapusan Pratinjau Aplikasi
Skenario kesalahan umum dan responsnya:Salin ke clipboard
// 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: Kasus Penggunaan Umum- Pengujian Beta
{ "app_id": "com.example.app", "channel": "beta", "version": "1.2.0-beta", "public": false, "allow_emulator": true, "allow_dev": true}- Salin ke clipboard
{ "app_id": "com.example.app", "channel": "production", "version": "1.2.0", "public": true, "disableAutoUpdate": "minor"}- Salin ke clipboard
{ "app_id": "com.example.app", "channel": "ios-hotfix", "version": "1.2.1", "ios": true, "android": false}Salin ke clipboard
Teruskan dari ChannelJudul Bagian: Teruskan dari Channel Jika Anda menggunakan Channel-nya untuk merencanakan routing saluran dan peluncuran tahap demi 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 praktis di Capgo Praktik Terbaik Lingkungan: Staging dengan Satu ID Aplikasi Mobile.