Zum Inhalt springen

Benutzerdefinierte Speicherung

Capgo unterstützt benutzerdefinierte Speichersysteme für Ihre App-Bundles, sodass Sie Ihre Updates auf Ihrer eigenen Infrastruktur oder auf Diensten von Drittanbietern hosten können. Dies ist insbesondere nützlich für Organisationen mit spezifischen Sicherheitsanforderungen, Compliance-Anforderungen oder bestehender Speichereinrichtungen.

Übersicht

Übersicht

Die benutzerdefinierte Speicherung in Capgo funktioniert, indem Ihr Bundle an eine externe Stelle hochgeladen wird und Capgo mit der URL zur Verfügung gestellt wird, um es zu erreichen. Die Capgo SDK laden dann Updates direkt aus Ihrer benutzerdefinierten Speicherungsort statt aus Capgo's Standard-Cloud-Speicher herunter.

Externer URL-Upload

Übersicht

Die einfachste Möglichkeit, benutzerdefinierte Speicherung zu verwenden, besteht darin, Ihr Bundle an jede öffentlich zugängliche URL hochzuladen und diese URL Capgo zur Verfügung zu stellen.

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

Diese Kommando sagt Capgo, dass es sich an die im angegebenen URL befindliche Bundle anstatt an Capgo’s Cloudspeicher beziehen soll.

Für sichere externe Speicherung können Sie Ihr Bundle verschlüsseln und die Entschlüsselungsschlüssel bereitstellen:

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

Capgo bietet integrierte Unterstützung für Amazon S3 und S3-kompatible Speicherdienste. Die CLI kann Ihre Bundle automatisch auf S3 hochladen und Capgo konfigurieren, um die S3-URL zu verwenden.

Terminal-Fenster
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

Für S3-kompatible Dienste oder benutzerdefinierte Endpunkte:

Terminal-Fenster
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
ParameterBeschreibungErforderlich
--s3-regionAWS-Region für Ihren S3-BucketJa
--s3-apikeyS3-Zugriffschlüssel-IDJa
--s3-apisecretS3-SchlüsselJa
--s3-bucket-nameName Ihres S3-BucketsJa
--s3-endpointBenutzerdefinierter S3-Endpunkt-URLNo
--s3-portS3-Endpunkt-PortNo
--no-s3-sslS3-Upload SSL deaktivierenNo

Vorbereitung und Verschlüsselung des Bundles

Abschnitt: Vorbereitung und Verschlüsselung des Bundles

Bei der Verwendung von benutzerdefinierten Speicher, insbesondere mit Verschlüsselung, müssen Sie Ihre Bundles ordnungsgemäß vorbereiten. Dazu gehört die Erstellung eines Zip-Datei und gegebenenfalls deren Verschlüsselung.

Schritt 1: Erstellen Sie ein Zip-Bundle

Abschnitt: Schritt 1: Erstellen Sie ein Zip-Bundle

Erstellen Sie zunächst eine Zip-Datei Ihres App-Bundles:

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

Der Befehl "zip" gibt den Prüfsumme des Zip-Dateis zurück. Sie können diese Prüfsumme verwenden, um das Zip-Datei zu verschlüsseln, wenn erforderlich. Verwenden Sie die Option, um eine strukturierte Ausgabe einschließlich der Prüfsumme zu erhalten. --json Optionen für den Zip-Befehl

Abschnitt mit dem Titel "Optionen für den Zip-Befehl"

Terminal-Fenster
Zur Vorschau kopieren
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
BeschreibungPfad zum Ordner, der komprimiert werden soll (Standardwert: webDir aus __CAPGO_KEEP_0__.config)
--pathPath to the folder to zip (defaults to webDir from capacitor.config)
--bundleBenutzerdefinierter Name für das Zip-Datei
--nameCopy to clipboard
--jsonErgebnisse in JSON-Format (enthält Prüfsumme)
--no-code-checkÜberprüfung der notifyAppReady()-Aufruf und Indexdatei auslassen
--key-v2Verschlüsselung v2 verwenden
--package-jsonPfade zu package.json-Dateien für monorepos (getrennt durch Komma)

Für eine erhöhte Sicherheit sollten Sie Ihr Zip-Bundle vor dem Hochladen verschlüsseln:

Terminal-Fenster
# 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"

Der CHECKSUM Parameter ist erforderlich und sollte die Prüfsumme Ihres Zip-Dateis sein. Sie können die Prüfsumme aus der Ausgabe der zip-Kommandozeile (mit --json Option für strukturierte Ausgabe verwenden

Standardmäßig wird die Verschlüsselungskommando die lokale private Signierungschlüssel verwenden. Sie können einen benutzerdefinierten Schlüssel mithilfe der --key oder --key-data erforderlich für den Upload oder die Entschlüsselung.

Verschlüsselungskommandooptionen ivSessionKey Sektion mit dem Titel „Verschlüsselungskommandooptionen“

Pfad zum zip-Datei zum Verschlüsseln (erforderlich)Prüfsumme der zip-Datei (erforderlich) - erhalten Sie sie mit dem zip-Kommando
zipPathBenutzerdefinierter Pfad für den privaten Signierungschlüssel (optional, verwendet lokalen Schlüssel standardmäßig)
checksumoder
--keyerforderlich für den Upload oder die Entschlüsselung.
--key-dataPrivate Schlüsseldaten direkt (optional) verifizieren
--jsonAusgabe in JSON-Format

Abschnitt mit dem Titel "Vollständige Workflow-Beispiele"

Beispiel 1: Außenliegender URL mit Verschlüsselung

Abschnitt mit dem Titel "Beispiel 1: Außenliegender URL mit Verschlüsselung"

Deine App erstellen:
  1. Deine App erstellen:

    Terminalfenster
    npm run build
  2. Erstelle einen Zip-Bundle:

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

    Beachte den von diesem Befehl zurückgegebenen Prüfsummenwert.

  3. Verschlüssle den Bundle:

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

    Beachte den ivSessionKey aus der Ausgabe.

  4. Hochladen in Ihr Speicher: Laden Sie das verschlüsselte Zip-Datei auf Ihrem Hosting-Service hoch.

  5. Registrieren Sie sich bei Capgo:

    Terminal-Fenster
    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. Bauen Sie Ihre App:

    Terminal-Fenster
    npm run build
  2. Direkt auf S3 hochladen:

    Terminal-Fenster
    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 und zip:

    Terminalfenster
    npm run build
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2
  2. Das Bundle verschlüsseln:

    Terminalfenster
    npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM
  3. Mit Verschlüsselung auf S3 hochladen:

    Terminalfenster
    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

Wenn Sie benutzerdefinierte Speicher verwenden, beachten Sie diese Sicherheitstipps:

  • Stellen Sie sicher, dass Ihre Speicher-URLs für Ihre App-Benutzer zugänglich sind, aber nicht öffentlich auffindbar sind
  • Verwenden Sie signierte URLs oder Token-basierte Authentifizierung, wenn möglich
  • Implementieren Sie die richtigen CORS-Header für Web-basierte Apps
  • Verschlüsseln Sie immer sensible Pakete mit den Capgo-Verschlüsselungstools
  • Speichern Sie Verschlüsselungs-Schlüssel sicher und rotieren Sie sie regelmäßig
  • Verwenden Sie HTTPS für alle Paket-URLs (erforderlich für mobile und Electron-Apps)
  • Überwachung der Zugriffsprotokolle, um ungewöhnliche Herunterladepattern zu erkennen
  • Konfigurieren Sie Benachrichtigungen für fehlgeschlagene Bundle-Downloads
  • Regelmäßig Ihre Speicherberechtigungen überprüfen

Bundle wird nicht heruntergeladen:

  • Überprüfen Sie, ob die URL öffentlich zugänglich und über HTTPS (für mobile und Electron-Anwendungen erforderlich) ist
  • Überprüfen Sie die CORS-Header für Web-Anwendungen
  • Stellen Sie sicher, dass die Bundle-Formatierung korrekt ist

Verschlüsselungsfehler:

  • Überprüfen Sie das ivSessionKey entspricht dem verschlüsselten Bundle
  • Stellen Sie sicher, dass das Bundle mit der richtigen Schlüssel verschlüsselt wurde
  • Stellen Sie sicher, dass Verschlüsselung v2 für neue Bundle verwendet wird

S3-Uploadfehler:

  • Überprüfen Sie Ihre S3-Anmeldeinformationen und Berechtigungen
  • Überprüfen Sie die Bucket-Politik und die CORS-Konfiguration
  • Stellen Sie sicher, dass die angegebene Region korrekt ist

Bundle-Status überprüfen:

Terminal-Fenster
npx @capgo/cli@latest app debug

Integrität der Bundle überprüfen:

Terminal-Fenster
npx @capgo/cli@latest bundle list
  • Über Kanäle um verschiedene Bereitstellungsumgebungen zu verwalten
  • Entdecken Updateverhalten um die Anwendung von Updates anzupassen
  • Einrichten CI/CD-Integration um Ihre Custom-Storage-Arbeit zu automatisieren

Fortsetzen von Custom Storage

Abschnitt: Fortsetzen von Custom Storage

Wenn Sie Custom Storage verwenden Custom Storage um Sicherheit und Compliance zu planen, verbinden Sie es mit Verschlüsselung zur Implementierungsdetail in Verschlüsselung, Zuverlässigkeit für die Implementierungsdetails in Zuverlässigkeit, Capgo Sicherheits-Scanner für den Produktworkflow in Capgo Sicherheits-Scanner, Capgo Sicherheit für den Produktworkflow in Capgo Sicherheit, und Capgo Vertrauenszentrum für den Produktworkflow in Capgo Vertrauenszentrum.