跳转到主要内容
版本要求:此功能需要 On-call 标准版及以上订阅。了解更多
通过 Flagsmith 组织级的审计日志 Webhook(Audit Log Webhook),将功能开关和 Segment 的变更同步到 Flashduty On-call。审计日志中与开关求值相关的每条记录,对应一条 Flashduty 变更。这类记录包括:修改开关状态或远程配置值、创建或删除开关、修改 Segment 规则和 Segment 覆盖、发布环境特性版本、修改用户身份(Identity)覆盖。 Flagsmith 推送的是已经生效的变更,因此每条变更都直接记录为 Done。

在 Flashduty On-call

  1. 进入 Flashduty 控制台,选择 集成中心 → 变更事件
  2. 选择 Flagsmith,填写集成名称
  3. 如需把变更分派到指定协作空间,在集成的 路由 中按标签(例如 project、environment)配置规则
  4. 点击 保存,复制生成的 推送地址

在 Flagsmith 中配置

1

创建组织级 Webhook

  1. 进入 Organisation Settings,打开 Webhooks 页签
  2. 创建审计日志 Webhook(Audit Log Webhook)
需要组织管理员权限。请使用组织级审计日志 Webhook(Create audit webhook)。除审计日志外,Flagsmith 还会向该地址推送 FLAG_UPDATED、FLAG_DELETED 事件,Flashduty 收到后返回成功,不生成变更。
2

填写推送地址

  1. URL:粘贴 Flashduty 集成的完整推送地址
  2. Secret:留空。Flashduty 通过推送地址中的 integration_key 鉴权,不校验 X-Flagsmith-Signature
  3. 启用该 Webhook 并保存
Flagsmith 会把组织下所有项目的审计日志推送到该地址,之后在任一开关上做一次变更,即可在 Flashduty 变更列表中看到记录。Webhook 对话框中的 Test your webhook 按钮可发送测试推送,Flashduty 收到后返回成功,不生成变更。

变更如何合并

请为每个 Flagsmith 实例单独创建一个集成;多个实例共用一个集成时,不同实例的审计日志记录可能被当作同一条变更。

状态映射

以下推送返回成功但不生成变更:
  • 其他类型的记录,例如变更请求(CHANGE_REQUEST)、环境、导入请求、开关健康状态、发布流水线
  • 开关的名称、描述、标签等元数据修改(Flag / Remote Config updated)
  • 只创建定时变更、尚未生效的记录(日志内容含 scheduled for);变更生效时 Flagsmith 会另外推送一条记录
  • 事件类型不是 AUDIT_LOG_CREATED 的推送,例如 FLAG_UPDATED、FLAG_DELETED
  • Flagsmith 的测试推送

变更内容

标签可用于路由和在变更列表中筛选:

常见问题

不会。同一条记录的重试内容与原推送相同,Flashduty 只记录一次。
先看上文 状态映射 中的忽略列表:元数据修改、变更请求本身、定时变更的创建都不记录,变更请求提交并生效、定时变更到期生效时才有记录。另外确认 Webhook 配置在组织级并处于启用状态。
  • … is missing 或 invalid …:推送内容不完整或字段格式不正确,请确认推送来自 Flagsmith 组织级 Webhook