Scert/doc/部署事务人工核查任务清单.md

10 KiB
Raw Blame History

部署事务人工核查任务清单

2026年10月3日20:17 最新任务状态

  • R4-A 部署及自动恢复进程内互斥、持久化占用识别已接入;涵盖站点核验、提交、恢复核验和连接收尾,等待可取消。
  • 部署竞态、完整静态检查及数据库关闭重开后真实服务拒绝自动重放通过。
  • [~] 最新后端全量仍运行中;R4-A 整体还需人工执行器接入同一互斥,不能标整项复审通过。
  • R3 一次性本机确认、记录/提交/回滚三动作及本机协议与终端,R4 PostgreSQL 实库,R5 正式包验收。

2026年10月3日20:04 最新任务状态

  • 持久化补充竞态、MySQL 迁移十二场景和仓储六场景通过;仓储审计故障注入权限问题已在测试夹具层修复。
  • [~] R4-A:完整部署互斥、自动恢复占用识别及失败关闭;尚未形成执行器端到端链路。
  • R3 一次性本机确认和三类动作、本机协议与终端接入、PostgreSQL 实库及正式包验收仍待完成。

2026年10月3日19:43 最新任务状态

  • R1/R2 底层及本机入口的最新 Linux 三包竞态、完整静态检查、HTTP 全包竞态通过;仍待正式包复审。
  • [~] R3-B/R3-C:准备绑定及重新核验基础通过;一次性确认凭据、本机终端和动作执行尚未接入。
  • [~] R3-D/R4-A/R4-B:独立处置表、占用表、事件表和仓储已编码;原子开始/结束、幂等冲突、不确定占用保留的第一轮竞态通过。完整部署生命周期互斥尚未接入。
  • [~] R4-C/R4-D:故障注入第一轮通过;补测真实数据库重开、MySQL DDL 中断与实库审计。PostgreSQL 实库尚无本轮证据。
  • R3-E/R5:真实动作资格、执行链路、正式候选包和双机生产闭环未完成。
  • [~] R6:同步总清单、开发清单、执行清单、设计和 Linux 测试记录;生产验收保持未通过。

2026年10月3日19:02 边界整改结果

本节优先于历史记录。

  • 长路径响应分片已实现,单帧 16 KiB、数据片 8 KiB、最多四十八片;保持一次采样,完整验证后才返回结果。
  • 长路径六倍 JSON 转义、后续请求、二十类异常分片、总量超限及取消用例通过;最新本机协议、管理员终端和部署三包竞态通过。
  • SQLite 截止时间专项重复二十次及后端完整静态检查通过。
  • [!] 旧五包竞态四包通过,HTTP 依赖编译达到运行上限;整体退出码一。
  • [~] 最新后端全量及 HTTP 竞态继续验证,R2 仍待完整和正式包复审。
  • R3、R4 独立人工处置及持久化审计未完成,R5 未部署本轮候选包,总体验收未通过。

2026年10月3日18:52 本机核查响应边界整改

本节为最新执行入口,保留后续历史记录。需求确认:只处理 Linux,第一台用于部署、第二台用于推送;核查仍为只读,不增加公开接口,不改变历史事务。

  • 修改前检查点 75b3b71 已提交并推送,保存数据库截止时间修复及人工处置设计。
  • 修复后原生 Linux 后端全量退出码零;数据库、部署、本机协议及管理员终端四包竞态已通过,HTTP 包仍在编译,不能记为五包通过。
  • [~] R2 边界整改:合法长路径可能使完整核查结果超过 16 KiB;保持单帧上限,采用有序、有总量上限的分片,仅采样一次,不截断路径,不暴露部分结果。
  • 覆盖长路径及 JSON 转义膨胀、丢片、乱序、随机令牌变化、混合载荷、超限、取消及后续请求;完成原生 Linux 回归与静态检查。
  • R3、R4 独立人工处置及审计尚未编码;不得将只读核查当作恢复闭环。
  • R5 正式候选包部署与生产流程复审未完成,总体验收仍未通过。

2026年10月3日18:28 最新范围与执行状态

本节取代下方历史“当前”状态。第一台负责 Scert 部署测试,第二台仅负责证书推送测试;R5 不再要求双机部署 Scert 主服务,已有服务不擅自卸载。

  • R1:只读底层已完成,等待完整流程复审。
  • [~] R2:入口与 Linux/HTTP 专项已完成;最新全量存在环境缺失及 SQLite 截止时间失败,正在修复。竞态、静态检查和正式包验证未完成。
  • R3、R4:独立人工处置、再次核验、确认幂等、部署互斥、审计原子落库仍未完成。
  • R5:第一台正式安装器部署新包,第二台作为推送目标验证恢复闭环;历史缺证据事务不得伪造提交成功。
  • [~] R6:同步各清单。修改前检查点 978f023 已推送,生产验收未通过。

当前状态以文末 2026年10月3日17:22 补充为准:R1 已完成等待复审,R2 至 R5 未完成,R6 持续同步。

2026年10月3日 需求确认与执行顺序

依据现有整改清单的 P0-10 恢复门禁继续开发,仅处理 Linux。人工核查不能用当前正常状态补造历史部署证据;不能直接修改生产数据库终态。

  • [~] R1:实现只读现场核查,读取目标、临时文件、备份及锁的状态,返回摘要与匹配情况,不返回私钥、密码或锁令牌。
  • R2:通过现有受保护本机 IPC 接入列表与核查入口,不注册公网 HTTP 路由,不增加 TCP 监听。
  • R3:设计独立人工处置记录、明确确认及再次核验;有可信历史证据才允许提交或回滚。缺历史证据的事务不得伪装为历史提交成功。
  • R4:补齐确认幂等、并发部署互斥、审计原子落库、取消及失败保留现场测试。
  • R5:构建 Linux 候选包,经正式安装器部署后,用两台服务器核查旧事务,验证真实 HTTPS 和恢复结果。
  • R6:更新总整改清单和生产测试记录;人工核查功能完整复审之前,P0-10 和总体生产验收不得标为通过。

本轮边界

  • 只读核查结果属于采样观察,不是事务快照,不构成远端 Nginx reload、HTTPS 或部署终态证据。
  • 服务器身份或历史路径无效时拒绝读取;证据缺失时明确报告,不自动生成恢复证据、不删锁、不清理现场。
  • 保留现有密码重置通道的身份校验及邮箱验证码要求,不因接入核查而降低密码重置安全边界。
  • Git 修改前检查点为 ba57490;推送收到 Authentication failed,本地继续,远端同步仍待解决。

2026年10月3日17:22 当前进度补充

本节优先于下方历史状态;保留历史原文,不替换中文字符。

  • R1:只读核查底层已实现,待产品入口和完整流程复审。整体操作限制为 30 秒,尊重调用者更短的超时;读取失败或取消时返回空结果,不把部分观察当成成功。
  • 锁归属读取增加类型和大小检查:拒绝符号链接锁目录、符号链接归属文件及超过 128 字节的归属文件,限制实际读取长度。
  • 原生 Linux 专项通过:5 个取消边界、较早超时保留、9 个真实密码 SSH/SFTP 场景、原有只读核查和恢复预检用例。不可读文件场景以 nobody 用户运行并通过,没有因 root 权限跳过。
  • 部署包全量竞态测试通过:go test -race -count=1 -timeout=240s ./internal/deployment,退出码 0;go vet ./internal/deployment 退出码 0。
  • R2:本机 IPC、终端列表及核查菜单尚未接入,不能将底层方法描述为用户已经可以使用的功能。
  • R3、R4:人工处置、确认幂等、并发互斥和独立审计尚未完成;本轮取消测试不代表人工处置流程全部完成。
  • R5:此次新代码尚未进入双机正式候选包,不改变线上历史事务状态。
  • [~] R6:同步总清单、执行清单、开发清单和 Linux 测试记录;总体生产验收保持未通过。

修正历史 Git 状态:ba57490 后续已经推送成功;本轮修改前检查点 80b6c0c 也已推送成功,不再存在该检查点认证阻塞。

证据目录:第一台 /var/tmp/scert-inspection-20261003-1714/,专项 inspection.log、竞态 deployment-race.log、静态检查 deployment-vet.log。这里运行的是项目内 Go 测试,不是辅助验收脚本;未清理业务数据库、证书或恢复现场。后端全量测试已启动,结果另行记录。

17:35 全量验证状态跟进

联网全量运行因代理不可达中止;首次离线全量运行出现 SSH 响应异常后主动中止,均未记为通过。生产 Scert/nginx 已复核 active,本机严格 TLS 的 /readyz 返回 200。当前以受限 Linux 单元运行后端全量测试,内存上限 650 MiB、CPU 50%,结果仍待获取。R1 的专项、竞态和静态检查结论不变,R2 至 R5 仍未完成。

2026年10月3日18:06 当前执行状态

本节优先于后续历史记录。本轮仅处理 Linux;修改前检查点 c9045a0 已提交并推送。

  • R1:只读现场核查底层已完成,仍等待产品完整流程复审。
  • [~] R2:本机入口已编码,正在执行原生 Linux 验证;尚未部署生产候选包。
    • 待恢复事务按标识排序、每页五条,仅返回摘要;不返回凭据、原始错误或历史证据内容。
    • 复用受保护的本机通道,未增加 HTTP 路由或 TCP 监听;核查与密码重置阶段互斥,逐次更换随机令牌。
    • 终端增加只读核查菜单、翻页及选择,转义终端控制字符,明确区分当前采样与历史部署证据。
    • 第一批原生 Linux 部署、本机协议、管理员终端三包测试退出码为零。
    • [~] 新增真实 Unix socket 菜单集成测试、异常响应拒绝测试和 HTTP 会话边界测试,等待最新版本复跑及竞态检查。
  • R3:独立人工处置记录、再次核验和可信证据限定的提交或回滚未完成。
  • R4:人工处置幂等、并发互斥与原子审计未完成;R2 协议测试不替代这些门禁。
  • R5:本轮修改未进入正式候选包和双机部署,不改变生产历史事务。
  • [~] R6:同步总清单、执行清单、开发清单和生产测试记录。

上一轮后端全量测试触发二十分钟运行上限,退出码为一,不能记为通过。已确认对应单元终止、主进程为零。第一批 R2 专项日志为第一台 /var/tmp/scert-local-recovery-20261003-1757/unit.log;HTTP 专项尚在同目录 http.log 对应的受限单元中运行。未清理生产数据库、证书或恢复现场,未创建辅助验收脚本。