Aller au contenu

Stockage personnalisé

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

Le moyen le plus simple d'utiliser un stockage personnalisé consiste à envoyer votre bundle vers une URL publique et à fournir cette URL à Capgo.

Fenêtre de terminal
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 l'envoyer 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 :

Fenêtre de terminal
npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zip --iv-session-key YOUR_IV_SESSION_KEY

Capgo offre un support natif pour Amazon S3 et les services de stockage compatibles S3. Le CLI peut envoyer automatiquement votre bundle sur S3 et configurer Capgo pour utiliser l'URL S3.

Fenêtre de terminal
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 endpoints personnalisés :

Fenêtre de terminal
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ètreDescriptionRequis
--s3-regionRégion AWS pour votre bucket S3Oui
--s3-apikeyID de la clé d'accès S3Oui
--s3-apisecretClé d'accès secrète S3Oui
--s3-bucket-nameNom de votre bucket S3Oui
--s3-endpointURL de l'endpoint S3 personnaliséNon
--s3-portPort de l'endpoint S3Non
--no-s3-sslDésactiver le SSL pour l'upload S3Non

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

Tout d'abord, créez un fichier zip de votre bundle d'application :

Fenêtre de terminal
npx @capgo/cli@latest bundle zip com.example.app --path ./dist

La commande zip retournera le checksum du fichier zip. Vous pouvez utiliser ce checksum pour chiffrer le fichier zip si nécessaire. Utilisez l' --json option pour obtenir une sortie structurée incluant le checksum.

Fenêtre de terminal
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 du dossier à zipper (par défaut webDir dans capacitor.config)
--bundleNuméro de version du bundle pour nommer le fichier zip
--nameNom personnalisé pour le fichier zip
--jsonRésultats en format JSON (inclut le checksum)
--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é accrue, chiffrez votre bundle zip avant l'upload :

Fenêtre de terminal
# 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 CHECKSUM paramètre est requis et doit être le checksum de votre fichier zip. Vous pouvez obtenir le checksum via la sortie de la commande zip (utilisez --json l'option 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 via les --key ou --key-data options.

La commande encrypt retournera le ivSessionKey nécessaire pour l'upload ou le déchiffrement.

OptionDescription
zipPathChemin vers le fichier zip à chiffrer (requis)
checksumChecksum du fichier zip (requis) - à obtenir via la commande zip
--keyChemin personnalisé pour la clé de signature privée (optionnel, utilise la clé locale par défaut)
--key-dataDonnées de la clé de signature privée directement (optionnel)
--jsonAfficher les résultats au format JSON
  1. Compilez votre application :

    Fenêtre de terminal
    npm run build
  2. Créez un bundle zip :

    Fenêtre de terminal
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --bundle 1.2.3

    Notez le checksum renvoyé par cette commande.

  3. Chiffrez le bundle :

    Fenêtre de terminal
    npx @capgo/cli@latest bundle encrypt ./com.example.app-1.2.3.zip CHECKSUM_FROM_STEP_2

    Notez le ivSessionKey dans la sortie.

  4. Envoyez vers votre stockage : Envoyez le fichier zip chiffré vers votre service d'hébergement.

  5. Enregistrez-vous avec Capgo :

    Fenêtre de terminal
    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. Compilez votre application :

    Fenêtre de terminal
    npm run build
  2. Envoyez directement vers S3 :

    Fenêtre de terminal
    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. Build et zip :

    Fenêtre de terminal
    npm run build
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2
  2. Chiffrer le bundle :

    Fenêtre de terminal
    npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM
  3. Envoyer vers S3 avec chiffrement :

    Fenêtre de terminal
    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é, suivez ces bonnes pratiques de sécurité :

  • Assurez-vous que vos URLs de stockage sont accessibles à vos utilisateurs mais ne sont pas publiquement découvrables
  • Utilisez des URLs signées ou une authentification par token si possible
  • Implémentez les headers CORS appropriés pour les apps web
  • Chiffrez toujours vos bundles sensibles avec les outils de chiffrement Capgo
  • Store encryption keys securely and rotate them regularly
  • Utilisez HTTPS pour toutes les URLs de bundles (requis pour le mobile et Electron)
  • Monitor access logs to detect unusual download patterns
  • Set up alerts for failed bundle downloads
  • Auditez régulièrement vos permissions de stockage

Le bundle ne se télécharge pas :

  • Vérifiez que l'URL est accessible publiquement et utilise HTTPS (requis pour les apps mobiles et Electron)
  • Vérifiez les headers CORS pour les web apps
  • Assurez-vous que le format du bundle est correct

Erreurs de chiffrement :

  • Vérifiez que le ivSessionKey correspond au bundle chiffré
  • Vérifiez que le bundle a été chiffré avec la bonne clé
  • Ensure encryption v2 is used for new bundles

Échecs d'upload S3 :

  • Vérifiez vos identifiants et permissions S3
  • Vérifiez les politiques de bucket et la configuration CORS
  • Assurez-vous que la région spécifiée est correcte

Vérifiez le statut du bundle :

Fenêtre de terminal
npx @capgo/cli@latest app debug

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

Fenêtre de terminal
npx @capgo/cli@latest bundle list
  • En savoir plus sur Canaux pour gérer différents environnements de déploiement
  • Explorer Comportement de mise à jour pour personnaliser l'application des mises à jour
  • Configuration Intégration CI/CD pour automatiser votre workflow de stockage personnalisé

Si vous utilisez Stockage personnalisé pour planifier la sécurité et la conformité, connectez-l’à Chiffrement pour les détails d'implémentation du chiffrement, Conformité pour les détails d'implémentation de la conformité, Scanner de sécurité Capgo pour le workflow produit dans Capgo Security Scanner, Capgo et la sécurité pour le workflow produit dans Capgo Security, et Capgo Centre de confiance pour le workflow produit dans Capgo Trust Center.