核心用法
Hookaido 是一款模块化 Webhook 基础设施,v2.6.0 版本提供完整的接收-队列-投递流水线。核心工作流遵循"配置优先"原则:编辑 Hookaidofile → 格式化验证 → 运行 → 端到端测试 → 诊断队列健康。
关键组件:
- Ingress:HTTP 接收端,支持多路由、HMAC 签名验证(GitHub/Gitea/Stripe/Cituro 原生兼容)
- Queue Backend:SQLite(默认)、内存(开发模式)、Postgres(共享存储)
- Consumption 模式:HTTP Pull(dequeue/ack/nack/extend)、SSE 实时流、gRPC Pull Worker
- Delivery 模式:HTTP Push(带指数退避重试)、子进程 Exec(stdin 传 payload,exit code 驱动重试/DLQ)
- Admin API:健康检查、队列积压趋势、死信队列(DLQ)查看/重入/删除
典型配置结构:
ingress { listen :8080 }
pull_api { listen :9443; auth token env:HOOKAIDO_PULL_TOKEN }
/webhooks/github {
auth hmac { provider github; secret env:GITHUB_WEBHOOK_SECRET }
pull { path /pull/github }
}MCP 集成:v2.6.0 原生支持 Claude Code MCP 插件,提供结构化工具调用(--role read/operate/admin),无需解析 shell 输出。
显著优点
1. 生产级可靠性:SQLite WAL 模式默认持久化,Postgres 后端支持共享队列,DLQ + 指数退避重试实现故障隔离
2. 多协议消费:SSE 流式替代轮询、HTTP Pull 兼容现有 Worker、gRPC 支持高性能批量消费
3. 提供商生态:内置 GitHub/Gitea/Stripe/Cituro 签名格式,避免自定义 HMAC 实现风险
4. 运维友好:单一二进制、多平台发布(darwin/linux/windows amd64/arm64)、健康端点详细节点状态
5. 安全设计:--strict-secrets 验证、Vault 集成支持、MCP 分级权限(read/operate/admin)
潜在局限
- 子进程 Exec 限制:
sign指令不支持,exit code 126/127 直接 DLQ 不可逆,需预演脚本行为 - Provider HMAC 无重放保护:GitHub/Stripe 等模式禁用 timestamp/nonce 验证(提供商不发送)
- Postgres 依赖外部管理:连接池、迁移、备份需 DBA 介入,非开箱即用
- Windows 支持层级较低:release 为 zip 包,无 MSI/服务包装器
- 学习曲线:HCL 配置语法 + 多模块组合(grpc/exec/postgres)需要一定上手时间
适合人群
- SaaS 平台开发者:需可靠接收 GitHub/Stripe 等第三方 Webhook,要求签名验证 + 队列缓冲
- DevOps/平台工程师:构建内部事件总线,需 HTTP→子进程桥接(如触发 Ansible/Terraform)
- AI Agent 开发者:通过 MCP 协议直接操作队列,实现自动化运维(查看积压、DLQ 重入)
常规风险
| 风险场景 | 缓解措施 |
|---------|---------|
| 密钥硬编码 | 强制 `env:`/`file:` 引用,`--strict-secrets` 编译期拦截 |
| DLQ 误删 | Admin API 要求 `reason` 参数,操作前强制只读诊断 |
| 重试风暴 | 指数退避 + jitter + max_attempts 可配置,默认 cap 2m |
| SSE 连接泄露 | `max_duration`/`keepalive` 配置,客户端需处理重连 |
| 子进程资源耗尽 | `timeout` 强制配置,exit code 语义需文档化 |
供应链安全:官方 release 提供 SHA256 checksums,支持 verify-release --require-provenance(可选启用)。