admin-http-rpc udostępnia wybrane metody płaszczyzny sterowania Gateway przez HTTP dla zaufanej automatyzacji hosta, która nie może używać zwykłego klienta RPC WebSocket Gateway.
Plugin jest dołączony do OpenClaw, ale domyślnie jest wyłączony. Gdy jest wyłączony, trasa nie jest rejestrowana. Gdy jest włączony, dodaje:
POST /api/v1/admin/rpc- ten sam nasłuch co Gateway:
http://<gateway-host>:<port>/api/v1/admin/rpc
Zanim go włączysz
RPC administracyjne HTTP to pełna powierzchnia płaszczyzny sterowania operatora. Każdy wywołujący, który przejdzie uwierzytelnianie HTTP Gateway, może wywołać metody z listy dozwolonych na tej stronie. Używaj go, gdy wszystkie poniższe warunki są spełnione:- Wywołujący jest zaufany do obsługi Gateway.
- Wywołujący nie może używać klienta RPC WebSocket.
- Trasa jest osiągalna tylko przez loopback, tailnet albo prywatny uwierzytelniony punkt wejścia.
- Przejrzano dozwolone metody i odpowiadają automatyzacji, którą planujesz uruchomić.
Włączanie
Włącz dołączony Plugin:- CLI
- Config
Weryfikacja trasy
Użyjhealth jako najmniejszego bezpiecznego żądania:
ok: true:
404, ponieważ nie jest zarejestrowana.
Uwierzytelnianie
Trasa Plugin używa uwierzytelniania HTTP Gateway. Typowe ścieżki uwierzytelniania:- uwierzytelnianie współdzielonym sekretem (
gateway.auth.mode="token"albo"password"):Authorization: Bearer <token-or-password> - zaufane uwierzytelnianie HTTP przenoszące tożsamość (
gateway.auth.mode="trusted-proxy"): kieruj przez skonfigurowany serwer proxy świadomy tożsamości i pozwól mu wstrzyknąć wymagane nagłówki tożsamości - otwarte uwierzytelnianie prywatnego punktu wejścia (
gateway.auth.mode="none"): nagłówek uwierzytelniania nie jest wymagany
Model bezpieczeństwa
Traktuj ten Plugin jako pełną powierzchnię operatora Gateway.- Włączenie Plugin celowo udostępnia dostęp do dozwolonych metod RPC administratora pod adresem
/api/v1/admin/rpc. - Plugin deklaruje zarezerwowany kontrakt manifestu
contracts.gatewayMethodDispatch: ["authenticated-request"], aby jego uwierzytelniona przez Gateway trasa HTTP mogła wysyłać metody płaszczyzny sterowania w procesie. - Uwierzytelnianie bearer współdzielonym sekretem potwierdza posiadanie sekretu operatora gateway.
- Dla uwierzytelniania
tokenipasswordwęższe nagłówkix-openclaw-scopessą ignorowane i przywracane są zwykłe pełne domyślne uprawnienia operatora. - Zaufane tryby HTTP przenoszące tożsamość respektują
x-openclaw-scopes, gdy są obecne. gateway.auth.mode="none"oznacza, że ta trasa jest nieuwierzytelniona, jeśli Plugin jest włączony. Używaj tego tylko za prywatnym punktem wejścia, któremu w pełni ufasz.- Żądania są wysyłane przez te same procedury obsługi metod Gateway i kontrole zakresów co RPC WebSocket po przejściu uwierzytelniania trasy Plugin.
- Utrzymuj tę trasę na loopback, tailnecie albo prywatnym zaufanym punkcie wejścia. Nie wystawiaj jej bezpośrednio do publicznego internetu.
- Kontrakty manifestu Plugin nie są piaskownicą. Zapobiegają przypadkowemu użyciu zarezerwowanych pomocników SDK; zaufane pluginy nadal działają w procesie Gateway.
Żądanie
id(ciąg znaków, opcjonalne): kopiowane do odpowiedzi. UUID jest generowany, gdy pole zostanie pominięte.method(ciąg znaków, wymagane): dozwolona nazwa metody Gateway.params(dowolne, opcjonalne): parametry specyficzne dla metody.
Odpowiedź
Pomyślne odpowiedzi używają kształtu RPC Gateway:INVALID_REQUEST zwraca 400, a UNAVAILABLE zwraca 503.
Dozwolone metody
- wykrywanie:
commands.listZwraca nazwy metod RPC HTTP dozwolone przez ten Plugin. - gateway:
health,status,logs.tail,usage.status,usage.cost,gateway.restart.request - konfiguracja:
config.get,config.schema,config.schema.lookup,config.set,config.patch,config.apply - kanały:
channels.status,channels.start,channels.stop,channels.logout - web:
web.login.start,web.login.wait - modele:
models.list,models.authStatus - agenci:
agents.list,agents.create,agents.update,agents.delete - zatwierdzenia:
exec.approvals.get,exec.approvals.set,exec.approvals.node.get,exec.approvals.node.set - cron:
cron.status,cron.list,cron.get,cron.runs,cron.add,cron.update,cron.remove,cron.run - urządzenia:
device.pair.list,device.pair.approve,device.pair.reject,device.pair.remove - węzły:
node.list,node.describe,node.pair.list,node.pair.approve,node.pair.reject,node.pair.remove,node.rename - zadania:
tasks.list,tasks.get,tasks.cancel - diagnostyka:
doctor.memory.status,update.status
Porównanie z WebSocket
Zwykła ścieżka RPC WebSocket Gateway pozostaje preferowanym API płaszczyzny sterowania dla klientów OpenClaw. Używaj RPC administracyjnego HTTP tylko dla narzędzi hosta, które potrzebują powierzchni HTTP typu żądanie/odpowiedź. Klienci WebSocket ze współdzielonym tokenem bez zaufanej tożsamości urządzenia nie mogą samodzielnie deklarować zakresów administratora podczas łączenia. RPC administracyjne HTTP celowo podąża za istniejącym modelem zaufanego operatora HTTP: gdy Plugin jest włączony, uwierzytelnianie bearer współdzielonym sekretem jest traktowane jako pełny dostęp operatora do tej powierzchni administracyjnej.Rozwiązywanie problemów
404 Not Found
: Plugin jest wyłączony, Gateway nie został ponownie uruchomiony od czasu jego włączenia albo żądanie trafia do innego procesu Gateway.
401 Unauthorized
: Żądanie nie spełniło uwierzytelniania HTTP Gateway. Sprawdź token bearer albo nagłówki tożsamości trusted-proxy.
400 INVALID_REQUEST
: Treść żądania nie jest prawidłowym JSON, brakuje pola method albo metoda nie znajduje się na liście dozwolonych Plugin.
503 UNAVAILABLE
: Procedura obsługi metody Gateway jest niedostępna. Sprawdź logi Gateway i ponów próbę po zakończeniu uruchamiania Gateway.