Shlyuzga tegishli juftlashuv (Variant B)
Shlyuzga tegishli juftlashuvda, qaysi tugunlarga qo‘shilish ruxsat etilishini belgilovchi yagona haqiqat manbai Shlyuz hisoblanadi. UI’lar (macOS ilovasi, kelajakdagi mijozlar) faqat kutilayotgan so‘rovlarni tasdiqlash yoki rad etish uchun frontend vazifasini bajaradi. Muhim: WS tugunlariconnect vaqtida qurilma juftlashuvi (rol node) dan foydalanadi.
node.pair.* alohida juftlashuv ombori bo‘lib, WS handshake’ni cheklamaydi.
Faqatgina aniq node.pair.* ni chaqirgan mijozlargina ushbu oqimdan foydalanadi.
Tushunchalar
- Kutilayotgan so‘rov: tugun qo‘shilishni so‘radi; tasdiqlash talab etiladi.
- Juftlangan tugun: tasdiqlangan va autentifikatsiya tokeni berilgan tugun.
- Transport: Shlyuz WS endpoint’i so‘rovlarni uzatadi, ammo a’zolikni hal qilmaydi. (Meros TCP ko‘prigi qo‘llab-quvvatlashi eskirgan/olib tashlangan.)
Juftlashuv qanday ishlaydi
- Tugun Shlyuz WS ga ulanadi va juftlashuvni so‘raydi.
- Shlyuz kutilayotgan so‘rovni saqlaydi va
node.pair.requestedhodisasini chiqaradi. - Siz so‘rovni tasdiqlaysiz yoki rad etasiz (CLI yoki UI orqali).
- Tasdiqlanganda, Shlyuz yangi token chiqaradi (qayta juftlashuvda tokenlar aylantiriladi).
- Tugun token yordamida qayta ulanadi va endi “juftlangan” bo‘ladi.
CLI ish jarayoni (headless uchun qulay)
nodes status juftlangan/ulangan tugunlar va ularning imkoniyatlarini ko‘rsatadi.
API yuzasi (shlyuz protokoli)
Hodisalar:node.pair.requested— yangi kutilayotgan so‘rov yaratilganda chiqariladi.node.pair.resolved— so‘rov tasdiqlanganda/rad etilganda/muddati o‘tganda chiqariladi.
node.pair.request— kutilayotgan so‘rovni yaratish yoki qayta ishlatish.node.pair.list— kutilayotgan + juftlangan tugunlarni ro‘yxatlash.node.pair.approve— kutilayotgan so‘rovni tasdiqlash (token chiqaradi).node.pair.reject— kutilayotgan so‘rovni rad etish.node.pair.verify—{ nodeId, token }ni tekshirish.
node.pair.requesthar bir tugun uchun idempotent: takroriy chaqiruvlar bir xil kutilayotgan so‘rovni qaytaradi.- Tasdiqlash har doim yangi token yaratadi;
node.pair.requestdan hech qachon token qaytarilmaydi. - So‘rovlar avtomatik tasdiqlash oqimlari uchun ishora sifatida
silent: trueni o‘z ichiga olishi mumkin.
Avtomatik tasdiqlash (macOS ilovasi)
macOS ilovasi quyidagi hollarda ixtiyoriy ravishda jim tasdiqlashga urinishi mumkin:- so‘rov
silentdeb belgilangan bo‘lsa va -
- ilova xuddi shu foydalanuvchi yordamida shlyuz xostiga SSH ulanishini tekshirishi mumkin.
- Agar jim tasdiqlash muvaffaqiyatsiz bo‘lsa, u odatiy “Approve/Reject” so‘roviga qaytadi.
3. Saqlash (mahalliy, xususiy)
- Juftlash holati Gateway holat katalogida saqlanadi (standart
~/.openclaw):
~/.openclaw/nodes/paired.json~/.openclaw/nodes/pending.json
-
Agar
OPENCLAW_STATE_DIRni qayta belgilasangiz,nodes/papkasi ham u bilan birga ko‘chadi. - Xavfsizlik eslatmalari:
-
- Tokenlar maxfiy hisoblanadi;
paired.jsonni sezgir ma’lumot sifatida ko‘ring.
- Tokenlar maxfiy hisoblanadi;
-
- Tokenni aylantirish qayta tasdiqlashni talab qiladi (yoki tugun yozuvini o‘chirishni).
11. Transport xatti-harakati
-
- Transport holatsiz; u a’zolikni saqlamaydi.
-
- Agar Gateway oflayn bo‘lsa yoki juftlash o‘chirilgan bo‘lsa, tugunlar juftlasha olmaydi.
-
- Agar Gateway masofaviy rejimda bo‘lsa, juftlash baribir masofaviy Gateway omboriga qarshi amalga oshiriladi.