Passer au contenu

Capgo prend en charge des solutions de stockage personnalisées pour vos bundles d’applications, vous permettant d’héberger vos mises à jour sur votre propre infrastructure ou sur des services de stockage tiers. Ceci est particulièrement utile pour les organisations ayant des exigences de sécurité spécifiques, des besoins de conformité ou une infrastructure de stockage existante.

Le stockage personnalisé dans Capgo fonctionne en téléchargeant votre offre groupée vers un emplacement externe et en fournissant à Capgo l’URL pour y accéder. Le Capgo SDK téléchargera ensuite les mises à jour directement à partir de votre emplacement de stockage personnalisé au lieu du stockage cloud par défaut de Capgo.

Le moyen le plus simple d’utiliser le stockage personnalisé consiste à télécharger votre offre groupée sur n’importe quelle URL accessible au public et à fournir cette URL à Capgo.

Terminal window
npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zip

Cette commande indique à Capgo de référencer le bundle à l’URL spécifiée au lieu de le télécharger sur le stockage cloud de Capgo.

Pour un stockage externe sécurisé, vous pouvez chiffrer votre bundle et fournir les clés de déchiffrement :

Terminal window
npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zip --iv-session-key YOUR_IV_SESSION_KEY

Capgo fournit une prise en charge intégrée pour les services de stockage Amazon S3 et compatibles S3. Le CLI peut télécharger automatiquement votre bundle sur S3 et configurer Capgo pour utiliser l’URL S3.

Terminal window
npx @capgo/cli@latest bundle upload \
--s3-region us-east-1 \
--s3-apikey YOUR_ACCESS_KEY \
--s3-apisecret YOUR_SECRET_KEY \
--s3-bucket-name your-bucket-name

Pour les services compatibles S3 ou les points de terminaison personnalisés :

Terminal window
npx @capgo/cli@latest bundle upload \
--s3-region us-east-1 \
--s3-apikey YOUR_ACCESS_KEY \
--s3-apisecret YOUR_SECRET_KEY \
--s3-endpoint https://s3.your-provider.com \
--s3-bucket-name your-bucket-name \
--s3-port 443 \
--no-s3-ssl # Only if your endpoint doesn't support SSL
ParamètreDescriptifObligatoire
--s3-regionRégion AWS pour votre compartiment S3Oui
--s3-apikeyID de clé d’accès S3Oui
--s3-apisecretClé d’accès secrète S3Oui
--s3-bucket-nameNom de votre compartiment S3Oui
--s3-endpointURL de point de terminaison S3 personnaliséeNon
--s3-portPort pour le point de terminaison S3Non
--no-s3-sslDésactiver SSL pour le téléchargement S3Non

Lorsque vous utilisez un stockage personnalisé, notamment avec le cryptage, vous devez préparer correctement vos bundles. Cela implique de créer un fichier zip et éventuellement de le chiffrer.

Tout d’abord, créez un fichier zip de votre app bundle :

Terminal window
npx @capgo/cli@latest bundle zip com.example.app --path ./dist

La commande zip renverra la somme de contrôle du fichier zip. Vous pouvez utiliser cette somme de contrôle pour chiffrer le fichier zip si nécessaire. Utilisez l’option --json pour obtenir une sortie structurée incluant la somme de contrôle.

Terminal window
npx @capgo/cli@latest bundle zip [appId] \
--path ./dist \
--bundle 1.2.3 \
--name myapp-v1.2.3 \
--json \
--no-code-check \
--key-v2 \
--package-json ../../package.json,./package.json
```| Options | Descriptif |
|--------|-------------|
| `--path` | Chemin d'accès au dossier à compresser (par défaut webDir à partir de condensateur.config) |
| `--bundle` | Numéro de version du bundle pour nommer le fichier zip |
| `--name` | Nom personnalisé pour le fichier zip |
| `--json` | Résultats de sortie au format JSON (inclut la somme de contrôle) |
| `--no-code-check` | Ignorer la vérification de l'appel notifyAppReady() et du fichier d'index |
| `--key-v2` | Utiliser le cryptage v2 |
| `--package-json` | Chemins d'accès aux fichiers package.json pour monorepos (séparés par des virgules) |
### Étape 2 : Chiffrer le bundle (facultatif)
Pour une sécurité renforcée, chiffrez votre bundle zip avant de le télécharger :
```shell
# Using default local key
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM
# Using custom key file
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key ./path/to/.capgo_key_v2
# Using key data directly
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key-data "PRIVATE_KEY_CONTENT"

Le paramètre CHECKSUM est obligatoire et doit être la somme de contrôle de votre fichier zip. Vous pouvez obtenir la somme de contrôle à partir de la sortie de la commande zip (utilisez l’option --json pour une sortie structurée).

Par défaut, la commande encrypt utilisera votre clé de signature privée locale. Vous pouvez spécifier une clé personnalisée à l’aide des options --key ou --key-data.

La commande encrypt renverra le ivSessionKey nécessaire au téléchargement ou au déchiffrement.

OptionsDescriptif
zipPathChemin d’accès au fichier zip à chiffrer (obligatoire)
checksumSomme de contrôle du fichier zip (obligatoire) - récupérez-le à partir de la commande zip
--keyChemin personnalisé pour la clé de signature privée (facultatif, utilise la clé locale par défaut)
--key-dataDonnées de clé de signature privée directement (facultatif)
--jsonRésultats de sortie au format JSON
  1. Créez votre application :

    Terminal window
    npm run build
  2. Créez un bundle zip :

    Terminal window
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --bundle 1.2.3

    Notez la somme de contrôle renvoyée par cette commande.

  3. Chiffrez le bundle :

    Terminal window
    npx @capgo/cli@latest bundle encrypt ./com.example.app-1.2.3.zip CHECKSUM_FROM_STEP_2

    Notez le ivSessionKey de la sortie.

  4. Télécharger sur votre espace de stockage : Téléchargez le fichier zip crypté sur votre service d’hébergement.

  5. Inscrivez-vous auprès de Capgo :

    Terminal window
    npx @capgo/cli@latest bundle upload \
    --external https://your-cdn.com/bundles/com.example.app-1.2.3.zip \
    --iv-session-key IV_SESSION_KEY_FROM_STEP_3
  1. Créez votre application :

    Terminal window
    npm run build
  2. Télécharger directement sur S3 :

    Terminal window
    npx @capgo/cli@latest bundle upload \
    --s3-region us-west-2 \
    --s3-apikey YOUR_ACCESS_KEY \
    --s3-apisecret YOUR_SECRET_KEY \
    --s3-bucket-name your-app-bundles \
    --channel Production
  1. Construire et compresser :

    Terminal window
    npm run build
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2
  2. Chiffrez le bundle :

    Terminal window
    npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM
  3. Télécharger sur S3 avec cryptage :

    Terminal window
    npx @capgo/cli@latest bundle upload \
    --s3-region us-west-2 \
    --s3-apikey YOUR_ACCESS_KEY \
    --s3-apisecret YOUR_SECRET_KEY \
    --s3-bucket-name your-app-bundles \
    --iv-session-key IV_SESSION_KEY_FROM_STEP_2 \
    --channel Production

Lorsque vous utilisez un stockage personnalisé, tenez compte de ces bonnes pratiques de sécurité :

  • Assurez-vous que vos URL de stockage sont accessibles aux utilisateurs de votre application mais ne sont pas visibles publiquement
  • Utilisez des URL signées ou une authentification basée sur des jetons lorsque cela est possible
  • Implémenter les en-têtes CORS appropriés pour les applications Web
  • Chiffrez toujours les bundles sensibles à l’aide des outils de chiffrement Capgo
  • Stockez les clés de cryptage en toute sécurité et faites-les pivoter régulièrement
  • Utilisez HTTPS pour toutes les URL de bundle (obligatoire pour les applications mobiles et Electron)### Surveillance
  • Surveiller les journaux d’accès pour détecter les modèles de téléchargement inhabituels
  • Configurer des alertes pour les téléchargements de bundles ayant échoué
  • Auditez régulièrement vos autorisations de stockage

Le pack ne se télécharge pas :

  • Vérifiez que l’URL est accessible au public et utilise HTTPS (obligatoire pour les applications mobiles et Electron)
  • Vérifiez les en-têtes CORS pour les applications Web
  • Assurez-vous que le format du bundle est correct

Erreurs de cryptage :

  • Vérifiez que le ivSessionKey correspond au bundle crypté
  • Vérifiez que le bundle a été chiffré avec la bonne clé
  • Assurez-vous que le cryptage v2 est utilisé pour les nouveaux bundles

Échecs du téléchargement S3 :

  • Vérifiez vos informations d’identification et autorisations S3
  • Vérifier les politiques de compartiment et la configuration CORS
  • Assurez-vous que la région spécifiée est correcte

Vérifiez l’état du forfait :

Terminal window
npx @capgo/cli@latest app debug

Vérifiez l’intégrité du bundle :

Terminal window
npx @capgo/cli@latest bundle list
  • Découvrez les Canaux pour gérer différents environnements de déploiement
  • Explorez [Comportement des mises à jour] (/docs/live-updates/update-behavior/) pour personnaliser la façon dont les mises à jour sont appliquées
  • Configurez Intégration CI/CD pour automatiser votre flux de travail de stockage personnalisé