用途:帮助搭建 Favro Webhook 接收端点,完成签名校验、setup ping 响应与事件分发。
主要能力:Favro 不使用 Standard Webhooks 规范,其签名方式特殊——签名消息不是请求体。X-Favro-Webhook 为 base64(HMAC-SHA1(key=secret, message=payloadId + webhookUrl)),其中 payloadId 来自 JSON 请求体顶层字段,webhookUrl 是创建 Webhook 时提交的 postToUrl 原文。校验需用定时安全比较,且不要对请求体做 HMAC。
使用方式:设置环境变量 FAVRO_WEBHOOK_SECRET 与 FAVRO_WEBHOOK_URL(后者必须与注册 URL 逐字节一致,含协议、主机、路径、结尾斜杠与查询串)。解析请求体仅用于取 payloadId,再拼接 URL 计算签名并比较。Webhook 创建时 Favro 会发送 action 为 ping 的校验请求,需返回 2xx,否则 Webhook 保持未验证状态;ping 同样带 payloadId,按相同方式校验。事件通过顶层 action 字段与对象类型组合分发,如 card.created、card.committed、card.moved、card.updated、card.deleted、comment.created、comment.updated、comment.deleted。
本地开发:可用 npx hookdeck-cli listen 3000 favro --path /webhooks/favro 建立隧道,将生成的公网 URL 注册为 postToUrl,并把 FAVRO_WEBHOOK_URL 设为同一 URL。
限制:Favro 无官方 SDK,各语言需手动实现校验;UI 自动化触发的事件可能只含部分数据且无更新前状态,需要完整记录时应调用 Favro API 获取。资料未提供收费、价格与平台支持信息。