Scert/doc/运维验收任务规格.md

144 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 运维验收任务规格
覆盖 P2 全部 10 项,使用《整改任务规格与验收约定.md》的命令、证据和环境约定。实机步骤为待执行规格,不表示已完成。
## P2-01 统一 Web 页面结构
- 任务编号:P2-01;任务名称:统一 Web 页面结构;优先级:P2。
- 当前状态:`[~] 进行中`。
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
- 问题说明:部分文件按页面拆分,Dashboard 仍承担多业务,全部页面一页可用与布局一致性待检查。
- 涉及文件:`frontend/src/views/`;拟新增 Certificates、Tasks、DNSDelegations、Servers、Notifications、AuditLogs、Backups、Settings 页面目录,保留现有 Dashboard、DNSAccounts、UserManagement、SetupWizard、Login 等。
- 依赖任务:P0-01、P1 各页面契约。
- 整改内容:每页面 Vue/JS/CSS 和组件就近存放、换行编写;按板块显示、说明用悬浮提示、列表分页;系统设置置于系统管理、修改密码置于用户管理。默认组优先不折叠,其他组折叠;普通用户不显示分组,管理员默认同组且可多组,普通用户只单组,超级管理员可见全部。初始化表单保留用户要求的字段布局和自定义端口。
- 验证命令:V03、V07;补导航、权限显示、分页、输入校验、键盘操作和无数据布局测试。
- 实机验收步骤:检查专用 MCP 和前后端运行状态后逐页在常用桌面分辨率验收;输入长邮箱/域名验证完整显示;关键表单一页可操作,不靠极小字号或裁切内容;初始化步骤、权限切换和刷新均正常。
- 验收证据:已有前端测试和局部拆分;全部页面截图、权限与布局复核尚缺。
- 复审结果:未完成。
## P2-02 统一中文显示和错误信息
- 任务编号:P2-02;任务名称:统一中文显示和错误信息;优先级:P2。
- 当前状态:`[~] 进行中`。
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
- 问题说明:CLI 已修复重复英文错误,所有 Web/API 状态、危险确认和失败提示仍需统一。
- 涉及文件:`frontend/src/views/`、`backend/internal/httpapi/error_sanitization.go`、`backend/internal/cli/`、`backend/internal/logging/`。
- 依赖任务:P0-10、P1-12、P2-01。
- 整改内容:不显示 HTML 实体编码、原始英文枚举、空错误或后端堆栈;危险操作中文确认,八类任务状态和证书状态一致;必要协议和技术标识可保留英文。
- 验证命令:V03、V07、V05、V11;检查渲染文本和实际 CLI 输出,不用终端脚本替换中文;补空错误、未知状态、转义文本及重复错误测试。
- 实机验收步骤:触发表单、权限、网络、DNS、SSH 和恢复错误;查看页面、任务详情、通知和日志的人类可读说明;没有实体乱码、堆栈或凭据回显,错误能定位下一步。
- 验收证据:`885478a` 有 CLI 实际中文单条错误证据;其他路径尚未整体验收。
- 复审结果:未完成。
## P2-03 所有长操作任务化
- 任务编号:P2-03;任务名称:所有长操作任务化;优先级:P2。
- 当前状态:`[~] 进行中`。
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
- 问题说明:部分部署已有任务,其他耗时接口可能仍阻塞请求或无法跨刷新恢复。
- 涉及文件:`backend/internal/httpapi/`、`backend/internal/repository/task_repository.go`、`backend/internal/certificate/`、`backend/internal/deployment/`;拟新增 Tasks 页面和统一执行服务。
- 依赖任务:P0-10、P1-04、P1-12。
- 整改内容:申请、续期、DNS 验证、批量部署、远程备份、数据库恢复、批量删除和批量导入全部快速返回 task_id;页面通过查询/轮询展示进度,不依赖单一长连接成功。
- 验证命令:V07、V06、V09、V10、V03;补响应时限、任务持久化、断连、刷新与服务重启测试。
- 实机验收步骤:对每类操作触发可观察长任务,提交后立即关闭页面再登录查询;断网不能重复创建任务;重启后执行状态可恢复或明确失败,不永远停在运行中;取消和重试可追溯。
- 验收证据:已有任务基础不足以证明列出的全部操作任务化。
- 复审结果:未完成。
## P2-04 增加幂等和重复操作保护
- 任务编号:P2-04;任务名称:增加幂等和重复操作保护;优先级:P2。
- 当前状态:`[~] 进行中`。
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
- 问题说明:局部进程锁与事务不能保证跨请求、调度重启、多实例的统一幂等。
- 涉及文件:`backend/internal/processlock/`、`backend/internal/repository/`、`backend/internal/httpapi/`、`backend/internal/certificate/`、`backend/internal/deployment/`;拟新增幂等持久化及迁移。
- 依赖任务:P0-05、P0-10、P1-12。
- 整改内容:幂等键、操作锁、任务去重、申请锁、部署锁、恢复锁和重复提交检测;相同键不同载荷拒绝,范围按项目/资源定义;防重复申请/部署/续期与多实例同证书竞争。
- 验证命令:V02、V06、V07、V09、V10;补并发、锁过期、工作者崩溃、幂等结果重放及载荷冲突测试。
- 实机验收步骤:双页面同时提交同一证书操作并刷新;调度与人工续期并发;两个隔离实例指向专用数据库竞争任务,核对只有一个有效执行;持锁实例退出后合法接管且无重复远端副作用。
- 验收证据:部分锁/事务测试存在,统一持久化幂等和多实例实测缺失。
- 复审结果:未完成。
## P2-05 完善日志、指标和追踪
- 任务编号:P2-05;任务名称:完善日志、指标和追踪;优先级:P2。
- 当前状态:`[~] 进行中`。
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
- 问题说明:现有日志和任务记录还不能证明请求、任务、用户、项目全链路关联及指标口径一致。
- 涉及文件:`backend/internal/logging/`、`backend/internal/httpapi/middleware.go`、`backend/internal/repository/`、`backend/internal/certificate/`、`backend/internal/deployment/`、`backend/internal/notification/`。
- 依赖任务:P0-07、P0-10、P1-09。
- 整改内容:请求 ID、任务 ID、用户 ID、项目 ID 与敏感字段脱敏;统计签发/续期/部署成功率、任务失败率/耗时、DNS 耗时、远程连接/通知/数据库错误次数,明确定义分母与重试统计方式。
- 验证命令:V11、V07、V09、V10;补跨后台任务上下文、恶意追踪头、结构化脱敏和指标增量测试。
- 实机验收步骤:一次真实申请到部署/通知用追踪 ID 串联;制造各类失败比对日志与计数;并发时不串用户/项目;抽查文件、控制台和任务页面无秘密内容。
- 验收证据:日志基础存在,完整字段、指标和真实跨步骤追踪待补。
- 复审结果:未完成。
## P2-06 完善接口和前端测试
- 任务编号:P2-06;任务名称:完善接口和前端测试;优先级:P2。
- 当前状态:`[~] 进行中`。
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[~]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
- 问题说明:现有全量通过与测试数量不能证明新增全部需求、失败路径和权限边界均覆盖。
- 涉及文件:`backend/internal/**/*_test.go`、`frontend/src/views/**/*.test.js`、`frontend/src/test-support/`、`deploy/tests/`、`tests/`。
- 依赖任务:P1-12;随 P0/P1/P2 每项增量补测试,不等待所有实现结束。
- 整改内容:补权限/越权、证书流程、重复提交、回滚、迁移、脱敏、登录、初始化、任务查询、部署确认、错误重试和权限显示;真实环境层与夹具层分开记录,跳过用例明确列出。
- 验证命令:V02、V03;对每个新增模块检查测试断言实际覆盖业务,而非只检查成功状态码。
- 实机验收步骤:从干净候选执行首次初始化至真实签发部署;覆盖管理员/普通用户、错误和重试;双平台及三数据库回归登记差异;浏览器缓存和测试数据按约定隔离清理。
- 验收证据:`885478a` 有后端全量与前端 150 项通过记录;新增整改范围仍需追加覆盖与当前候选复验。
- 复审结果:未完成,不能用旧全绿封闭新需求。
## P2-07 完善升级、降级和卸载流程
- 任务编号:P2-07;任务名称:完善升级、降级和卸载流程;优先级:P2。
- 当前状态:`[~] 进行中`。
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[~]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
- 问题说明:已有安装器及说明,跨版本配置/数据迁移、失败恢复和卸载保留策略缺实机闭环。
- 涉及文件:`deploy/`、`backend/internal/database/`、`backend/internal/config/`、`backend/internal/servicehost/`、`build/`、《生产部署与运维说明.md》。
- 依赖任务:P0-04、P0-05、P0-12。
- 整改内容:升级前备份、数据库/配置迁移、静态文件替换、重启、失败回滚、版本检查、卸载确认、保留数据及明确授权删除数据;降级不兼容时先阻断并提供可验证恢复方案。
- 验证命令:V05、V06、V12、V04;执行已有安装器正式测试,补迁移中断、校验失败和版本拒绝测试。
- 实机验收步骤:每平台从已知旧版装载测试资源升级,确认 UI 与二进制版本一致;制造迁移/启动失败恢复旧版与数据;测试支持降级及不支持降级的拒绝;分别卸载保留数据和授权删除数据,不动共享服务。
- 验收证据:安装器基础存在,当前跨版本故障演练未齐。
- 复审结果:未完成。
## P2-08 完成 Windows Service 实机验收
- 任务编号:P2-08;任务名称:完成 Windows Service 实机验收;优先级:P2。
- 当前状态:`[!] 暂缓或存在阻塞`。
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[!]`;最终验收 `[ ]`。
- 问题说明:当前只有构建和局部 Windows 程序执行证据,缺完整 Service 控制与故障恢复记录。
- 涉及文件:`deploy/install-windows.ps1`、`deploy/` 中卸载与服务文件、`backend/internal/servicehost/`、`backend/internal/localreset/`。
- 依赖任务:P0-04、P0-12、P2-07。
- 整改内容:验证安装、启动、停止、重启、开机启动、异常恢复、日志/配置/数据目录、升级和卸载;服务权限最小化,超级管理员重置仅受保护本机 IPC。
- 验证命令:V12 在 Windows 执行,V04 构建 Windows 候选;正式安装参数以安装器帮助和部署说明为准,记录实际服务查询命令。
- 实机验收步骤:在明确专用 Windows 测试机以正式安装器安装;记录 SCM 状态和路径权限,逐项启停与重启机器;异常退出后核对恢复;进行升级与卸载保留数据,再安装能恢复业务;网络不可访问本机密码重置接口。
- 验收证据:没有当前候选完整服务实机证据;不能把 Windows ZIP 或 help 退出 0 当 Service 通过。
- 复审结果:待具备专用环境并完成实机步骤,不阻断可先做的代码审查。
## P2-09 完成 Linux systemd 实机验收
- 任务编号:P2-09;任务名称:完成 Linux systemd 实机验收;优先级:P2。
- 当前状态:`[!] 暂缓或存在阻塞`。
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[~]`;生产部署测试 `[!]`;最终验收 `[ ]`。
- 问题说明:有历史远端部署与 unit,当前候选服务完整流程还未复验。
- 涉及文件:`deploy/install-linux.sh`、`deploy/systemd/`、`backend/internal/servicehost/`、`backend/internal/certstorage/`、`backend/internal/nginxactivation/`、`backend/internal/localreset/`。
- 依赖任务:P0-04、P0-09、P0-12、P2-07。
- 整改内容:安装、启停/重启、开机启动、异常恢复、运行用户、日志、配置/数据目录、升级卸载;辅助程序权限和目录创建受限,不关闭 TLS 或扩大目录写权限。
- 验证命令:V12 在 Linux 执行,V04 构建 Linux 候选;部署后使用正式 `systemctl`、`journalctl` 查询对应服务,不凭 archive mode 认定服务可用。
- 实机验收步骤:密码登录并校验已确认指纹,先核对同机服务归属;安装当前包并走清空专用测试库后的初始化;验证自定义证书目录安全创建、Nginx 信任正式证书;启停、重启机器、异常退出和升级回滚;只卸载 Scert 测试资源。
- 验收证据:已有 Linux 归档 0755 检查,不是本候选 systemd 实机证明;远端当前状态必须重查。
- 复审结果:完整实机门禁未通过。
## P2-10 完善安全基线
- 任务编号:P2-10;任务名称:完善安全基线;优先级:P2。
- 当前状态:`[~] 进行中`。
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[~]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
- 问题说明:SSH、凭据和数据库局部安全测试存在,统一认证、会话、Web 与操作系统边界尚未全覆盖。
- 涉及文件:`backend/internal/auth/`、`backend/internal/passwordpolicy/`、`backend/internal/httpapi/`、`backend/internal/bootstrap/`、`backend/internal/localreset/`、`backend/internal/deployment/`、`backend/internal/secretstore/`、`deploy/`。
- 依赖任务:P0-07、P0-08、P0-09、P1-12。
- 整改内容:禁止默认密码继续使用、必要时强制改密;登录限流、会话失效、安全 Cookie、CSRF、越权、路径穿越、命令注入、上传类型/大小限制、隐藏敏感版本、日志脱敏;手动证书路径仍验证并导入托管存储,超级管理员重置仅本机受保护 IPC。
- 验证命令:V02、V07、V08、V09、V12、V03;补每项负向安全断言和跨平台权限测试。
- 实机验收步骤:从公网正常 TLS 测试登录、退出、撤权与改密后会话;用专用账号做 CSRF/越权与恶意路径/命令输入,确认无副作用;尝试超限上传;核对私钥文件权限、服务暴露端口、日志及恢复 IPC ACL。
- 验收证据:局部测试不替代安全基线全表;当前版本完整复核尚缺。
- 复审结果:未完成。