Sauter vers le contenu

Stockage personnalisé

Capgo prend en charge les solutions de stockage personnalisées pour vos ensembles d'applications, vous permettant d'héberger vos mises à jour sur votre propre infrastructure ou sur des services de stockage tiers. Cela 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 ensemble dans un emplacement externe et en fournissant à Capgo l'URL pour y accéder. Les mises à jour Capgo SDK seront alors téléchargées directement de votre emplacement de stockage personnalisé au lieu de la stockage cloud Capgo par défaut.

La méthode la plus simple pour utiliser un stockage personnalisé consiste à télécharger votre bundle sur n'importe quelle URL accessible au public 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 le télécharger dans 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 fournit un support intégré pour Amazon S3 et les services de stockage S3 compatibles. Le CLI peut télécharger 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 S3 compatibles ou les points de terminaison 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ètreDescriptionObligatoire
--s3-regionRégion AWS pour votre conteneur S3Oui
--s3-apikeyID de clé d'accès S3Oui
--s3-apisecretClé secrète d'accès S3Oui
--s3-bucket-nameNom de votre conteneur S3Oui
--s3-endpointURL personnalisée du conteneur S3Non
--s3-portPort pour le conteneur S3Non
--no-s3-sslDésactiver SSL pour l'upload S3Non

Lors de l'utilisation d'un stockage personnalisé, notamment avec le chiffrement, vous devez préparer vos paquets correctement. Cela implique la création d'un fichier zip et le chiffrement optionnel.

Créez d'abord 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 un résultat structuré 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 vers le dossier à archiver (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 d'output en format JSON (inclus checksum)
--no-code-checkOmettre la vérification de l'appel de notifyAppReady() et du fichier index
--key-v2Utiliser l'encryption v2
--package-jsonChemins vers les fichiers package.json pour les monorepos (séparés par des virgules)

Pour une sécurité renforcée, chifrez votre zip bundle avant de l'uploader :

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"

The CHECKSUM parameter est obligatoire et doit être le checksum de votre fichier zip. Vous pouvez obtenir le checksum à partir de la sortie de la commande zip (utilisez --json option pour un format de sortie structuré).

Par défaut, la commande encrypt utilisera votre clé privée de signature locale. Vous pouvez spécifier une clé personnalisée en utilisant les --key ou --key-data options.

La commande encrypt retournera les ivSessionKey nécessaires pour l'upload ou la décryptage.

OptionDescription
zipPathChemin vers le fichier zip à chiffrer (obligatoire)
checksumChecksum du fichier zip (obligatoire) - obtenez-le à partir de la commande zip
--keyChemin personnalisé pour la clé de signature privée (facultatif, utilise par défaut la clé locale)
--key-dataDonnées de la clé de signature privée directement (facultatif)
--jsonAfficher les résultats sous forme de JSON
  1. Construire votre application :

    Fenêtre de terminal
    npm run build
  2. Créer un fichier zip :

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

    Notez le checksum retourné par cette commande.

  3. Chiffrer le bundle :

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

    Notez bien ivSessionKey à partir de la sortie.

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

  5. Inscrivez-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. Construirez votre application :

    Fenêtre de terminal
    npm run build
  2. Charger directement sur 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. Construire et zipper :

    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. Charger sur 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é, considérez ces bonnes pratiques de sécurité :

  • Assurez-vous que vos URL de stockage soient accessibles à vos utilisateurs d'application mais pas découvertes publiquement
  • Utilisez des URL signées ou une authentification basée sur des jetons lorsque cela est possible
  • Implémentez les en-têtes CORS appropriés pour les applications web
  • Utilisez toujours les outils d'Capgo de cryptage pour chiffrer les bundles sensibles
  • Stockez les clés de cryptage de manière sécurisée et les faites tourner régulièrement
  • Utilisez HTTPS pour toutes les URL des bundles (obligatoire pour les applications mobiles et Electron)
  • Surveillez les journaux d'accès pour détecter des modèles de téléchargement inhabituels
  • Configurez des alertes pour les téléchargements de bundles échoués
  • Auditez régulièrement vos permissions de stockage

Problème de téléchargement du bundle :

  • 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 chiffrement :

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

Échecs d'upload S3 :

  • Vérifiez vos identifiants et permissions S3.
  • Vérifiez les politiques de la boîte et la configuration CORS.
  • Vérifiez que la région spécifiée est correcte

Vérifiez l'état du paquet :

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

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

Fenêtre de terminal
npx @capgo/cli@latest bundle list
  • En savoir plus sur Canaux pour gérer différents environnements de déploiement
  • Explorez Mise à jour du comportement pour personnaliser la façon dont les mises à jour sont appliquées
  • Configurer Intégration CI/CD pour automatiser votre flux de travail de stockage personnalisé

__CAPGO_KEEP_0__

Si vous utilisez

Stockage personnalisé Custom Storage pour planifier la sécurité et la conformité, connectez-le à Chiffrement pour le détail d'implémentation dans Chiffrement, Conformité pour le détail d'implémentation dans Conformité, Capgo Scanner de sécurité pour le flux de travail du produit dans Capgo Scanner de sécurité, Capgo Sécurité pour le flux de travail du produit dans Capgo Sécurité, et Capgo Centre de confiance pour le flux de travail du produit dans Capgo Centre de confiance.