Passer au contenu

Stockage personnalisé

Capgo prend en charge les solutions de stockage personnalisées pour vos bundles d’application, vous permettant d’héberger vos mises à jour sur votre propre infrastructure ou 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 bundle vers un emplacement externe et en fournissant à Capgo l’URL pour y accéder. Le SDK Capgo téléchargera ensuite les mises à jour directement depuis votre emplacement de stockage personnalisé au lieu du stockage cloud par défaut de Capgo.

La façon la plus simple d’utiliser le stockage personnalisé est de télécharger votre bundle vers une URL publiquement accessible et de 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 vers 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 Amazon S3 et les services de stockage compatibles S3. Le CLI peut automatiquement télécharger votre bundle vers 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 # Uniquement si votre point de terminaison ne prend pas en charge SSL
ParamètreDescriptionRequis
--s3-regionRégion AWS pour votre bucket S3Oui
--s3-apikeyID de clé d’accès S3Oui
--s3-apisecretClé d’accès secrète S3Oui
--s3-bucket-nameNom de votre bucket 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

Lors de l’utilisation d’un stockage personnalisé, en particulier avec chiffrement, 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 bundle d’application :

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
OptionDescription
--pathChemin vers le dossier à zipper (par défaut webDir de capacitor.config)
--bundleNuméro de version du bundle pour nommer le fichier zip
--nameNom personnalisé pour le fichier zip
--jsonRésultats de sortie au format JSON (inclut la somme de contrôle)
--no-code-checkIgnorer la vérification de l’appel notifyAppReady() et du fichier index
--key-v2Utiliser le chiffrement v2
--package-jsonChemins vers les fichiers package.json pour les monorepos (séparés par des virgules)

Pour une sécurité renforcée, chiffrez votre bundle zip avant de le télécharger :

Terminal window
# Utilisation de la clé locale par défaut
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM
# Utilisation d'un fichier de clé personnalisé
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key ./path/to/.capgo_key_v2
# Utilisation directe des données de clé
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key-data "PRIVATE_KEY_CONTENT"

Le paramètre CHECKSUM est requis 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 en utilisant les options --key ou --key-data.

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

OptionDescription
zipPathChemin vers le fichier zip à chiffrer (requis)
checksumSomme de contrôle du fichier zip (requis) - obtenez-la à partir de la commande zip
--keyChemin personnalisé pour la clé de signature privée (optionnel, utilise la clé locale par défaut)
--key-dataDonnées de clé de signature privée directement (optionnel)
--jsonRésultats de sortie au format JSON
  1. Construisez 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 l’ivSessionKey de la sortie.

  4. Téléchargez vers votre stockage : Téléchargez le fichier zip chiffré vers votre service d’hébergement.

  5. Enregistrez avec 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. Construisez votre application :

    Terminal window
    npm run build
  2. Téléchargez directement vers 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. Construisez et zippez :

    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échargez vers S3 avec chiffrement :

    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

Lors de l’utilisation d’un stockage personnalisé, considérez ces meilleures pratiques de sécurité :

  • Assurez-vous que vos URL de stockage sont accessibles aux utilisateurs de votre application mais pas publiquement découvrables
  • Utilisez des URL signées ou une authentification basée sur des jetons lorsque c’est possible
  • Implémentez des en-têtes CORS appropriés pour les applications web
  • Chiffrez toujours les bundles sensibles en utilisant les outils de chiffrement Capgo
  • Stockez les clés de chiffrement en toute sécurité et effectuez une rotation régulière
  • Utilisez HTTPS pour toutes les URL de bundle (requis pour iOS et Android)
  • Surveillez les journaux d’accès pour détecter les schémas de téléchargement inhabituels
  • Configurez des alertes pour les échecs de téléchargement de bundle
  • Auditez régulièrement vos autorisations de stockage

Le bundle ne se télécharge pas :

  • Vérifiez que l’URL est accessible publiquement et utilise HTTPS (requis pour iOS et Android)
  • Vérifiez les en-têtes CORS pour les applications web
  • Assurez-vous que le format du bundle est correct

Erreurs de chiffrement :

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

Échecs de téléchargement S3 :

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

Vérifier le statut du bundle :

Terminal window
npx @capgo/cli@latest app debug

Vérifier 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 le Comportement des mises à jour pour personnaliser l’application des mises à jour
  • Configurez l’Intégration CI/CD pour automatiser votre flux de travail de stockage personnalisé