# 运维验收任务规格 覆盖 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。 - 验收证据:局部测试不替代安全基线全表;当前版本完整复核尚缺。 - 复审结果:未完成。