跳到正文
SupaCove文档

09 / 13

通知 Webhook

三种事件、outbox 重试语义与投递日志

事件

  • backup_failed:备份任务失败。
  • backup_expired:某库的保护状态过期——包括“最新成功备份超过新鲜度阈值”和 “从未成功过”两类(暂停的库不再产生新的过期事件)。
  • verification_failed:恢复验证失败(任务本身仍为 succeeded)。

每个事件向每个匹配的 webhook 各发送一次 JSON POST(一次轮询可能向多个目标 POST; 失败重试时会再次访问上一轮已成功的目标),带 X-Supacove-Event 与 X-Supacove-Event-ID 头(稳定去重键;过渡期同值发送改名前的 X-Supabackup-* 旧头)。

投递语义(outbox)

  • 事务性:正常情况下通知与任务终态同一事务提交;补偿路径(失败回退入队 + 调度器 对账扫描)提供持久保证,不会永久丢失通知。
  • 至少一次:失败按 30/60/120/240 秒退避重试,最多 5 次;耗尽后标记 dead (界面上可见,不会静默丢弃)。
  • 单实例:投递租约与去重假设一个运行实例(进程锁强制)。

测试与排查

  • “发送测试”立即做一次真实投递(不经过 outbox),返回送达与否与错误类别。
  • “投递日志”显示每条通知的状态、attempts(累计失败轮数,成功不计数,不等于 HTTP 请求总数)与最后错误(错误已分类脱敏,不含 URL)。
  • webhook URL 允许指向内网/回环(自托管接收器是合法场景),但拒绝链路本地地址与 云元数据端点(含 IPv6 fd00:ec2::254 与 NAT64 编码)。

最后更新

本页目录