生命周期钩子

钩子订阅一个事件,并在事件触发时运行你的操作之一。每次投递都会连同其状态一起存储,因此失败的投递可以被找到并重放。

事件

记录事件在记录被创建、更新、删除、发布或取消发布时触发。其他项目事件涵盖你的用户及其会话、操作的结果、已完成的导入、迁移和批量变更,以及组织的整个生命周期,从创建到成员变化。另有一组事件(团队成员、套餐、项目和邀请的变化)在工作区上订阅。

声明钩子

defineHook 在配置中指明一个事件和要运行的操作的键。过滤器按事件顶层键的相等条件收窄钩子,通常收窄到一个模型。在控制台中设置的钩子也可以指向内置的通知。

投递包含什么

一次投递是向操作端点发出的 HTTP POST,由位于 X-Foir-Token 标头中的短期令牌认证,你需要对照 Fóir 的 JWKS 验证它,并且没有 HMAC 签名标头。正文按记录 id 和模型键说明发生了什么变化,不携带字段内容。接收方需要回读该记录。

跟踪、重试与死信队列

每次投递都是一个带状态的存储行。foir hooks 列出钩子失败的投递,重放其中一次,并发送合成投递以测试端点。重试和熔断器属于钩子所运行的操作。用尽重试次数的运行会落入死信队列,可以在那里检查、重试或忽略。

顺序与循环

投递顺序不保证。每次投递带有序列号,因此接收方可以采用最后写入者胜出,并带有执行 id 用于丢弃重复项。触发自身的钩子不会失控:已在因果链中的操作不会再次运行,链最多三跳。

了解详情

生命周期钩子指南涵盖事件、声明钩子,以及检查和重放投递。