queues.module.ts
3.28 KB
-
feat(callback): 执行结果回调(PAC → 宿主)+ 修 push 密钥存储 + 修凭据页刷新 · 4c8c70a7
执行结果回调(opt-in,宿主配 callbackUrl 才投递): - Host 加 callbackUrl + callbackSecrets(存原文,PAC 签名用);迁移加两列。 - ExecutionService.submit 提交后入 execution-callback 队列(6 次退避重试,死信可见)。 - ExecutionCallbackService:查 execution→plan→patient 拼 payload,HMAC-SHA256("{ts}.{body}") 签名(与 push 入站同配方),fetch+8s 超时,非 2xx/超时抛错交 BullMQ 重试;jobId=executionId 幂等。 - 凭据页新增「执行结果回执」区:callbackUrl 输入 + Callback Secrets(add/rotate/grace/删), suffix 用 sha256 指纹不回显原文。对接文档同步。 顺手修 push 密钥存储 bug: - create/rotate 原本存 scrypt 哈希,但 HmacVerifier 把它当原文做 HMAC key → 宿主拿明文、 PAC 拿哈希,两边 key 不一致,push 验签永远过不了。改为存原文(对齐 seed 与 verifier 预期)。 - 本地实测:轮换后用返回的明文签名 → 验签通过;错误签名 → 10106 拒绝。 修凭据页「刷新即整页重载」: - useHostAdmin.refresh 一进来就切 loading,父组件把整页换成占位、卸载 HostAdminApp, 连带把"仅显示一次"的明文 secret 弹窗刷没(来不及复制)。改 stale-while-revalidate: 已有数据不切 loading,旧数据留屏后台重取。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>luoqi committed