用途:Glean 采用事件驱动索引模型,由源系统 webhook 触发对 Glean Indexing API 的增量更新。Glean 本身不发出 webhook,而是接收 GitHub、Confluence、Notion 等平台的文档变更;也可通过 admin API 监控文档索引完成、权限变更、连接器同步状态和搜索异常等内部事件。
主要能力:注册源系统 webhook 并推送到 Glean Indexing API;用 HMAC-SHA256 校验 x-glean-signature 签名;处理 document.indexed、permission.changed、connector.synced、search.anomaly、document.deleted 等事件类型,分别用于确认内容可搜索、重新同步访问控制、监控连接器健康、检测异常搜索行为、审计内容删除。
使用方式:注册时向 /admin/webhooks 发送 POST,包含 url、events 与 secret;接收端用 express.raw 保留原始请求体,先验签再解析,返回 200 后按事件类型分发。幂等处理以事件 ID 为键,维护有界已处理集合;瞬时失败在固定预算内重试,耗尽后进入死信路径。
前置条件:secret 管理器中的 webhook 密钥、已批准的事件来源允许列表、重放窗口策略、不透明事件账本、带虚构事件的沙箱接收器及可测试的禁用/回滚控制,且每个可能改变索引、权限映射或保留状态的事件类型都需数据负责人批准。
限制与错误处理:索引被拒多因文档超限,需先分块;权限拒绝多因连接器 OAuth 令牌过期,需在 admin 刷新;重复文档需按 doc_id 去重;连接器超时需指数退避。应先处理一个金丝雀来源,观察合成允许/拒绝结果与队列健康后再推广或禁用。输出事件回执需含事件类型、不透明事件 ID、签名/时间戳结果、目标数据源、幂等结果、队列状态、金丝雀结果与回滚引用,排除载荷内容与签名。