Peran
Klien WebSocket Gateway terhubung dengan satu peran:operator: klien bidang kontrol seperti CLI, Control UI, otomatisasi, dan proses pembantu tepercaya.node: host kapabilitas seperti macOS, iOS, Android, atau node tanpa antarmuka yang mengekspos perintah melaluinode.invoke.
operator. Metode yang berasal dari node
memerlukan peran node.
Tingkat cakupan
| Cakupan | Makna |
|---|---|
operator.read | Status hanya-baca, daftar, katalog, log, pembacaan sesi, dan panggilan bidang kontrol lain yang tidak mengubah data. |
operator.write | Tindakan operator pengubah normal seperti mengirim pesan, memanggil alat, memperbarui pengaturan bicara/suara, dan relai perintah node. Juga memenuhi operator.read. |
operator.admin | Akses administratif bidang kontrol. Memenuhi setiap cakupan operator.*. Diperlukan untuk mutasi konfigurasi, pembaruan, hook native, namespace cadangan sensitif, dan persetujuan berisiko tinggi. |
operator.pairing | Pengelolaan pairing perangkat dan node, termasuk mencantumkan, menyetujui, menolak, menghapus, merotasi, dan mencabut catatan pairing atau token perangkat. |
operator.approvals | API persetujuan eksekusi dan plugin. |
operator.talk.secrets | Membaca konfigurasi Talk dengan rahasia disertakan. |
operator.* yang tidak dikenal di masa mendatang memerlukan kecocokan persis kecuali pemanggil memiliki
operator.admin.
Cakupan metode hanyalah gerbang pertama
Setiap RPC Gateway memiliki cakupan metode dengan hak istimewa paling rendah. Cakupan metode tersebut menentukan apakah permintaan dapat mencapai handler. Beberapa handler kemudian menerapkan pemeriksaan yang lebih ketat pada waktu persetujuan berdasarkan hal konkret yang sedang disetujui atau diubah. Contoh:device.pair.approvedapat dijangkau denganoperator.pairing, tetapi menyetujui perangkat operator hanya dapat menerbitkan atau mempertahankan cakupan yang sudah dimiliki pemanggil.node.pair.approvedapat dijangkau denganoperator.pairing, lalu menurunkan cakupan persetujuan tambahan dari daftar perintah node yang tertunda.chat.sendbiasanya merupakan metode bercakupan tulis, tetapi/config setdan/config unsetpersisten memerlukanoperator.adminpada tingkat perintah.
Persetujuan pairing perangkat
Catatan pairing perangkat adalah sumber tahan lama untuk peran dan cakupan yang disetujui. Perangkat yang sudah dipairing tidak mendapatkan akses lebih luas secara diam-diam: koneksi ulang yang meminta peran lebih luas atau cakupan lebih luas membuat permintaan peningkatan baru yang tertunda. Saat menyetujui permintaan perangkat:- Permintaan tanpa peran operator tidak memerlukan persetujuan cakupan token operator.
- Permintaan untuk peran perangkat non-operator, seperti
node, memerlukanoperator.admin, bahkan ketikadevice.pair.approvedapat dijangkau denganoperator.pairing. - Permintaan untuk
operator.read,operator.write,operator.approvals,operator.pairing, atauoperator.talk.secretsmengharuskan pemanggil memiliki cakupan tersebut, atauoperator.admin. - Permintaan untuk
operator.adminmemerlukanoperator.admin. - Permintaan perbaikan tanpa cakupan eksplisit dapat mewarisi cakupan token operator
yang sudah ada. Jika token yang ada tersebut bercakupan admin, persetujuan tetap memerlukan
operator.admin.
operator.pairing.
Untuk sesi token perangkat yang sudah dipairing, pengelolaan juga dibatasi pada dirinya sendiri kecuali
pemanggil memiliki operator.admin: pemanggil non-admin hanya melihat entri pairing
miliknya sendiri, hanya dapat menyetujui atau menolak permintaan tertunda miliknya sendiri, dan hanya dapat merotasi,
mencabut, atau menghapus entri perangkat miliknya sendiri.
Persetujuan pairing node
node.pair.* lama menggunakan penyimpanan pairing node terpisah yang dimiliki Gateway. Node WS
menggunakan pairing perangkat dengan role: node, tetapi kosakata tingkat persetujuan yang sama
berlaku.
node.pair.approve menggunakan daftar perintah permintaan tertunda untuk menurunkan cakupan
tambahan yang diperlukan:
- Permintaan tanpa perintah:
operator.pairing - Perintah node non-eksekusi:
operator.pairing+operator.write system.run,system.run.prepare, atausystem.which:operator.pairing+operator.admin
system.run milik node sendiri.
Auth rahasia bersama
Auth token/kata sandi gateway bersama diperlakukan sebagai akses operator tepercaya untuk Gateway tersebut. Permukaan HTTP yang kompatibel dengan OpenAI,/tools/invoke, dan endpoint riwayat sesi HTTP
memulihkan kumpulan cakupan default operator penuh yang normal untuk
auth bearer rahasia bersama, bahkan jika pemanggil mengirim cakupan deklaratif yang lebih sempit.
Mode yang membawa identitas, seperti auth proxy tepercaya atau none ingress privat,
masih dapat menghormati cakupan eksplisit yang dideklarasikan. Gunakan Gateway terpisah untuk pemisahan
batas kepercayaan yang nyata.