记录(08-08-production-authenticated-readiness): 收口生产登录态部分验收
这个提交包含在:
@@ -60,27 +60,31 @@
|
||||
### Phase C:有限登录(仅凭据合法恢复后)
|
||||
|
||||
- [x] 管理员凭据来源已切换:来自已归档 `08-09-production-admin-break-glass-reset` 的受控 break-glass 恢复和首次强制改密,不是本任务最初诊断为失效的原始 secret;值不进入任务证据。
|
||||
- [ ] READY:admin 仓库外最终凭据已经应用登录和 `--verify-password-changed` 双重验证,本轮仍只允许一次登录、零 retry。
|
||||
- [x] admin 只执行一次登录、零 retry,HTTP 200 并进入 `/portal`;写后只读复核为 failureCount=0、locked=false、近 15 分钟 login success=1、login failure=0。
|
||||
- [ ] PAUSED:employee 目标账号不唯一,现有验收密码不匹配任何活跃非管理员候选;本轮不选择、重置或修改员工账号。
|
||||
- [ ] PAUSED:admin 未登录,attempts=0。
|
||||
- [x] admin attempts=1;未发生第二次登录。浏览器在合同台账阶段 fail-closed 后关闭,未到达正常 logout;active sessions 从恢复后的 1 变为 2,新增会话留待自然过期,本任务未获直接数据库撤销授权。
|
||||
- [ ] PAUSED:employee 未登录,attempts=0。
|
||||
- [x] 已记录每角色 attempts=0;没有第二次尝试,也没有增加失败计数。
|
||||
- [x] 已记录 admin attempts=1、employee attempts=0;没有第二次尝试,管理员失败计数仍为 0 且未锁定。
|
||||
|
||||
### Phase D:登录态只读验收
|
||||
|
||||
- [ ] PAUSED:管理员会话未建立,未进入合同台账或详情。
|
||||
- [ ] PAUSED:未进入终止面板;未填写原因、未打开确认层、terminate POST=0。
|
||||
- [ ] PARTIAL:admin 登录成功;浏览器进入合同台账阶段后因无可用合同样本停止,未进入详情。生产数据库只读计数确认合同总数为 0,active/expired/draft/archived/terminated 均为 0。
|
||||
- [ ] PAUSED:无 active/expired 样本,无法进入终止面板;未填写原因、未打开确认层、terminate POST=0、全部合同 mutation request=0。
|
||||
- [ ] PAUSED:员工会话未建立,未执行权限负向路径;未扩大权限或删除断言。
|
||||
- [ ] PAUSED:未在无登录态情况下探查 archived 样本,未创建数据。
|
||||
- [ ] PAUSED:PRE/POST 均证明 terminatedRows=0,因此无现有 terminated 样本可验;未制造样本。
|
||||
- [ ] PAUSED:archived 样本数为 0,无法验证字段锁定;未创建数据。
|
||||
- [ ] PAUSED:terminated 样本数为 0,无法验证“已终止”标签与终止事实区;未制造样本。
|
||||
|
||||
### Phase E:窗口复核与收口
|
||||
|
||||
- [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;不得把缺失样本或凭据阻塞勾成通过。
|
||||
- [x] 凭据恢复后的管理员验收 PRE/POST 再次均为 `terminatedRows=0`、`rollbackWindow=OPEN`、`basis=terminated_status_count`;本任务累计六次快照均 OPEN/0。
|
||||
- [x] 本轮浏览器 admin login=1/200;terminate POST=0、合同 mutation=0。runner 的状态词基线曾写成“已到期”而产品映射为“已过期”,但生产合同总数为 0,状态循环未执行,该观察不是本轮停止原因;依零 retry 合同未重跑。
|
||||
- [x] 汇总:admin attempts=1、employee attempts=0;terminate POST=0、合同 mutation=0;未执行账号修复、权限、合同或 schema 写入。成功登录按产品合同创建 1 个新 session 并写登录审计,浏览器未到达 logout。
|
||||
- [x] 扩展诊断只读 reviewer 首轮 `PASS_WITH_FINDINGS` 要求收窄员工密码与 UI PAUSED 措辞,修订后最终复查为 `PASS`;浏览器验收收口复核另发现旧汇总把成功登录副作用误写成“写入 0”,修正为 admin attempts=1、session 1→2 与登录审计后,最终复核为 `PASS`。reviewer 未修改文件、代码或生产状态。
|
||||
- [x] 已按实际证据更新 PRD AC;管理员认证记为通过,员工与无样本 UI 分支保持 `PARTIAL/PAUSED`,未把缺失样本勾成通过。
|
||||
- [x] 已按 `trellis-update-spec` 将零 retry runner 的细粒度阶段、状态词源码基线、无样本独立分类和登录副作用对账写入现有 `.trellis/spec/hyb-oa/deployment-trialrun.md`,未新建规约文件。
|
||||
- [x] 已为合同 UI `PAUSED` 写死事件触发条件:生产出现首条 `contract_registry` 记录后启动只读补验,不按日期等待、不制造样本,也不把记录出现视为终止授权。仓库事实源显示合同台账原已纳入首批真实使用且历史存在测试数据,因此当前零合同只记为待负责人确认的运营事实,不擅自归因为“模块尚未启用”。
|
||||
|
||||
## 4. 预期证据表
|
||||
|
||||
@@ -104,4 +108,4 @@
|
||||
|
||||
## 6. 当前结论
|
||||
|
||||
生产只读基线与账号诊断已执行。扩展诊断证明唯一活跃管理员的原始仓库外凭据不匹配;独立任务 `08-09-production-admin-break-glass-reset` 随后按单次 apply、强制改密和最终验证合同恢复了管理员认证,并已销毁旧 hash 与临时凭据。员工侧目标仍不唯一且现有验收密码不匹配活跃候选。此前四次窗口均 OPEN/0,登录 attempts=0。当前管理员只读验收阻塞已解除,员工负向仍 `PAUSED`;下一步只执行管理员一次登录、合同只读 UI 和前后窗口快照,不告知用户可以测试。
|
||||
生产只读基线与账号诊断已执行,独立任务 `08-09-production-admin-break-glass-reset` 已恢复管理员认证。管理员本轮唯一一次登录返回 200,失败计数仍为 0 且未锁定;但生产合同总数为 0,无法验证详情、终止入口、归档锁定或已终止标签,未制造样本。仓库事实源不能证明零合同属于预期未启用,后续由负责人确认其运营含义;一旦生产出现首条记录,即触发只读补验。员工目标仍不唯一,负向权限未验证。凭据恢复后的 PRE/POST 与此前四次快照全部 OPEN/0,terminate POST 和合同 mutation 均为 0。当前结论为管理员认证通过、合同 UI 因无数据 `PAUSED`、员工负向 `PAUSED`;仍不得告知用户可以测试合同终止功能。
|
||||
|
||||
在新工单中引用
屏蔽一个用户