Kunci
Fungsi kunci, jenis-jenisnya, tempat menyimpannya, cara merotasi atau menghapusnya, dan arti kunci atau aplikasi yang ditolak bagi instalasi.
Kunci menghubungkan aplikasi ke ruang kerja Anda di sdk.quranlab.ai. Tombol Salin prompt membuatkan kunci untuk Anda dan menyerahkannya kepada asisten pemrograman Anda. Anda juga dapat membuatnya secara manual di halaman Kunci.
Fungsi kunci
Berbekal kunci ini, SDK dengan sendirinya:
- mendaftarkan aplikasi saat pertama kali dijalankan: aplikasi muncul di halaman Aplikasi, tanpa ada yang perlu diisi;
- mengambil konfigurasi bertanda tangan untuk aplikasi (Ed25519, diperiksa dengan kunci penandatanganan yang tertanam di SDK) saat aplikasi dijalankan, saat kembali ke latar depan, dan setiap menit selama dipakai, sehingga perubahan yang Anda buat di sdk.quranlab.ai sampai ke aplikasi yang sedang berjalan dalam waktu sekitar satu menit;
- hanya mengunduh berkas model yang dibutuhkan perangkatnya, memeriksa setiap berkas terhadap manifes bertanda tangan, mempertahankan mesin exact (CPU) sebagai cadangan, dan beralih ke versi model atau build baru hanya di awal sesi;
- mengirim jumlah harian anonim (setiap kolom data) dan laporan masalah yang dikelompokkan.
Jenis kunci
Jenis kunci dipilih saat kunci dibuat dan tidak pernah berubah.
| Jenis | Untuk | Aplikasi dikenali dari |
|---|---|---|
apps |
iOS dan Android | Bundle id, applicationId di Gradle |
web |
Browser | Origin https yang tepat dari halaman |
desktop |
macOS, Windows, dan Linux | Bundle id di macOS; nama keluarga paket atau AppUserModelID di Windows; app id berformat reverse-DNS di Linux |
Kunci web sengaja dibuat publik: kunci ini hanya bekerja dari origin yang Anda tetapkan untuknya, dan setiap origin terdaftar sebagai aplikasi tersendiri. Kunci apps atau desktop dapat dibatasi ke identitas aplikasi Anda, sehingga kunci yang tersalin tidak ada gunanya di aplikasi lain.
Kunci ditujukan untuk produksi atau untuk pengembangan. Kunci pengembangan dan kunci produksi untuk aplikasi yang sama adalah hal yang wajar. Kunci pengembangan tidak pernah dihitung dalam analitik produksi.
Tempat menyimpan kunci
Pedomannya adalah satu kunci per aplikasi. Kunci lengkap hanya ditampilkan satu kali, yaitu saat kunci dibuat. Simpan kunci di luar repositori Anda: di Android, dalam berkas properties yang diabaikan git; di Apple, dalam berkas xcconfig; di web, dalam berkas environment; di Windows dan Linux, dalam environment atau berkas konfigurasi aplikasi Anda. Setiap panduan mulai cepat menunjukkan tempatnya.
Merotasi dan menghapus kunci
Merotasi kunci memberi Anda kunci baru dengan nama yang sama, dan kunci lama langsung berhenti berfungsi. Menghapus kunci membuatnya berhenti berfungsi secara permanen. Dalam kedua kasus, setiap instalasi yang masih membawa kunci itu ditolak oleh server: saat berikutnya terhubung ke server, instalasi itu berhenti mengenali bacaan dan menghapus model dari perangkat, dan baru bekerja lagi setelah pelajar memasang pembaruan aplikasi Anda dengan kunci lain.
Rotasi kunci jika kunci itu harus berhenti sekarang juga, misalnya karena bocor. Untuk berganti kunci tanpa memutus instalasi:
- Buat kunci kedua untuk aplikasi yang sama di halaman Kunci, lalu rilis pembaruan aplikasi Anda dengan kunci itu.
- Tunggu sampai instalasi sudah beralih ke kunci baru. Tab Pengaturan aplikasi mencantumkan kedua kunci, masing-masing dengan hari terakhir kunci itu dipakai.
- Hapus kunci lama. Instalasi yang tidak pernah diperbarui kehilangan model pada saat itu.
Galat SDK untuk kunci yang tidak lagi dikenali server adalah invalid_key.
Saat server menolak kunci atau aplikasi
Server menolak sebuah instalasi jika:
- kuncinya sudah dihapus atau dirotasi, atau tidak ada;
- kunci tidak mencantumkan pengenal aplikasi, atau origin halaman;
- jenis kunci tidak sesuai dengan platformnya;
- Anda menjeda aplikasi, atau Quran Lab memblokirnya;
- akun di balik kunci tidak lagi memiliki akses ke Quran Lab.
SDK kemudian berhenti menjalankan model dan menghapusnya dari perangkat: saat itu juga, atau saat aplikasi menutup model yang sedang terbuka, dan paling lambat saat aplikasi dijalankan berikutnya. Penolakan itu disimpan di perangkat, sehingga aplikasi yang dibuka tanpa jaringan pun tidak menjalankan model. Instalasi yang tidak terhubung ke server tetap menyimpan modelnya dan terus bekerja sampai terhubung. Pilihan berbagi milik pelajar dan rekaman yang belum terkirim tetap ada.
Setelah server kembali menerima kunci tersebut (Anda mengaktifkan kembali aplikasi, mengembalikan pengenal ke kunci, atau pelajar memasang pembaruan dengan kunci yang berfungsi), instalasi mengunduh model lagi, seperti pada instalasi pertama: sekitar 57 MB.
Galat SDK-nya adalah invalid_key untuk kunci yang dihapus, dirotasi, atau tidak dikenal, dan server_rejected untuk kasus lainnya, beserta alasannya: app_not_allowed, origin_not_allowed, key_type_mismatch, app_blocked, atau developer_not_approved.
Dalam organisasi
Kunci adalah milik ruang kerja, bukan milik satu orang. Di organisasi, pemilik dan admin mengelola kunci, sedangkan developer membuat dan memakainya. Kunci dapat dipindahkan dari ruang kerja pribadi Anda ke organisasi yang Anda kelola, bersama aplikasinya dan riwayat aplikasi tersebut. Pemindahan bersifat satu arah.