Penyimpanan Kustom
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Capgo mendukung solusi custom storage untuk app bundle Anda, sehingga Anda bisa meng-host update di infrastruktur Anda sendiri atau layanan storage pihak ketiga. Ini sangat berguna bagi organisasi dengan persyaratan keamanan khusus, kebutuhan kepatuhan, atau infrastruktur storage yang sudah ada.
Ikhtisar
Bagian berjudul “Ringkasan”Custom storage di Capgo bekerja dengan cara meng-upload bundle Anda ke lokasi eksternal dan memberikan URL untuk mengaksesnya ke Capgo. Capgo SDK kemudian akan men-download update langsung dari lokasi custom storage Anda, bukan dari cloud storage default milik Capgo.
Upload via URL Eksternal
Bagian berjudul “Upload via URL Eksternal”Cara termudah menggunakan custom storage adalah dengan mengunggah bundle Anda ke URL publik apa pun dan memberikan URL tersebut ke Capgo.
Upload URL Eksternal Dasar
Bagian berjudul “Basic External URL Upload”npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zipPerintah ini memberitahu Capgo untuk merujuk ke bundle di URL yang ditentukan, alih-alih mengunggahnya ke cloud storage Capgo.
Dengan Enkripsi
Bagian berjudul “Dengan Enkripsi”Untuk penyimpanan eksternal yang aman, Anda dapat mengenkripsi bundle dan menyediakan kunci dekripsinya:
npx @capgo/cli@latest bundle upload --external https://your-domain.com/bundles/v1.2.3.zip --iv-session-key YOUR_IV_SESSION_KEYIntegrasi S3
Bagian berjudul “Integrasi S3”Capgo menyediakan dukungan bawaan untuk Amazon S3 dan layanan penyimpanan yang kompatibel dengan S3. CLI dapat mengunggah bundle Anda ke S3 secara otomatis dan mengonfigurasi Capgo untuk menggunakan URL S3 tersebut.
Opsi Upload S3
Bagian berjudul “Opsi Upload S3”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-nameKonfigurasi S3 Lengkap
Bagian berjudul “Konfigurasi S3 Lengkap”Untuk layanan kompatibel S3 atau custom endpoint:
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 SSLParameter Konfigurasi S3
Bagian berjudul “Parameter Konfigurasi S3”| Parameter | Deskripsi | Wajib |
|---|---|---|
--s3-region | AWS region untuk S3 bucket Anda | Ya |
--s3-apikey | ID akses kunci S3 | Ya |
--s3-apisecret | Kunci akses rahasia S3 | Ya |
--s3-bucket-name | Nama S3 bucket Anda | Ya |
--s3-endpoint | URL endpoint S3 kustom | Tidak |
--s3-port | Port untuk endpoint S3 | Tidak |
--no-s3-ssl | Nonaktifkan SSL untuk upload S3 | Tidak |
Persiapan dan Enkripsi Bundle
Bagian berjudul “Persiapan dan Enkripsi Bundle”Saat menggunakan custom storage, terutama dengan enkripsi, Anda perlu menyiapkan bundle dengan benar. Ini melibatkan pembuatan file zip dan opsi untuk mengenkripsinya.
Langkah 1: Buat Zip Bundle
Bagian berjudul “Langkah 1: Buat Zip Bundle”Pertama, buat file zip dari app bundle Anda:
npx @capgo/cli@latest bundle zip com.example.app --path ./distPerintah zip akan mengembalikan checksum dari file zip tersebut. Anda bisa menggunakan checksum ini untuk mengenkripsi file zip jika diperlukan. Gunakan --json opsi untuk mendapatkan structured output termasuk checksum.
Opsi Perintah Zip
Bagian berjudul “Opsi Perintah Zip”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| Opsi | Deskripsi |
|---|---|
--path | Path ke folder yang akan di-zip (defaultnya webDir dari capacitor.config) |
--bundle | Nomor versi bundle untuk penamaan file zip |
--name | Nama kustom untuk file zip |
--json | Hasil output dalam format JSON (termasuk checksum) |
--no-code-check | Lewati pengecekan pemanggilan notifyAppReady() dan file index |
--key-v2 | Gunakan enkripsi v2 |
--package-json | Path ke file package.json untuk monorepo (pisahkan dengan koma) |
Langkah 2: Enkripsi Bundle (Opsional)
Bagian berjudul “Langkah 2: Enkripsi Bundle (Opsional)”Untuk keamanan ekstra, enkripsi zip bundle Anda sebelum upload:
# Using default local keynpx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM
# Using custom key filenpx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key ./path/to/.capgo_key_v2
# Using key data directlynpx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM --key-data "PRIVATE_KEY_CONTENT"Panduan CHECKSUM parameter wajib diisi dan harus berupa checksum dari file zip Anda. Anda bisa mendapatkan checksum dari output perintah zip (gunakan --json opsi untuk output terstruktur).
Secara default, perintah encrypt akan menggunakan private signing key lokal Anda. Anda bisa menentukan custom key menggunakan --key atau --key-data opsi.
Perintah encrypt akan mengembalikan ivSessionKey yang diperlukan untuk upload atau dekripsi.
Opsi Perintah Enkripsi
Bagian berjudul “Opsi Perintah Enkripsi”| Opsi | Deskripsi |
|---|---|
zipPath | Path ke file zip yang akan dienkripsi (wajib) |
checksum | Checksum file zip (wajib) - dapatkan dari perintah zip |
--key | Path kustom untuk private signing key (opsional, default menggunakan key lokal) |
--key-data | Data private signing key secara langsung (opsional) |
--json | Output hasil dalam format JSON |
Contoh Workflow Lengkap
Bagian berjudul “Contoh Workflow Lengkap”Contoh 1: URL Eksternal dengan Enkripsi
Bagian berjudul “Contoh 1: URL Eksternal dengan Enkripsi”-
Build aplikasi Anda:
Jendela terminal npm run build -
Buat zip bundle:
Jendela terminal npx @capgo/cli@latest bundle zip com.example.app --path ./dist --bundle 1.2.3Catat checksum yang dikembalikan perintah ini.
-
Enkripsi bundle:
Jendela terminal npx @capgo/cli@latest bundle encrypt ./com.example.app-1.2.3.zip CHECKSUM_FROM_STEP_2Catat
ivSessionKeydari outputnya. -
Upload ke storage Anda: Upload file zip terenkripsi ke layanan hosting Anda.
-
Daftarkan ke Capgo:
Jendela 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
Contoh 2: Direct S3 Upload
Bagian berjudul “Contoh 2: Upload Langsung ke S3”-
Build aplikasi Anda:
Jendela terminal npm run build -
Upload langsung ke S3:
Jendela 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
Contoh 3: S3 dengan Enkripsi
Bagian berjudul “Contoh 3: S3 dengan Enkripsi”-
Build dan zip:
Jendela terminal npm run buildnpx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2 -
Enkripsi bundle:
Jendela terminal npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM -
Upload ke S3 dengan enkripsi:
Jendela 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
Pertimbangan Keamanan
Bagian berjudul “Pertimbangan Keamanan”Saat menggunakan custom storage, pertimbangkan praktik keamanan terbaik berikut:
Kontrol Akses
Bagian berjudul “Kontrol Akses”- Pastikan URL storage dapat diakses oleh pengguna aplikasi Anda, namun tidak dapat ditemukan secara publik
- Gunakan signed URL atau autentikasi berbasis token jika memungkinkan
- Implementasikan header CORS yang tepat untuk aplikasi berbasis web
Enkripsi
Bagian berjudul “Encryption”- Selalu enkripsi bundle sensitif menggunakan tools enkripsi Capgo
- Simpan encryption key dengan aman dan lakukan rotasi secara berkala
- Gunakan HTTPS untuk semua URL bundle (wajib untuk aplikasi mobile dan Electron)
Monitoring
Bagian berjudul “Monitoring”- Pantau access logs untuk mendeteksi pola download yang tidak wajar
- Siapkan alert untuk kegagalan download bundle
- Audit izin storage Anda secara berkala
Pemecahan Masalah
Bagian berjudul “Troubleshooting”Masalah Umum
Bagian berjudul “Masalah Umum”Bundle tidak terunduh:
- Pastikan URL dapat diakses publik dan menggunakan HTTPS (wajib untuk aplikasi mobile dan Electron)
- Periksa header CORS untuk aplikasi web
- Pastikan format bundle sudah benar
Kesalahan enkripsi:
- Verifikasi bahwa
ivSessionKeycocok dengan bundle terenkripsi - Pastikan bundle dienkripsi dengan key yang benar
- Pastikan enkripsi v2 digunakan untuk bundle baru
Kegagalan upload S3:
- Verifikasi kredensial dan izin S3 Anda
- Periksa kebijakan bucket dan konfigurasi CORS
- Pastikan region yang ditentukan sudah benar
Perintah Debug
Bagian berjudul “Perintah Debug”Periksa status bundle:
npx @capgo/cli@latest app debugVerifikasi integritas bundle:
npx @capgo/cli@latest bundle listLangkah Berikutnya
Bagian berjudul “Langkah Selanjutnya”- Pelajari tentang Channel untuk mengelola berbagai environment deployment
- Jelajahi Perilaku Update untuk kustomisasi cara update diterapkan
- Konfigurasi Integrasi CI/CD untuk otomatisasi workflow custom storage Anda
Lanjutkan dari Custom Storage
Bagian berjudul “Lanjutkan dari Custom Storage”Jika Anda menggunakan Penyimpanan Kustom untuk merencanakan keamanan dan kepatuhan, hubungkan dengan Enkripsi untuk detail implementasi pada Encryption, Kepatuhan untuk detail implementasi pada Compliance, Capgo Security Scanner untuk alur kerja produk di Capgo Security Scanner, Keamanan Capgo untuk alur kerja produk di Capgo Security, dan Capgo Pusat Kepercayaan untuk workflow produk di Capgo Trust Center.