核心用法
Hookaido 是一款专为 webhook 基础设施设计的轻量级网关,采用 config-first 的 HCL 配置风格。核心功能涵盖三大维度:接收端(Ingress) 支持多路由 HMAC 签名验证(GitHub/Gitea/Stripe 等提供商兼容模式)、队列层 提供 SQLite/PostgreSQL/Memory 三种后端选择,以及投递端 支持 HTTP 推送、HTTP/gRPC 拉取(Pull API)和子进程执行(exec delivery)三种消费模式。
配置工作流遵循「编辑-验证-运行」闭环:通过 Hookaidofile 定义路由与队列行为,使用 hookaido config validate 进行严格模式校验(含密钥引用检查),最终 hookaido run 启动服务。运维层面提供 /healthz?details=1 健康检查、/backlog/trends 队列趋势、/dlq 死信队列管理,以及 MCP 模式供 AI Agent 安全调用(默认只读,显式授权后方可变更)。
显著优点
- 部署灵活:单二进制文件,SQLite 零依赖即可生产运行;同时支持 PostgreSQL 共享存储应对高可用场景
- 安全内建:HMAC-SHA256 签名验证支持主流 Git 提供商原生格式,密钥强制外置(env/file ref),禁止硬编码
- 投递模式丰富:HTTP 推送适合内网服务,gRPC/HTTP Pull 适合边缘网络或 Serverless 环境,exec 模式支持本地脚本无缝集成
- 可观测性完善:队列深度趋势、DLQ 可视化、MCP 结构化接口,便于构建自动化运维 playbook
- AI 友好:MCP 服务端模式支持权限分级(read/operate/admin),满足 AI Agent 安全约束
潜在局限
- 社区生态较新:v2.2.0 版本,相比成熟方案(如 Argo Events、Knative Eventing)功能集更精简,缺少流处理、事件路由等高级特性
- 子进程模式限制:exec delivery 不支持
sign指令,且依赖脚本正确处理 exit code(0=ack, 126/127=DLQ),调试成本较高 - PostgreSQL 模式待验证:文档提示为 v2 新增模块,生产级稳定性需额外观察
- Windows 支持有限:release 提供 Windows 构建,但 exec 模式依赖 Unix exit code 语义,跨平台行为可能存在差异
适合人群
- 需要快速搭建 GitHub/GitLab webhook 接收端的中小型团队
- 已有 CI/CD 流水线,希望用轻量级方案替代重量级消息队列(如 Kafka/RabbitMQ)的 webhook 场景
- 边缘部署或 IoT 环境,需要 HTTP Pull 模式替代推送的受限网络场景
- 希望 AI Agent 安全参与运维诊断的 SRE 团队
常规风险
- 密钥管理:虽强制外置,但
HOOKAIDO_INGRESS_SECRET等环境变量若通过 CI 日志泄露,仍可导致签名伪造 - DLQ 积压:默认重试策略(指数退避)在下游故障时可能快速填满队列,需配置监控告警
- 幂等性依赖:at-least-once 投递语义要求下游消费者实现幂等处理,否则重试可能导致业务副作用
- MCP 权限升级:
--enable-mutations和--enable-runtime-control开启后需严格审计 principal 身份,防止越权操作