Langsung ke konten

Penyimpanan Kustom

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.

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.

Cara termudah menggunakan custom storage adalah dengan mengunggah bundle Anda ke URL publik apa pun dan memberikan URL tersebut ke Capgo.

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

Perintah ini memberitahu Capgo untuk merujuk ke bundle di URL yang ditentukan, alih-alih mengunggahnya ke cloud storage Capgo.

Untuk penyimpanan eksternal yang aman, Anda dapat mengenkripsi bundle dan menyediakan kunci dekripsinya:

Jendela 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 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.

Jendela 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

Untuk layanan kompatibel S3 atau custom endpoint:

Jendela 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
ParameterDeskripsiWajib
--s3-regionAWS region untuk S3 bucket AndaYa
--s3-apikeyID akses kunci S3Ya
--s3-apisecretKunci akses rahasia S3Ya
--s3-bucket-nameNama S3 bucket AndaYa
--s3-endpointURL endpoint S3 kustomTidak
--s3-portPort untuk endpoint S3Tidak
--no-s3-sslNonaktifkan SSL untuk upload S3Tidak

Saat menggunakan custom storage, terutama dengan enkripsi, Anda perlu menyiapkan bundle dengan benar. Ini melibatkan pembuatan file zip dan opsi untuk mengenkripsinya.

Pertama, buat file zip dari app bundle Anda:

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

Perintah 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.

Jendela 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
OpsiDeskripsi
--pathPath ke folder yang akan di-zip (defaultnya webDir dari capacitor.config)
--bundleNomor versi bundle untuk penamaan file zip
--nameNama kustom untuk file zip
--jsonHasil output dalam format JSON (termasuk checksum)
--no-code-checkLewati pengecekan pemanggilan notifyAppReady() dan file index
--key-v2Gunakan enkripsi v2
--package-jsonPath ke file package.json untuk monorepo (pisahkan dengan koma)

Untuk keamanan ekstra, enkripsi zip bundle Anda sebelum upload:

Jendela 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"

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.

OpsiDeskripsi
zipPathPath ke file zip yang akan dienkripsi (wajib)
checksumChecksum file zip (wajib) - dapatkan dari perintah zip
--keyPath kustom untuk private signing key (opsional, default menggunakan key lokal)
--key-dataData private signing key secara langsung (opsional)
--jsonOutput hasil dalam format JSON
  1. Build aplikasi Anda:

    Jendela terminal
    npm run build
  2. Buat zip bundle:

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

    Catat checksum yang dikembalikan perintah ini.

  3. Enkripsi bundle:

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

    Catat ivSessionKey dari outputnya.

  4. Upload ke storage Anda: Upload file zip terenkripsi ke layanan hosting Anda.

  5. 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
  1. Build aplikasi Anda:

    Jendela terminal
    npm run build
  2. 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
  1. Build dan zip:

    Jendela terminal
    npm run build
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2
  2. Enkripsi bundle:

    Jendela terminal
    npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM
  3. 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

Saat menggunakan custom storage, pertimbangkan praktik keamanan terbaik berikut:

  • 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
  • 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)
  • Pantau access logs untuk mendeteksi pola download yang tidak wajar
  • Siapkan alert untuk kegagalan download bundle
  • Audit izin storage Anda secara berkala

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 ivSessionKey cocok 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

Periksa status bundle:

Jendela terminal
npx @capgo/cli@latest app debug

Verifikasi integritas bundle:

Jendela terminal
npx @capgo/cli@latest bundle list
  • 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

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.