📦 Bundle
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
📦 Verwalte App-Bundles für das Deployment in der Capgo Cloud, inklusive Upload, Kompatibilitätsprüfungen und Verschlüsselung.
⬆️ Upload
Abschnitt mit dem Titel „ ⬆️ Upload“Alias: u
npx @capgo/cli@latest bundle upload⬆️ Lade ein neues App-Bundle für die Distribution in die Capgo Cloud hoch. Die Version muss > 0.0.0 und eindeutig sein. Gelöschte Versionen können aus Sicherheitsgründen nicht wiederverwendet werden. Externe Option: Nur einen URL-Link speichern (praktisch für Apps > 200 MB oder Datenschutzanforderungen). Capgo inspiziert niemals externe Inhalte. Nutze Verschlüsselung für Trustless Security.
Beispiel:
npx @capgo/cli@latest bundle upload com.example.app --path ./dist --channel production,betaErhöht automatisch die nächste freie Semver des Channels (oder die neueste Remote-App-Version), wenn du keinen Wert übergibst --bundle. Nützlich in der CI, wenn package.json stimmt bereits mit der Version Capgo überein:
npx @capgo/cli@latest bundle upload --channel=production --auto-bumpnpx @capgo/cli@latest bundle upload --auto-bump majornpx @capgo/cli@latest bundle upload --auto-bump minor # default when the flag has no valuenpx @capgo/cli@latest bundle upload --auto-bump patch # alias: fixnpx @capgo/cli@latest bundle upload --auto-bump metadatanpx @capgo/cli@latest bundle upload --channel=production --auto-bump aiMit --auto-bump ai, Capgo Cloudflare Workers AI vergleicht die lokalen Bundle-Dateien mit dem Delta-Manifest des vorherigen Capgo/Channels und leitet ab, major | minor | patch | metadata, und gibt einen kurzen Grund im CLI Log aus. Falls keine vorherige Capgo Version existiert, wird die KI übersprungen und der Bump wird auf patch.
Optionen:
| Parameter | Typ | Beschreibung |
|---|---|---|
| -a | string | API Key zum Verknüpfen mit deinem Account |
| -p | string | Pfad des Ordners zum Hochladen; falls nicht angegeben, wird das in capacitor.config gesetzte webDir verwendet |
| -c | string | Channel zum Verknüpfen. Nutze Kommas für mehrere Channels, z. B. production,beta |
| —rollout | string | Setzt das hochgeladene Bundle als Rollout-Target für diesen Channel mit einem Prozentsatz von 0 bis 100 |
| —stable | boolean | Ersetzt bei einem mit Rollout konfigurierten Channel den stable Fallback, statt das Rollout-Target zu setzen |
| —rollout-percentage-bps | string | Setzt die Rollout-Prozentzahl des hochgeladenen Bundles in Basispunkten von 0 bis 10000 |
| —rollout-cache-ttl-seconds | string | Cloudflare Rollout-Entscheidungs-Cache TTL in Sekunden |
| -e | string | Link zu externer URL statt Upload in die Capgo Cloud |
| —iv-session-key | string | IV und Session-Key für externe Bundle-URL setzen |
| —s3-region | string | Region für deinen S3-Bucket |
| —s3-apikey | string | API Key für deinen S3-Endpoint |
| —s3-apisecret | string | API Secret für deinen S3-Endpoint |
| —s3-endpoint | string | URL des S3-Endpoints |
| —s3-bucket-name | string | Name für deinen AWS S3 Bucket |
| —s3-port | string | Port für deinen S3 Endpoint |
| —no-s3-ssl | boolean | SSL für den S3 Upload deaktivieren |
| —key-v2 | string | Eigener Pfad für den Private Signing Key (v2 System) |
| —key-data-v2 | string | Private Signing Key (v2 System) |
| —bundle-url | boolean | Gibt die Bundle URL in stdout aus |
| —no-key | boolean | Signing-Key ignorieren und unverschlüsseltes Update senden |
| —no-code-check | boolean | Prüfung ignorieren, ob notifyAppReady() im code Source aufgerufen wird und index in Root-Ordner vorhanden ist |
| —display-iv-session | boolean | IV und Session-Key zur Verschlüsselung des Updates in der Konsole anzeigen |
| -b | string | Versionsnummer des zu uploadenden Bundles |
| —auto-bump | string | Automatisch erhöhen basierend auf dem Channel-Bundle oder der neuesten Remote-App-Version. Level: major, minor (Standard), patch (Alias: fix), metadata oder ai (Workers AI ermittelt Level aus Delta-Manifest; Fallback auf patch ohne vorherige Capgo Version). Erhöht, bis ein freier Name gefunden wird. Nicht kombinierbar mit —bundle (-b) |
| —link | string | Verlinkung zu externer Ressource (z. B. GitHub Release) |
| —comment | string | Kommentar zu dieser Version, z. B. Release Notes, Commit-Hash, Commit-Message usw. |
| —min-update-version | string | Minimale Version, die für ein Update auf diese Version erforderlich ist. Wird nur verwendet, wenn 'disable auto update' im Channel auf 'metadata' gesetzt ist. |
| —auto-min-update-version | boolean | Setzt die minimale Update-Version basierend auf den Native Packages. |
| —ignore-metadata-check | boolean | Ignoriert den Metadata-Check (node_modules) beim Upload. |
| —fail-on-incompatible | boolean | Der Upload schlägt fehl (Exit-Code ungleich Null), wenn das Bundle nicht mit den aktuellen Native Packages des Channels kompatibel ist. In einem interaktiven Terminal kannst du dennoch einen Native Build wählen; eine Ablehnung führt zum Abbruch. Nicht kombinierbar mit —ignore-metadata-check. |
| —ignore-checksum-check | boolean | Ignoriert den Checksum-Check beim Upload. |
| —force-crc32-checksum | boolean | Erzwingt die CRC32-Prüfsumme beim Upload (überschreibt die automatische Erkennung) |
| —timeout | string | Timeout für den Upload-Prozess in Sekunden |
| —multipart | boolean | [DEPRECATED] Nutze stattdessen —tus. Verwendet das Multipart-Protokoll für S3-Uploads |
| —zip | boolean | Lädt das Bundle per ZIP in die Capgo Cloud hoch (Legacy) |
| —tus | boolean | Lädt das Bundle via TUS in die Capgo Cloud hoch |
| —tus-chunk-size | string | Chunk-Größe in Bytes für TUS-Resumable-Uploads (Standard: auto) |
| —partial | boolean | [DEPRECATED] Nutze stattdessen —delta. Upload von inkrementellen Updates |
| —partial-only | boolean | [DEPRECATED] Nutze stattdessen —delta-only. Nur inkrementelle Updates hochladen, Full Bundle überspringen |
| —delta | boolean | Delta-Updates (nur geänderte Dateien) hochladen für sofortige, extrem schnelle Updates statt großer ZIP-Downloads |
| —delta-only | boolean | Nur Delta-Updates ohne Full Bundle hochladen für maximale Geschwindigkeit (ideal für große Apps) |
| —no-delta | boolean | Delta-Updates deaktivieren, auch wenn Instant Updates aktiviert sind |
| —encrypted-checksum | string | Ein verschlüsselter Checksum (Signatur). Wird nur beim Upload eines externen Bundles verwendet. |
| —auto-set-bundle | boolean | Setzt das Bundle in capacitor.config.json |
| —dry-upload | boolean | Simuliert den Bundle-Upload: Fügt den Eintrag in der Datenbank hinzu, ohne Dateien hochzuladen oder Channels zu aktualisieren (wird von Capgo für interne Tests genutzt) |
| —package-json | string | Pfade zu package.json-Dateien für Monorepos (kommagetrennt) |
| —node-modules | string | Pfade zu node_modules-Verzeichnissen für Monorepos (kommagetrennt) |
| —encrypt-partial | boolean | Verschlüsselt Delta-Update-Dateien (automatisch aktiviert für Updater > 6.14.4) |
| —delete-linked-bundle-on-upload | boolean | Locates the currently linked bundle in the channel you are trying to upload to, and deletes it |
| —no-brotli-patterns | string | Dateien, die von der Brotli-Komprimierung ausgeschlossen werden sollen (kommagetrennte Globs, z. B. „.jpg,.png“) |
| —disable-brotli | boolean | Brotli-Komprimierung komplett deaktivieren, auch wenn die Updater-Version dies unterstützt |
| —version-exists-ok | boolean | Erfolgreich beenden, wenn die Bundle-Version bereits existiert; nützlich für CI/CD-Workflows mit Monorepos |
| —self-assign | boolean | Geräten erlauben, diesem Channel automatisch beizutreten (aktualisiert die Channel-Einstellung) |
| —qr-preview | boolean | Nach dem Upload einen Terminal-QR code für diese Bundle-Vorschau ausgeben |
| —send-update-notification | boolean | Sendet nach dem Update verknüpfter Channel-Bundles eine native Benachrichtigung zur Update-Prüfung an die Geräte |
| —supa-host | string | Eigene Supabase-Host-URL (für Self-Hosting oder Capgo-Entwicklung) |
| —supa-anon | string | Eigener Supabase-Anon-Key (für Self-Hosting) |
| —verbose | boolean | Aktiviert die ausführliche Ausgabe mit detaillierten Logs |
🧪 Kompatibilität
Abschnitt mit dem Titel „ 🧪 Kompatibilität“npx @capgo/cli@latest bundle compatibility🧪 Prüfe die Kompatibilität eines Bundles mit einem bestimmten Channel in der Capgo Cloud, um sichere Updates zu gewährleisten.
Beispiel:
npx @capgo/cli@latest bundle compatibility com.example.app --channel productionOptionen:
| Parameter | Typ | Beschreibung |
|---|---|---|
| -a | string | API Key zum Verknüpfen mit deinem Account |
| -c | string | Channel, mit dem die Kompatibilität geprüft werden soll |
| —text | boolean | Text-Ausgabe statt Emojis |
| —package-json | string | Pfade zu package.json-Dateien für Monorepos (kommagetrennt) |
| —node-modules | string | Pfade zu node_modules-Verzeichnissen für Monorepos (kommagetrennt) |
| —supa-host | string | Eigene Supabase-Host-URL (für Self-Hosting oder Capgo-Entwicklung) |
| —supa-anon | string | Eigener Supabase-Anon-Key (für Self-Hosting) |
🔹 ReleaseType
Abschnitt mit dem Titel „ 🔹 ReleaseType“npx @capgo/cli@latest bundle releaseType🧭 Gibt „native“ oder „OTA“ aus, basierend auf der Kompatibilität mit den neuesten Metadaten eines Channels.
Beispiel:
npx @capgo/cli@latest bundle releaseType com.example.app --channel productionOptionen:
| Parameter | Typ | Beschreibung |
|---|---|---|
| -a | string | API Key zum Verknüpfen mit deinem Account |
| -c | string | Channel für den Vergleich |
| —package-json | string | Pfade zu package.json-Dateien für Monorepos (kommagetrennt) |
| —node-modules | string | Pfade zu node_modules-Verzeichnissen für Monorepos (kommagetrennt) |
| —supa-host | string | Eigene Supabase-Host-URL (für Self-Hosting oder Capgo-Entwicklung) |
| —supa-anon | string | Eigener Supabase-Anon-Key (für Self-Hosting) |
🗑️ Löschen
Abschnitt mit dem Titel „ 🗑️ Löschen“Alias: d
npx @capgo/cli@latest bundle delete🗑️ Löscht ein bestimmtes Bundle aus der Capgo Cloud, optional für eine einzelne Version.
Beispiel:
npx @capgo/cli@latest bundle delete BUNDLE_ID com.example.appOptionen:
| Parameter | Typ | Beschreibung |
|---|---|---|
| -a | string | API Key zum Verknüpfen mit deinem Account |
| —supa-host | string | Eigene Supabase-Host-URL (für Self-Hosting oder Capgo-Entwicklung) |
| —supa-anon | string | Eigener Supabase-Anon-Key (für Self-Hosting) |
📋 Liste
Abschnitt „ 📋 Liste“Alias: l
npx @capgo/cli@latest bundle list📋 Listet alle für eine App in der Capgo Cloud hochgeladenen Bundles auf.
Beispiel:
npx @capgo/cli@latest bundle list com.example.appOptionen:
| Parameter | Typ | Beschreibung |
|---|---|---|
| -a | string | API Key zum Verknüpfen mit deinem Account |
| —supa-host | string | Eigene Supabase-Host-URL (für Self-Hosting oder Capgo-Entwicklung) |
| —supa-anon | string | Eigener Supabase-Anon-Key (für Self-Hosting) |
🧹 Cleanup
Abschnitt mit dem Titel „ 🧹 Cleanup“Alias: c
npx @capgo/cli@latest bundle cleanup🧹 Löscht alte Bundles in der Capgo Cloud und behält eine festgelegte Anzahl aktueller Versionen. Mit Channels verknüpfte Bundles bleiben erhalten, sofern nicht —ignore-channel verwendet wird.
Beispiel:
npx @capgo/cli@latest bundle cleanup com.example.app --bundle=1.0 --keep=3Optionen:
| Parameter | Typ | Beschreibung |
|---|---|---|
| -b | string | Bundle-Versionsnummer der zu löschenden App |
| -a | string | API Key zum Verknüpfen mit deinem Account |
| -k | string | Anzahl der zu behaltenden Versionen |
| -f | boolean | Erzwingen des Löschens |
| —ignore-channel | boolean | Bundles auch löschen, wenn mit Channels verknüpft (WARNUNG: löscht auch Channels) |
| —supa-host | string | Eigene Supabase-Host-URL (für Self-Hosting oder Capgo-Entwicklung) |
| —supa-anon | string | Eigener Supabase-Anon-Key (für Self-Hosting) |
🔒 Verschlüsseln
Abschnitt „ 🔒 Verschlüsseln“npx @capgo/cli@latest bundle encrypt🔒 Verschlüsselt ein Zip-Bundle für die sichere externe Speicherung. Gibt ivSessionKey für Upload/Entschlüsselung zurück. Checksumme via ‘bundle zip —json’ ermitteln.
Beispiel:
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUMOptionen:
| Parameter | Typ | Beschreibung |
|---|---|---|
| —key | string | Custom path for private signing key |
| —key-data | string | Privater Signing-Key |
| -j | boolean | Ausgabe als JSON |
| —package-json | string | Pfade zu package.json-Dateien für Monorepos (kommagetrennt) |
🔓 Entschlüsseln
Abschnitt „ 🔓 Decrypt“npx @capgo/cli@latest bundle decrypt🔓 Ein verschlüsseltes Bundle entschlüsseln (hauptsächlich zum Testen). Gibt den base64 Session-Key zur Verifizierung aus.
Beispiel:
npx @capgo/cli@latest bundle decrypt ./myapp_encrypted.zip CHECKSUMOptionen:
| Parameter | Typ | Beschreibung |
|---|---|---|
| —key | string | Custom path for private signing key |
| —key-data | string | Privater Signing-Key |
| —checksum | string | Checksumme des Bundles zur Überprüfung der Integrität |
| —package-json | string | Pfade zu package.json-Dateien für Monorepos (kommagetrennt) |
npx @capgo/cli@latest bundle zip🗜️ Erstellt eine Zip-Datei deines App-Bundles. Gibt eine Checksumme für die Verschlüsselung zurück. Nutze —json für maschinenlesbare Ausgabe.
Beispiel:
npx @capgo/cli@latest bundle zip com.example.app --path ./distOptionen:
| Parameter | Typ | Beschreibung |
|---|---|---|
| -p | string | Pfad des Ordners zum Upload; falls nicht angegeben, wird der in capacitor.config gesetzte webDir verwendet |
| -b | string | Bundle-Versionsnummer für den Namen der Zip-Datei |
| -n | string | Name der Zip-Datei |
| -j | boolean | Ausgabe als JSON |
| —no-code-check | boolean | Ignoriert die Prüfung, ob notifyAppReady() in der Quelle code aufgerufen wird und index im Root-Ordner vorhanden ist |
| —key-v2 | boolean | Verschlüsselung v2 verwenden |
| —package-json | string | Pfade zu package.json-Dateien für Monorepos (kommagetrennt) |