Saltar al contenido

Almacenamiento personalizado

Capgo admite soluciones de almacenamiento personalizadas para los paquetes de su aplicación, lo que le permite alojar sus actualizaciones en su propia infraestructura o servicios de almacenamiento de terceros. Esto es particularmente útil para organizaciones con requisitos de seguridad específicos, necesidades de cumplimiento o infraestructura de almacenamiento existente.

El almacenamiento personalizado en Capgo funciona subiendo su paquete a una ubicación externa y proporcionando a Capgo la URL para acceder a él. El Capgo SDK descargará actualizaciones directamente desde su ubicación de almacenamiento personalizado en lugar de la almacenamiento en la nube predeterminado de Capgo.

La forma más sencilla de usar almacenamiento personalizado es subiendo tu paquete a cualquier URL accesible públicamente y proporcionando esa URL a Capgo.

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

Este comando le dice a Capgo que refiera el paquete en la URL especificada en lugar de subirlo a la almacenamiento en la nube de Capgo’s.

Para almacenamiento externo seguro, puedes cifrar tu paquete y proporcionar las claves de descifrado:

Ventana 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 ofrece soporte integrado para Amazon S3 y servicios de almacenamiento S3 compatibles. El CLI puede subir automáticamente su paquete a S3 y configurar Capgo para utilizar la URL de S3.

Ventana 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

Para servicios compatibles con S3 o puntos finales personalizados:

Ventana 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
ParámetroDescripciónRequerido
--s3-regionRegión de AWS para tu contenedor S3
--s3-apikeyID de clave de acceso de S3
--s3-apisecretClave secreta de acceso de S3
--s3-bucket-nameNombre de tu recipiente S3
--s3-endpointURL personalizada del extremo de S3No
--s3-portPuerto para el extremo de S3No
--no-s3-sslDeshabilitar SSL para la carga de S3No

Al utilizar almacenamiento personalizado, especialmente con cifrado, debes preparar tus paquetes correctamente. Esto implica crear un archivo zip y cifrarlo opcionalmente.

Primero, crea un archivo zip de tu archivo de paquete:

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

El comando zip devolverá el checksum del archivo zip. Puedes utilizar este checksum para cifrar el archivo zip si es necesario. Utiliza el --json opción para obtener un resultado estructurado que incluya el checksum.

Ventana 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
OpciónDescripción
--pathRuta al folder para comprimir (por defecto webDir de capacitor.config)
--bundleVersión del paquete para nombrar el archivo zip
--nameNombre personalizado para el archivo zip
--jsonResultados de salida en formato JSON (incluye checksum)
--no-code-checkSaltarse la comprobación de la llamada a notifyAppReady() y el archivo de índice
--key-v2Usar cifrado v2
--package-jsonRutas a archivos package.json para repositorios monorepo (separados por comas)

Para una mayor seguridad, cifre su archivo zip antes de subirlo:

Ventana 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 parameter is required and should be the checksum of your zip file. You can get the checksum from the zip command output (use the CHECKSUM option for structured output). --json Por defecto, el comando de cifrado utilizará tu clave privada de firma local. Puedes especificar una clave personalizada utilizando el

o --key opciones. --key-data El comando de cifrado devolverá el

necesario para la subida o la desifrado. ivSessionKey Opciones del comando de cifrado

Sección titulada “Opciones del comando de cifrado”

Opción
DescripciónOption __CAPGO_KEEP_0__ is required and should be the checksum of your zip file. You can get the checksum from the zip command output (use the __CAPGO_KEEP_1__ option for structured output).
zipPathRuta al archivo zip para cifrar (obligatorio)
checksumChecksum del archivo zip (obligatorio) - obténlo con el comando zip
--keyRuta personalizada para la clave de firma privada (opcional, utiliza la clave local por defecto)
--key-dataDatos de la clave de firma privada directamente (opcional)
--jsonLos resultados se muestran en formato JSON
  1. Construye tu aplicación:

    Ventana de terminal
    npm run build
  2. Crear un archivo zip:

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

    Nota el checksum devuelto por este comando.

  3. Cifra el archivo zip:

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

    Nota el ivSessionKey desde la salida.

  4. Subir a tu almacenamiento: Subir el archivo zip cifrado a tu servicio de alojamiento.

  5. Registra con Capgo:

    Ventana 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. Construye tu aplicación:

    Ventana de terminal
    npm run build
  2. Subir directamente a S3:

    Ventana 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. Compilar y comprimir:

    Ventana de terminal
    npm run build
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2
  2. Cifrar el paquete:

    Ventana de terminal
    npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM
  3. Subir a S3 con cifrado:

    Ventana 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

Cuando utilices almacenamiento personalizado, considera estas mejores prácticas de seguridad:

  • Asegúrate de que las URL de almacenamiento sean accesibles para tus usuarios de la aplicación, pero no descubribles públicamente
  • Utiliza URLs firmadas o autenticación basada en tokens cuando sea posible
  • Implementa encabezados CORS adecuados para aplicaciones web
  • Siempre cifra los bundles sensibles utilizando las herramientas de cifrado Capgo
  • Almacena las claves de cifrado de manera segura y rotarlas regularmente
  • Utiliza HTTPS para todas las URL de bundles (requerido para aplicaciones móviles y Electron)
  • Monitorea los registros de acceso para detectar patrones de descarga inusuales
  • Configura alertas para descargas de bundles fallidas
  • Audita regularmente tus permisos de almacenamiento

No se está descargando el paquete:

  • Verifique que la URL sea accesible públicamente y utilice HTTPS (requerido para aplicaciones móviles y Electron)
  • Verifique los encabezados CORS para aplicaciones web
  • Asegúrese de que el formato del paquete sea correcto

Errores de cifrado:

  • Verifique que ivSessionKey coincida con el paquete cifrado
  • Verifique que el paquete se haya cifrado con la clave correcta
  • Asegúrese de que se utilice la cifrado v2 para nuevos paquetes

Fallas al subir a S3:

  • Verifique sus credenciales y permisos de S3
  • Verifique las políticas de contenedor y la configuración CORS
  • Asegúrese de que la región especificada sea correcta

Verificar el estado del paquete:

Ventana de terminal
npx @capgo/cli@latest app debug

Verificar la integridad del paquete:

Ventana de terminal
npx @capgo/cli@latest bundle list
  • Aprenda sobre Canales para administrar diferentes entornos de despliegue
  • Explora Actualizar comportamiento para personalizar cómo se aplican las actualizaciones
  • Configura Integración CI/CD para automatizar tu flujo de trabajo de almacenamiento personalizado

Sigue adelante desde Almacenamiento Personalizado

Sección titulada “Sigue adelante desde Almacenamiento Personalizado”

Si estás utilizando Almacenamiento Personalizado para planificar la seguridad y la conformidad, conecte con Cifrado para el detalle de implementación en Cifrado, Conformidad para el detalle de implementación en Conformidad, Capgo Escáner de Seguridad para el flujo de trabajo del producto en Capgo Escáner de Seguridad, Capgo Seguridad para el flujo de trabajo del producto en Capgo Seguridad, y Capgo Centro de Confianza para el flujo de trabajo del producto en Capgo Centro de Confianza.