Konfigurowanie tras
Ustaw konfigurację wplugins.entries.webhooks.config:
secret przyjmuje zwykły ciąg znaków lub SecretRef: { source: "env" | "file" | "exec", provider: "default", id: "..." }.
Każda skonfigurowana trasa jest rejestrowana podczas uruchamiania niezależnie
od tego, czy jej sekret można w danej chwili rozpoznać. Sekret, którego nie
można rozpoznać, nie wyłącza ani nie pomija trasy — żądania do niej nie
przechodzą uwierzytelniania (401), dopóki rozpoznanie sekretu nie stanie się
możliwe. Wartości SecretRef są rozpoznawane ponownie przy każdym żądaniu, więc
rotacja źródłowego sekretu (zmiennej środowiskowej, pliku lub wyniku polecenia)
zaczyna obowiązywać bez ponownego uruchamiania Gateway.
Model zabezpieczeń
Każda trasa działa z uprawnieniami TaskFlow skonfigurowanegosessionKey: może
sprawdzać i modyfikować dowolny TaskFlow należący do tej sesji. Dostęp do
TaskFlow zawsze odbywa się przez
api.runtime.tasks.managedFlows.bindSession(...), dlatego trasa nigdy nie może
działać poza powiązaną sesją. Aby ograniczyć zasięg potencjalnych szkód:
- Używaj silnego, unikatowego sekretu dla każdej trasy.
- Preferuj SecretRef zamiast jawnego sekretu umieszczonego bezpośrednio w konfiguracji.
- Powiąż trasy z sesją o najwęższym zakresie odpowiednim dla przepływu pracy.
- Udostępniaj tylko konkretną ścieżkę Webhooka, której potrzebujesz.
POST) i Content-Type: application/json, następnie ograniczenie częstotliwości
w stałym oknie (120 żądań na 60-sekundowe okno dla każdego klucza
ścieżka+adres-IP-klienta, maksymalnie 4096 śledzonych kluczy), następnie
ograniczenie liczby trwających żądań (8 równoczesnych żądań na klucz,
maksymalnie 4096 śledzonych kluczy), następnie uwierzytelnienie współdzielonym
sekretem, a na końcu odczyt treści JSON z limitem 256 KB i 15 sekund. Żądania,
które nie przejdą wcześniejszej kontroli, nigdy nie docierają do kolejnych.
Format żądania
Wysyłaj żądaniaPOST z Content-Type: application/json oraz nagłówkiem
Authorization: Bearer <secret> albo x-openclaw-webhook-secret: <secret>:
Obsługiwane akcje
Akcje modyfikujące (
set_waiting, resume_flow, finish_flow, fail_flow,
request_cancel) wymagają pól flowId i expectedRevision do optymistycznej
kontroli współbieżności; nieaktualna rewizja powoduje zwrócenie
409 revision_conflict.
create_flow
run_task
Dozwolone wartości runtime: subagent, acp. Pola startedAt, lastEventAt
i progressSummary są prawidłowe tylko wtedy, gdy status ma wartość
"running"; wysłanie ich z dowolnym innym statusem powoduje zwrócenie
400 invalid_request.
Struktura odpowiedzi
sessionKey. Wartości
code obejmują not_found, not_managed, revision_conflict,
persist_failed, cancel_requested, cancel_pending, terminal,
invalid_request, request_rejected oraz kody rezerwowe specyficzne dla akcji
(mutation_rejected, create_rejected, task_not_created, cancel_rejected),
gdy modyfikacja zostanie odrzucona z powodu nieobjętego wymienionymi wyżej
kodami.
Powiązane materiały
- Hooki — wewnętrzne hooki sterowane zdarzeniami w porównaniu z tym mostem TaskFlow opartym na HTTP
- Webhooki Gateway (konfiguracja
hooks.*) — oddzielna, ogólna funkcja punktu końcowego HTTP Gateway; nie jest tym samym co trasy tego pluginu - SDK środowiska uruchomieniowego pluginów
- Webhooki CLI