诊断(08-08-production-authenticated-readiness): 核定邮件重置路径
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s

这个提交包含在:
2026-08-08 23:40:50 +08:00
父节点 fa166d68b3
当前提交 00fecf2a03
共修改 3 个文件,包含 18 行新增和 7 行删除
@@ -45,6 +45,16 @@
- [x] employee:非管理员 employee 候选 5、passwordMatchCount=0,无法在不猜人的情况下选定验收账号。
- [x] 未把正确管理员 identifier 写入 task、对话或仓库,也未修改仓库外 secret;密码重置/员工账号选择转为独立批准事项。
自助密码重置可用性只读核对:
- [x] 运行容器 `EMAIL_ENABLED=false`;公网 `/api/auth/capabilities` 独立返回 `emailDeliveryReady=false`、原因 `email_disabled`。
- [x] 唯一活跃管理员有 email,`passwordResetLocked=false`、`passwordResetRequestCount=0`;未调用 `/forgot-password`,未生成验证码、增加请求计数或触发邮件。
- [x] `~/.hyb-oa/smtp-live.env` 的本地存在不等同于生产邮件通道启用;启用生产邮件需要配置变更与重启,超出当前只读授权。
- [x] 选择更窄的后续路径:如获单独批准,优先使用仓库既有 `reset-active-admin-password.js` 的 exact-admin、bcrypt、事务与审计合同,不手写 hash SQL,不修改角色、员工启用状态或 email。
- [x] 已识别脚本完整副作用:设置 `must_change_password`、清理认证失败/锁定状态、递增 token version、撤销活跃会话、失效密码重置/邮件登录验证码并写不可删除的审计。批准请求必须逐项披露。
- [x] 如另行批准,旧 hash 仅能在受控生产现场以最小权限短期保存,作为有限凭据恢复材料;不进入仓库、task、普通日志或对话,不构成上述副作用的完整回滚,并须在验收/恢复窗口关闭后立即销毁。
- [x] 邮件能力与 break-glass 建议只读 reviewer 首轮 `PASS_WITH_FINDINGS` 的两项证据边界已修订,最终复查为 `PASS`;reviewer 未修改文件或生产状态。
执行备注:账号诊断前两次远端包装探针分别在脚本解码和 Compose 必填候选标识处未产生约定查询 marker,均不计为查询成功;修正为注入已验证产品候选完整/12 位标识后,唯一有效诊断事务返回 `transaction=read_only`。这些失败均先于数据库事务和登录。
### Phase C:有限登录(仅凭据合法恢复后)
@@ -64,8 +74,8 @@
### Phase E:窗口复核与收口
- [x] 首次账号分流 PAUSED 后查询 POST,扩展只读诊断后再次查询最终 POST;三次均为 `terminatedRows=0`、`rollbackWindow=OPEN`、`basis=terminated_status_count`。
- [x] 三次窗口证据均为 OPEN/0,未发现同期真实用户关闭窗口。
- [x] 首次账号分流、扩展账号诊断、邮件能力诊断后均查询 POST;连同初始 PRE 共四次,均为 `terminatedRows=0`、`rollbackWindow=OPEN`、`basis=terminated_status_count`。
- [x] 四次窗口证据均为 OPEN/0,未发现同期真实用户关闭窗口。
- [x] 汇总:登录 attempts=0、terminate POST=0、生产账号/权限/合同/schema 写入=0。
- [x] 扩展诊断只读 reviewer 首轮 `PASS_WITH_FINDINGS` 要求收窄员工密码与 UI PAUSED 措辞,修订后最终复查为 `PASS`;reviewer 未修改代码或生产状态。
- [ ] 按实际证据更新 PRD AC;不得把缺失样本或凭据阻塞勾成通过。
@@ -92,4 +102,4 @@
## 6. 当前结论
生产只读基线与账号诊断已执行。首轮来源门禁因规划未形成 clean/published commit 停止;规划提交 `4f3f761` 推送后重跑通过。扩展只读诊断证明旧 identifier 也不是 employee_no;唯一活跃管理员的 email 可解析、未锁定且 failureCount=0,但现有密码不匹配,员工侧有 5 个候选且密码匹配数为 0。三次窗口均 OPEN/0,登录 attempts=0,未发生终止、账号、权限、合同或 schema 写入。登录态 UI AC 保持 PAUSED;密码重置或员工账号选择需要单独批准。
生产只读基线与账号诊断已执行。扩展诊断证明唯一活跃管理员的 email 可解析、未锁定且 failureCount=0,但现有密码不匹配;员工侧目标不唯一且现有验收密码不匹配活跃候选。生产邮件能力为 disabled,管理员密码重置请求未锁定且计数为 0,未发送验证码。四次窗口均 OPEN/0,登录 attempts=0,未发生终止、账号、权限、合同或 schema 写入。登录态 UI AC 保持 PAUSED;下一步建议另行批准既有 break-glass 脚本,但批准必须覆盖其完整认证副作用。旧 hash 仅是短期高敏有限恢复材料,不是完整回滚。