Skip to main content

Webhook

This is a shipped standalone native-serve surface: outbound POST delivery is implemented, the signed inbound webhook service is implemented, and the runtime stays on channels serve webhook instead of gateway supervision today.

At A Glance

FieldValue
Catalog idwebhook
Config keywebhook
Implementation statusruntime_backed
Transportgeneric_webhook
Aliaseshttp-webhook
Default send target kindendpoint

Minimal Config

[webhook]
enabled = true
payload_format = "json_text"
payload_text_field = "text"
endpoint_url_env = "WEBHOOK_ENDPOINT_URL"
signing_secret_env = "WEBHOOK_SIGNING_SECRET"

Smoke Test

loong channels send webhook --text "hello from loong"
loong channels serve webhook --bind 127.0.0.1:7401

Command Surface

OperationCommandUsage or status
http post sendchannels send webhookUsage: loong channels send webhook [OPTIONS] —text <TEXT>
inbound webhook servicechannels serve webhookUsage: loong channels serve webhook —bind <HOST:PORT> [—path <PATH>]

Required Fields For Send

RequirementConfig pathsEnv pointer pathsDefault env
channel enabledwebhook.enabled
webhook.accounts.<account>.enabled
nonenone
endpoint urlwebhook.endpoint_url
webhook.accounts.<account>.endpoint_url
webhook.endpoint_url_env
webhook.accounts.<account>.endpoint_url_env
WEBHOOK_ENDPOINT_URL

Required Fields For Serve

RequirementConfig pathsEnv pointer pathsDefault env
channel enabledwebhook.enabled
webhook.accounts.<account>.enabled
nonenone
signing secretwebhook.signing_secret
webhook.accounts.<account>.signing_secret
webhook.signing_secret_env
webhook.accounts.<account>.signing_secret_env
WEBHOOK_SIGNING_SECRET

Gateway And Ownership

This surface ships a real built-in inbound service, but it remains a standalone native-serve lane today. Use channels serve webhook directly; it does not join gateway run or the gateway-owned reply-loop contract yet.

Operator Notes

  • channels serve webhook requires --bind because the local listener address stays operator-owned instead of coming from static config.
  • Use [outbound_http] allow_private_hosts = true when you intentionally post to a loopback or private bridge endpoint.
  • Treat this as a native serve lane, not as an outbound-only sink.
  • Continue to Channel Guides for the full shipped channel matrix.
  • Continue to Channels for the conceptual surface model.
  • Continue to Channel Setup for the shared public setup contract.