Passer au contenu

Channels

Les canaux constituent le mécanisme principal de gestion des mises à jour des applications dans Capgo. Ils vous permettent de contrôler comment et quand vos utilisateurs reçoivent les mises à jour, en activant des fonctionnalités telles que les tests A/B, les déploiements par étapes et les mises à jour spécifiques à la plate-forme.

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 contraintes spécifiques :

  • Contrôle du bundle (version) : spécifiez quel bundle (version) les utilisateurs reçoivent - Ciblage de plates-formes : ciblez des plates-formes spécifiques (iOS/Android/Electron)
  • Politiques de mise à jour : contrôlez la manière dont les mises à jour sont fournies
  • Restrictions relatives aux appareils : gérez quels appareils peuvent accéder aux mises à jour

## Options de configuration des canaux

  • public : définir comme canal par défaut pour les nouveaux appareils
  • disableAutoUpdateUnderNative : empêche les mises à jour lorsque la version de l’application native de l’appareil est plus récente que le bundle de mise à jour (version) disponible dans le canal (par exemple, l’appareil utilise la version 1.2.3 de l’application native, mais le canal possède un bundle (version) 1.2.2)
  • disableAutoUpdate : contrôle le comportement de la mise à jour (“majeur”, “mineur”, “numéro_version”, “aucun”)
  • ios/android/electron : activer/désactiver pour des plates-formes spécifiques
  • allow_device_self_set : laissez les appareils choisir leur canal
  • allow_emulator : Autoriser les mises à jour sur les appareils émulateurs
  • allow_dev : Autoriser les mises à jour sur les versions de développement

## meilleures pratiques

  1. Canal de test : maintenez un canal de test pour la validation interne
  2. Déploiement par étapes : utilisez plusieurs canaux pour un déploiement progressif des mises à jour
  3. Séparation de plate-forme : créez des canaux séparés pour iOS, Android et Electron si nécessaire.
  4. Bundle (version) Control : utilisez le versioning sémantique pour des chemins de mise à jour clairs

https://api.capgo.app/channel/

Créez ou mettez à jour une configuration de canal.

type disable_update = "major" | "minor" | "version_number" | "none"
interface ChannelSet {
app_id: string
channel: string
version?: string // bundle (version) name
public?: boolean
disableAutoUpdateUnderNative?: boolean
disableAutoUpdate?: disable_update
ios?: boolean
android?: boolean
electron?: boolean
allow_device_self_set?: boolean
allow_emulator?: boolean
allow_dev?: boolean
}
Terminal window
curl -X POST \
-H "authorization: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"app_id": "app_123",
"channel": "beta",
"version": "1.2.0",
"public": false,
"disableAutoUpdate": "minor",
"ios": true,
"android": true,
"electron": true,
"allow_emulator": true
}' \
https://api.capgo.app/channel/
{
"status": "ok"
}

https://api.capgo.app/channel/

Récupérer les informations sur la chaîne. Renvoie 50 chaînes par page.

  • app_id : obligatoire. L’ID de votre application
  • page : Facultatif. Numéro de page pour la pagination
  • channel : Facultatif. Nom de chaîne spécifique à récupérer
Terminal window
# Get all channels
curl -H "authorization: your-api-key" \
"https://api.capgo.app/channel/?app_id=app_123"
# Get specific channel
curl -H "authorization: your-api-key" \
"https://api.capgo.app/channel/?app_id=app_123&channel=beta"
# Get next page
curl -H "authorization: your-api-key" \
"https://api.capgo.app/channel/?app_id=app_123&page=1"
interface Channel {
id: number;
created_at: string;
name: string;
app_id: string;
version: { // bundle (version) assigned to the channel
id: number,
name: string
};
created_by: string;
updated_at: string;
public: boolean;
disableAutoUpdateUnderNative: boolean;
disableAutoUpdate: boolean;
allow_emulator: boolean;
allow_dev: boolean;
}

Dans la réponse ci-dessous, version fait référence au bundle (version) attribué au canal.

{
"data": [
{
"id": 1,
"name": "production",
"app_id": "app_123",
"version": {
"id": 1,
"name": "1.0.0"
},
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z",
"created_by": "user_123",
"public": true,
"disableAutoUpdateUnderNative": false,
"disableAutoUpdate": false,
"allow_emulator": false,
"allow_dev": false
}
]
}

https://api.capgo.app/channel/

Supprimer une chaîne. Notez que cela affectera tous les appareils utilisant ce canal.

interface Channel {
channel: string
app_id: string
}
Terminal window
curl -X DELETE \
-H "authorization: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"app_id": "app_123",
"channel": "beta"
}' \
https://api.capgo.app/channel/
{
"status": "ok"
}

Scénarios d’erreur 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"
}
  1. Test bêta
{
"app_id": "app_123",
"channel": "beta",
"version": "1.2.0-beta",
"public": false,
"allow_emulator": true,
"allow_dev": true
}
  1. Déploiement de la production
{
"app_id": "app_123",
"channel": "production",
"version": "1.2.0",
"public": true,
"disableAutoUpdate": "minor"
}
  1. Mises à jour spécifiques à la plateforme
{
"app_id": "app_123",
"channel": "ios-hotfix",
"version": "1.2.1",
"ios": true,
"android": false
}