诊断(08-08-production-authenticated-readiness): 只读核定生产验收账号
这个提交包含在:
@@ -1,6 +1,6 @@
|
||||
# 生产登录态只读验收:执行计划与证据
|
||||
|
||||
> 当前状态:IN PROGRESS / LOGIN PAUSED。生产只读基线与账号诊断已完成;admin/employee identifier 均 `matchedBy=none`,因此在登录前停止,登录态 UI 尚未验收。
|
||||
> 当前状态:IN PROGRESS / LOGIN PAUSED。生产只读基线与扩展账号诊断已完成;唯一活跃管理员的 email 可解析但现有密码离线比对不匹配,员工 identity 不唯一且密码匹配数为 0,因此在登录前停止。
|
||||
|
||||
## 1. 规划确认
|
||||
|
||||
@@ -37,11 +37,19 @@
|
||||
- [x] 按 PRD R3 分流为仓库外 identifier 过期或不符合现行登录合同;标 `PAUSED`,没有进入密码、解锁、激活或授权写入。
|
||||
- [x] 登录尝试数:admin=0、employee=0。
|
||||
|
||||
经用户确认继续只读定性后,补充完成:
|
||||
|
||||
- [x] 旧 identifier 对生产 `employee_no` 的精确匹配也均为 false,排除“只是把员工编号误当登录名”。
|
||||
- [x] 在远端 `BEGIN READ ONLY` 事务内按角色筛选活跃候选,并用现有仓库外密码与候选 hash 离线比较;密码与 hash 均未离开远端内存。
|
||||
- [x] admin:活跃候选 1、正确 identifier 可唯一解析为 email、locked=false、failureCount=0、passwordMatchCount=0。
|
||||
- [x] employee:非管理员 employee 候选 5、passwordMatchCount=0,无法在不猜人的情况下选定验收账号。
|
||||
- [x] 未把正确管理员 identifier 写入 task、对话或仓库,也未修改仓库外 secret;密码重置/员工账号选择转为独立批准事项。
|
||||
|
||||
执行备注:账号诊断前两次远端包装探针分别在脚本解码和 Compose 必填候选标识处未产生约定查询 marker,均不计为查询成功;修正为注入已验证产品候选完整/12 位标识后,唯一有效诊断事务返回 `transaction=read_only`。这些失败均先于数据库事务和登录。
|
||||
|
||||
### Phase C:有限登录(仅凭据合法恢复后)
|
||||
|
||||
- [ ] PAUSED:受控 secret 中现有 identifier 已失配,尚无经账号持有人确认的新鲜凭据。
|
||||
- [ ] PAUSED:管理员 identifier 已可只读解析,但现有密码确认失效;员工目标账号不唯一,现有验收密码不匹配任何活跃非管理员候选。密码重置/账号选择尚未获独立批准。
|
||||
- [ ] PAUSED:admin 未登录,attempts=0。
|
||||
- [ ] PAUSED:employee 未登录,attempts=0。
|
||||
- [x] 已记录每角色 attempts=0;没有第二次尝试,也没有增加失败计数。
|
||||
@@ -56,10 +64,10 @@
|
||||
|
||||
### Phase E:窗口复核与收口
|
||||
|
||||
- [x] 前序 PAUSED 后仍查询 POST:`terminatedRows=0`、`rollbackWindow=OPEN`、`basis=terminated_status_count`。
|
||||
- [x] PRE/POST 均为 OPEN/0,未发现同期真实用户关闭窗口。
|
||||
- [x] 首次账号分流 PAUSED 后查询 POST,扩展只读诊断后再次查询最终 POST;三次均为 `terminatedRows=0`、`rollbackWindow=OPEN`、`basis=terminated_status_count`。
|
||||
- [x] 三次窗口证据均为 OPEN/0,未发现同期真实用户关闭窗口。
|
||||
- [x] 汇总:登录 attempts=0、terminate POST=0、生产账号/权限/合同/schema 写入=0。
|
||||
- [x] 启动只读 reviewer,reviewer 未修改代码或生产状态;首轮 `PASS_WITH_FINDINGS` 的两项证据措辞已修订,最终复查结论 `PASS`。
|
||||
- [x] 扩展诊断只读 reviewer 首轮 `PASS_WITH_FINDINGS` 要求收窄员工密码与 UI PAUSED 措辞,修订后最终复查为 `PASS`;reviewer 未修改代码或生产状态。
|
||||
- [ ] 按实际证据更新 PRD AC;不得把缺失样本或凭据阻塞勾成通过。
|
||||
|
||||
## 4. 预期证据表
|
||||
@@ -84,4 +92,4 @@
|
||||
|
||||
## 6. 当前结论
|
||||
|
||||
生产只读基线与账号诊断已执行。首轮来源门禁因规划未形成 clean/published commit 停止;规划提交 `4f3f761` 推送后重跑通过。最终诊断为 admin/employee identifier 均不匹配 email/phone,故按硬门禁停在登录前;PRE/POST 窗口均 OPEN/0,未发生任何登录、终止、账号、权限、合同或 schema 写入。登录态 UI AC 保持 PAUSED,等待账号持有人从合法来源恢复仓库外新鲜凭据;本任务不修改生产账号。
|
||||
生产只读基线与账号诊断已执行。首轮来源门禁因规划未形成 clean/published commit 停止;规划提交 `4f3f761` 推送后重跑通过。扩展只读诊断证明旧 identifier 也不是 employee_no;唯一活跃管理员的 email 可解析、未锁定且 failureCount=0,但现有密码不匹配,员工侧有 5 个候选且密码匹配数为 0。三次窗口均 OPEN/0,登录 attempts=0,未发生终止、账号、权限、合同或 schema 写入。登录态 UI AC 保持 PAUSED;密码重置或员工账号选择需要单独批准。
|
||||
|
||||
@@ -76,12 +76,12 @@
|
||||
|
||||
- [x] AC1:生产运行/公网 SHA 对应已部署产品候选 `0224ad8`(短标识 `0224ad83d7f8`);65 条 migration 仍全部 applied、pending=none,未触发部署或 schema 写入。
|
||||
- [x] AC2:任何登录前已对管理员、员工完成同一 `BEGIN READ ONLY` 查询合同;查询设计覆盖 `matchedBy`、active/archived/locked、失败计数和期望角色是否就绪。两个 identifier 实际均 `matchedBy=none`,故账号属性记为 `N/A` 而非生产事实,不含账号或凭据明文。
|
||||
- [x] AC3:两个仓库外 identifier 均为 `matchedBy=none`,结论为不符合现行 email/phone 精确登录合同;登录尝试数保持 0,未用旧密码试错,恢复仓库外凭据前保持 `PAUSED`。
|
||||
- [ ] AC4 — PAUSED:管理员、员工合法新鲜凭据尚未恢复;本轮各角色登录尝试均为 0,没有使用旧凭据消耗一次预算。
|
||||
- [ ] AC5 — PAUSED:因登录前 identifier 门禁失败,未建立管理员会话,未进入合同详情或终止面板;终止端点 `POST` 计数为 0,确认层未打开。
|
||||
- [ ] AC6 — PAUSED:因登录前 identifier 门禁失败,未执行员工权限负向或 archived/terminated 样本 UI 检查;未扩大权限、修改断言或制造数据。
|
||||
- [x] AC7:验收前后均为 `terminatedRows=0`、`rollbackWindow=OPEN`、`basis=terminated_status_count`;窗口未变化,本任务真实合同终止写入计数为 0。
|
||||
- [x] AC8:只读 reviewer 最终结论 `PASS`,已复核账号诊断、登录尝试计数、终止请求计数、窗口双快照和证据脱敏;task validate、process contract、governance、sensitive scan、diff check 均通过。
|
||||
- [x] AC3:两个仓库外 identifier 均不匹配 email/phone/employee_no。只读角色候选与远端内存密码 hash 比对进一步证明:唯一活跃管理员可解析为 email、未锁定、失败计数为 0,但现有管理员密码不匹配;员工有 5 个活跃非管理员候选,现有员工验收密码对这些候选的匹配数为 0。登录尝试保持 0,未输出 identifier/hash。
|
||||
- [ ] AC4 — PAUSED:管理员正确 identifier 已在只读内存中唯一解析,但现有密码确认失效;员工目标账号仍不唯一,现有验收密码不匹配任何活跃非管理员候选。密码重置或账号选择需要单独批准,本轮各角色登录尝试均为 0。
|
||||
- [ ] AC5 — PAUSED:管理员 identifier 已解析但密码不匹配,未建立管理员会话,未进入合同详情或终止面板;终止端点 `POST` 计数为 0,确认层未打开。
|
||||
- [ ] AC6 — PAUSED:员工目标账号未唯一确定且现有验收密码不匹配活跃候选,未执行权限负向或 archived/terminated 样本 UI 检查;未扩大权限、修改断言或制造数据。
|
||||
- [x] AC7:初始、登录前停止后、扩展只读诊断后共三次窗口证据均为 `terminatedRows=0`、`rollbackWindow=OPEN`、`basis=terminated_status_count`;窗口未变化,本任务真实合同终止写入计数为 0。
|
||||
- [x] AC8:扩展诊断的只读 reviewer 首轮 `PASS_WITH_FINDINGS` 已完成措辞修订,最终复查为 `PASS`;task validate、process contract、governance、sensitive scan、diff check 均通过。
|
||||
- [x] AC9:结论明确为产品已部署、生产基线健康,但登录态验收仍 `PAUSED`;当前不得告知用户可以测试。
|
||||
|
||||
## Out of Scope
|
||||
|
||||
@@ -31,6 +31,6 @@
|
||||
"deploy/trialrun/production-preflight-remote.sh",
|
||||
".trellis/spec/hyb-oa/deployment-trialrun.md"
|
||||
],
|
||||
"notes": "生产只读基线通过:公网产品 SHA 匹配已部署候选,65 条 migration applied、pending=none,PRE/POST 均 rollbackWindow=OPEN、terminatedRows=0。管理员与员工仓库外 identifier 在 BEGIN READ ONLY 诊断中均 matchedBy=none,不符合现行 email/phone 登录合同;账号属性记 N/A,登录 attempts=0、terminate POST=0、生产写入=0。只读 reviewer 最终 PASS。登录态 UI 验收保持 PAUSED,等待账号持有人合法恢复新鲜仓库外凭据;不得修改生产账号推进。",
|
||||
"notes": "生产只读基线通过:公网产品 SHA 匹配已部署候选,65 条 migration applied、pending=none,三次窗口均 rollbackWindow=OPEN、terminatedRows=0。旧 admin/employee identifier 均不匹配 email/phone/employee_no;远端只读离线比对显示唯一活跃管理员 email 可解析、未锁定、failureCount=0,但现有密码不匹配;员工有 5 个活跃非管理员候选,现有验收密码对候选匹配数为 0,目标账号仍未唯一确定。登录 attempts=0、terminate POST=0、生产写入=0;扩展诊断只读 reviewer 最终 PASS。登录态 UI 验收保持 PAUSED;密码重置或员工账号选择需单独批准。",
|
||||
"meta": {}
|
||||
}
|
||||
|
||||
在新工单中引用
屏蔽一个用户