Mengonfigurasi rute
Tetapkan konfigurasi di bawahplugins.entries.webhooks.config:
secret menerima string biasa atau SecretRef: { source: "env" | "file" | "exec", provider: "default", id: "..." }.
SecretRef diresolusi ke dalam snapshot konfigurasi awal Gateway. Ketika rahasia
salah satu rute tidak dapat diresolusi, Gateway tetap berjalan dan rute tersebut tetap
terdaftar tetapi dingin: permintaan menerima kegagalan autentikasi umum (401).
Rute lain tetap tersedia. Perbaiki sumber SecretRef, lalu muat ulang atau mulai ulang
Gateway untuk mengaktifkan snapshot baru. Nilai SecretRef tidak pernah diresolusi
pada jalur permintaan publik.
Model keamanan
Setiap rute bertindak dengan otoritas TaskFlow darisessionKey yang dikonfigurasi:
rute dapat memeriksa dan mengubah TaskFlow apa pun yang dimiliki sesi tersebut. Akses TaskFlow
selalu melalui api.runtime.tasks.managedFlows.bindSession(...), sehingga
rute tidak pernah dapat bertindak di luar sesi terikatnya. Untuk membatasi dampak:
- Gunakan rahasia yang kuat dan unik untuk setiap rute.
- Utamakan SecretRef daripada rahasia teks biasa sebaris.
- Ikat rute ke sesi tersempit yang sesuai dengan alur kerja.
- Ekspos hanya jalur webhook spesifik yang Anda perlukan.
POST)
dan Content-Type: application/json, lalu pembatasan laju berjendela tetap (120
permintaan per jendela 60 detik untuk setiap kunci jalur+IP-klien, hingga 4.096
kunci terlacak), lalu pembatasan permintaan yang sedang diproses (8 permintaan serentak per kunci, hingga
4.096 kunci terlacak), lalu autentikasi rahasia bersama, kemudian pembacaan isi JSON berukuran 256 KB /
15 detik. Permintaan yang gagal pada pemeriksaan sebelumnya tidak pernah mencapai
pemeriksaan berikutnya.
Format permintaan
Kirim permintaanPOST dengan Content-Type: application/json dan salah satu dari
Authorization: Bearer <secret> atau x-openclaw-webhook-secret: <secret>:
Tindakan yang didukung
Tindakan yang mengubah data (
set_waiting, resume_flow, finish_flow, fail_flow,
request_cancel) memerlukan flowId dan expectedRevision untuk konkurensi
optimistis; revisi kedaluwarsa mengembalikan 409 revision_conflict.
create_flow
run_task
Nilai runtime yang diizinkan: subagent, acp. startedAt, lastEventAt, dan
progressSummary hanya valid ketika status adalah "running"; mengirimkannya
dengan status lain akan mengembalikan 400 invalid_request.
Bentuk respons
sessionKey yang terikat ke rute. Nilai code mencakup not_found,
not_managed, revision_conflict, persist_failed, cancel_requested,
cancel_pending, terminal, invalid_request, request_rejected, dan
kode cadangan khusus tindakan (mutation_rejected, create_rejected,
task_not_created, cancel_rejected) ketika perubahan ditolak karena
alasan yang tidak dicakup oleh kode bernama di atas.
Terkait
- Hook - hook internal berbasis peristiwa dibandingkan dengan jembatan TaskFlow berbasis HTTP ini
- Webhook Gateway (konfigurasi
hooks.*) - fitur endpoint HTTP Gateway generik yang terpisah; tidak sama dengan rute plugin ini - SDK runtime plugin
- Webhook CLI