Langsung ke konten utama
Cakupan operator menentukan apa yang boleh dilakukan klien Gateway setelah terautentikasi. Cakupan ini adalah pagar pengaman bidang kontrol di dalam satu domain operator Gateway tepercaya, bukan isolasi multi-tenant yang bermusuhan. Jika Anda memerlukan pemisahan yang kuat antara orang, tim, atau mesin, jalankan Gateway terpisah di bawah pengguna OS atau host yang terpisah. Terkait: Keamanan, Protokol Gateway, Pairing Gateway, CLI Perangkat.

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 melalui node.invoke.
Metode RPC operator memerlukan peran operator. Metode yang berasal dari node memerlukan peran node.

Tingkat cakupan

CakupanMakna
operator.readStatus hanya-baca, daftar, katalog, log, pembacaan sesi, dan panggilan bidang kontrol lain yang tidak mengubah data.
operator.writeTindakan operator pengubah normal seperti mengirim pesan, memanggil alat, memperbarui pengaturan bicara/suara, dan relai perintah node. Juga memenuhi operator.read.
operator.adminAkses administratif bidang kontrol. Memenuhi setiap cakupan operator.*. Diperlukan untuk mutasi konfigurasi, pembaruan, hook native, namespace cadangan sensitif, dan persetujuan berisiko tinggi.
operator.pairingPengelolaan pairing perangkat dan node, termasuk mencantumkan, menyetujui, menolak, menghapus, merotasi, dan mencabut catatan pairing atau token perangkat.
operator.approvalsAPI persetujuan eksekusi dan plugin.
operator.talk.secretsMembaca konfigurasi Talk dengan rahasia disertakan.
Cakupan 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.approve dapat dijangkau dengan operator.pairing, tetapi menyetujui perangkat operator hanya dapat menerbitkan atau mempertahankan cakupan yang sudah dimiliki pemanggil.
  • node.pair.approve dapat dijangkau dengan operator.pairing, lalu menurunkan cakupan persetujuan tambahan dari daftar perintah node yang tertunda.
  • chat.send biasanya merupakan metode bercakupan tulis, tetapi /config set dan /config unset persisten memerlukan operator.admin pada tingkat perintah.
Ini memungkinkan operator dengan cakupan lebih rendah melakukan tindakan pairing berisiko rendah tanpa membuat semua persetujuan pairing hanya untuk admin.

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, memerlukan operator.admin, bahkan ketika device.pair.approve dapat dijangkau dengan operator.pairing.
  • Permintaan untuk operator.read, operator.write, operator.approvals, operator.pairing, atau operator.talk.secrets mengharuskan pemanggil memiliki cakupan tersebut, atau operator.admin.
  • Permintaan untuk operator.admin memerlukan operator.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.
Sesi rahasia bersama dan proxy tepercaya non-admin dapat menyetujui permintaan perangkat operator hanya di dalam cakupan operator yang mereka deklarasikan sendiri. Menyetujui peran non-operator hanya untuk admin meskipun sesi tersebut sebaliknya dapat menggunakan 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, atau system.which: operator.pairing + operator.admin
Pairing node menetapkan identitas dan kepercayaan. Ini tidak menggantikan kebijakan persetujuan eksekusi 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.