Canaux
Copiez un prompt de configuration avec les étapes d'installation et le guide Markdown complet pour ce plugin.
Les canaux sont la mécanique de base pour gérer les mises à jour de l'application dans Capgo. Ils vous permettent de contrôler comment et quand vos utilisateurs reçoivent les mises à jour, ce qui permet des fonctionnalités comme les tests A/B, les déploiements étapés et les mises à jour spécifiques au plateau.
Comprendre les canaux
Sous-titre « Comprendre les canaux »Un canal représente une piste de distribution pour les mises à jour de votre application. Chaque canal peut être configuré avec des règles et des contraintes spécifiques :
- Contrôle du paquet (version) : Spécifiez le paquet (version) que les utilisateurs reçoivent
- Ciblage de la Plateforme: Ciblez des plateformes spécifiques (iOS/Android/Electron)
- Politiques d'Actualisation: Contrôlez comment les mises à jour sont livrées
- Restrictions de Dispositif: Gérez lesquels dispositifs peuvent accéder aux mises à jour
Options de Configuration de Canal
: Section intitulée « Options de Configuration de Canal »- public: Définissez comme canal par défaut pour les nouveaux appareils.
- disableAutoUpdateUnderNative: Empêchez les mises à jour lorsque la version native de l'application du dispositif est plus récente que la version stable du canal.
- désactiverMiseAJourAutomatique : Contrôler le comportement de mise à jour (
major,minor,metadata,patch, ounone). - ios/android/electron : Activer ou désactiver la livraison par plateforme.
- autoriserLeChoixDuDispositif : Laisser aux appareils choisir leur canal.
- autoriserLEmulateur, autoriserLeDispositif, autoriserLeDev, : Contrôler les types de dispositif et de build qui reçoivent les mises à jour. : Contrôler les types de dispositif et de build qui reçoivent les mises à jour.
- Déploiement progressif: Gardez un bundle stable tout en exposant un bundle cible à un groupe collant. Déploiements progressifs.
Pratiques recommandées
Section intitulée « Pratiques recommandées »- Canal de test: Maintenez un canal de test pour la validation interne
- Déploiement étalé: Utilisez plusieurs canaux pour le déploiement d'actualisations progressives
- Séparation de plateforme: Créez des canaux séparés pour iOS, Android et Electron lorsque nécessaire
- Contrôle du bundle (version): Utilisez la versionnement semantique pour des chemins d'actualisation clairs
Points de terminaison
Section intitulée « Points de terminaison »https://api.capgo.app/channel/
Créer ou mettre à jour une configuration de canal.
Corps de la demande
Section intitulée « Corps de la demande »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}Pour les champs de lancement et de mise en pause automatique, API accepte également l'équivalent snake_case formes, telles que rollout_version ou auto_pause_enabledou rollback sont des actions terminales ; ne les combinez pas les unes avec les autres.
Exemple de demande version Exemple de demande rollback Configurez une mise en production de 5 % pour un canal existant dont le bundle stable est déjà défini : promoteToStable un canal dont le bundle stable est déjà défini
un canal dont le bundle stable est déjà défini
un canal dont le bundle stable est déjà définiun canal dont le bundle stable est déjà défini production un canal dont le bundle stable est déjà défini
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/Réponse de succès
Section intitulée « Réponse de succès »{ "status": "ok"}La méthode POST est une mise à jour et retourne uniquement son statut. Effectuez une requête GET pour lire la configuration de canal résultante.
Limite de clé de prévisualisation de l'application
Section intitulée « Limite de clé de prévisualisation de l'application »Pour une prévisualisation de PR avec les privilèges minimisés, authentifiez cet endpoint avec authorization: $CAPGO_API_KEY ou capgkey: $CAPGO_API_KEYLa méthode POST est une mise à jour et retourne uniquement son statut. Effectuez une requête GET pour lire la configuration de canal résultante. x-api-key Le header n'est pas accepté par les canaux API.
Un app_preview une clé peut créer un nouveau canal de prévisualisation non public. La création donne automatiquement à cette clé un lien de vie cyclique défini sur le canal uniquement. channel.update_settingsLe rôle ne comprend pas
Ainsi, il ne peut pas utiliser la méthode POST pour mettre à jour un canal existant, y compris un canal par défaut ou principal existant. public Laisser falsenon défini (ou définir-le sur bundle upload --channel ) pour les canaux de prévisualisation de PR. Utilisez
au lieu de traiter la méthode POST comme une mise à jour générale du canal de prévisualisation.
GEThttps://api.capgo.app/channel/
Sous-titre « GET » channelRécupérer les informations du canal. Retourne 50 canaux par page. Sans channella réponse est un tableau. Avec
Paramètres de requête
Section intitulée “Paramètres de requête”app_id: Obligatoire. L'ID de votre applicationpage: Facultatif. Numéro de page pour la paginationchannel: Facultatif. Nom de canal spécifique à récupérer
Exemples de requêtes
Section intitulée “Exemples de requêtes”# 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"Type de réponse
Section intitulée “Type de réponse”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 est un raccourci d'entrée uniquement et n'est pas retourné. Une mise en pause de déploiement est représentée par un non-nul rolloutPausedAt.
Exemple de réponse
Section intitulée « Exemple de réponse »[ { "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" }]SUPPRIMER
Section intitulée « SUPPRIMER »https://api.capgo.app/channel/
Supprimer un canal. Notez que cela affectera tous les appareils utilisant ce canal.
Corps de la demande
Section intitulée « Corps de la demande »interface Channel { channel: string app_id: string delete_bundle?: boolean // also delete the linked bundle}Exemple de demande
Section intitulée « Exemple de demande »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/Réponse de succès
Section intitulée « Réponse de succès »{ "status": "ok"}Nettoyage de l'avance de l'application
Avec, une delete_bundle: trueClé peut nettoyer atomiquement uniquement un canal qu'elle a créé et son bundle lié, non partagé. La clé n'a pas de permission générale. app_preview Fenêtre de terminal bundle.delete Fenêtre de 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/Gestion des erreurs
Section intitulée « Gestion des erreurs »Scénarios d'erreurs courants et leurs réponses :
// 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"}Utilisations courantes
Section intitulée « Utilisations courantes »- Test bêta
{ "app_id": "com.example.app", "channel": "beta", "version": "1.2.0-beta", "public": false, "allow_emulator": true, "allow_dev": true}- Déploiement en production
{ "app_id": "com.example.app", "channel": "production", "version": "1.2.0", "public": true, "disableAutoUpdate": "minor"}- Mises à jour spécifiques au plateforme
{ "app_id": "com.example.app", "channel": "ios-hotfix", "version": "1.2.1", "ios": true, "android": false}Continuer depuis les canaux
Section intitulée « Continuer depuis les canaux »Si vous utilisez Canaux contexte : nom de fonctionnalité de canaux de mise en production de Capgo. Page/zone : page de marketing de solutions de Capgo. Rôle : étiquette de navigation ou élément UI court. Vu dans : page solutions/white-label.astro. Clé de message `solutions_white_label_visual_cell2_value` (Valeur de cellule visuelle de Solutions White Label). pour planifier la routage des canaux et la mise en production étape par étape, connectez-l’à Canaux contexte : nom de fonctionnalité de canaux de mise en production de Capgo. Page/zone : page de marketing de solutions de Capgo. Rôle : étiquette de navigation ou élément UI court. Vu dans : page solutions/white-label.astro. Clé de message `solutions_white_label_visual_cell2_value` (Valeur de cellule visuelle de Solutions White Label). pour les détails d'implémentation dans les canaux, Canaux contexte : nom de fonctionnalité de canaux de mise en production de Capgo. Page/zone : page de marketing de solutions de Capgo. Rôle : étiquette de navigation ou élément UI court. Vu dans : page solutions/white-label.astro. Clé de message `solutions_white_label_visual_cell2_value` (Valeur de cellule visuelle de Solutions White Label). Solution de ciblage de version pour le flux de travail du produit dans Solution de ciblage de version, et Capgo Pratiques d'environnement de qualité : Étapes de mise en scène avec un ID d'application mobile unique pour le contexte pratique dans Capgo Pratiques d'environnement de qualité : Étapes de mise en scène avec un ID d'application mobile unique.