Skip to content

feat: generic webhook actionner #748

Description

@ntcdeveloper

Summary

Add a generic webhook actionner to falco-talon that POSTs a Falco event to an external HTTP endpoint and handles the response. This enables integrating any HTTP-based tool (RCA engines, enrichment services, custom automation) into the talon action chain without needing a dedicated actionner per tool.

Motivation

Tools like Wachd receive a Falco event, run AI-powered root cause analysis, and return a plain-English explanation of why the event happened. With a generic webhook actionner, talon can call Wachd (or any similar tool), wait for the result, and include it in the notifier payload — so the on-call engineer gets the automated response and the root cause in one notification.

Proposed behaviour

The actionner POSTs the Falco event payload to a configured URL. Several response strategies should be supported to accommodate tools with different latency profiles:

  • Sync wait — wait for the HTTP response inline (with configurable timeout)
  • WebSocket — keep the connection open and receive the result when ready (with timeout)
  • Poll foreground — POST returns a job ID; talon polls a status endpoint until complete (configurable interval + max attempts), blocking the action chain
  • Poll background — same as foreground but polling runs async, unblocking the rest of the chain

Suggested configuration

- action: Webhook RCA
  actionner: webhook:generic
  parameters:
    url: https://wachd.company.internal/api/v1/webhook/<teamId>/<secret>
    method: POST
    timeout: 60
    response_mode: poll          # sync | websocket | poll
    poll_endpoint: https://wachd.company.internal/api/v1/teams/<teamId>/incidents/{id}
    poll_interval: 5
    poll_max_attempts: 12
    headers:
      Content-Type: application/json

Notes

  • Discussed in CNCF Slack #falco thread (2026-06-08) with @thomaslabarussias
  • The poll modes (foreground/background) are particularly useful for AI-backed tools where processing time varies with backend and model
  • Happy to help test against Wachd's incident endpoint or share the response format for speccing the poll contract

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions