# 基础整改任务规格 本文件覆盖原始清单 P0 的全部 12 项。命令编号、六阶段定义和实机前置条件见《整改任务规格与验收约定.md》。文件路径相对仓库根目录;“拟新增”明确表示尚未存在,不作为现成功能证据。 ## P0-01 明确产品范围 - 任务编号:P0-01;任务名称:明确产品范围;优先级:P0。 - 当前状态:`[x] 已完成,等待复审`。 - 六阶段:需求确认 `[x]`;代码实现 `[x]`;自动化测试 `[x]`;隔离环境测试 `[x]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:桌面源码和旧 CLI 业务入口曾与正式范围混淆。 - 涉及文件:`build/build-release.ps1`、`backend/internal/cli/root.go`、`backend/internal/releasearchive/`、根及各模块 README、《命令行运维范围说明.md》。 - 依赖任务:无;双平台安装证据由 P2-08、P2-09 补齐,不倒置为范围整改的代码依赖。 - 整改内容:只正式交付 Web/服务端;桌面窗口、托盘、更新、配置与 UI 测试全部范围外,保留历史源码;CLI 仅作初始化、诊断、迁移、备份恢复和服务管理,拒绝旧业务入口。 - 验证命令:V01、V05、V04;核对 manifest、归档内容、校验和以及实际程序帮助/拒绝入口退出码。 - 实机验收步骤:解包当前候选,确认没有桌面程序;分别在 Windows/Linux 运行帮助和运维入口;旧业务命令必须非零退出且不读凭据或生成运行数据;安装分别关联服务验收项。 - 验收证据:执行清单已记录 `885478a` 的干净双平台包、独立克隆与 Windows 实际 CLI 结果;Linux 实机尚缺,不能用归档权限替代。 - 复审结果:待最终复审,未生产放行。 ## P0-02 整理项目任务清单 - 任务编号:P0-02;任务名称:整理项目任务清单;优先级:P0。 - 当前状态:`[~] 进行中`。 - 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[ ]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:旧汇总表虽覆盖 44 项,缺逐项依赖、文件、命令、实机步骤和复审字段。 - 涉及文件:《Scert整改任务执行清单.md》、本文件、其余三级任务规格、《整改任务规格与验收约定.md》;关联《Scert开发任务清单.md》《全面审查测试与优化记录.md》《发布加固与实机验收记录.md》《生产部署与运维说明.md》。 - 依赖任务:P0-01;其余 43 项的业务完成不是本项文档补齐的前提。 - 整改内容:逐项补足 12 个原定字段及六阶段,原始清单保留;区分历史事实、规划和当前实证;维护汇总状态与规格一致。 - 验证命令:V01;按约定进行 44 项编号、必需字段、依赖、文件、状态和六阶段结构核对,并人工对照原始范围。 - 实机验收步骤:生产执行时按规格逐项登记提交、包哈希、环境与实际操作;抽查任何“通过”能回溯到对应证据。文档治理本身不触碰服务器或数据库。 - 验收证据:新增逐项规格,结构与范围复核尚待本轮结果;不将文档齐全称为 44 项业务完成。 - 复审结果:待结构核对和范围复核。 ## P0-03 整理源码、构建产物和部署产物 - 任务编号:P0-03;任务名称:整理源码、构建产物和部署产物;优先级:P0。 - 当前状态:`[~] 进行中`。 - 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[~]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:既有忽略规则未覆盖根级二进制、通用归档、补丁和数据库旁路文件;开发机排除配置不能代表新克隆。 - 涉及文件:`.gitignore`、`backend/internal/releasearchive/source_boundary_test.go`、`release/README.md`、`artifacts/README.md`、`tests/README.md`、`scripts/README.md`、《仓库目录与产物边界说明.md》。 - 依赖任务:P0-01。 - 整改内容:建立八类目录及构建/运行边界,不删除现有文件;忽略产物和敏感文件但保留源码、迁移、部署测试及公开 CA;检测已跟踪违禁产物。 - 验证命令:V01、V05;`go test -count=1 ./internal/releasearchive -run TestRepositoryIgnore`,在 `backend/` 执行。 - 实机验收步骤:独立克隆只取源码,安装依赖并正式构建;确认工作区无新增产物入索引;部署只取发布白名单,不能携带浏览器缓存、数据库或本机凭据。 - 验收证据:上一轮已有干净克隆构建;本轮隔离 Git 忽略测试已运行,完整回归与提交核对待记录。 - 复审结果:待全量边界复核,不代表生产能力通过。 ## P0-04 统一开发和构建版本 - 任务编号:P0-04;任务名称:统一开发和构建版本;优先级:P0。 - 当前状态:`[~] 进行中`。 - 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[~]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:已有模块和锁文件版本,但文档、安装脚本批准策略、操作系统与构建机记录需统一。 - 涉及文件:`backend/go.mod`、`backend/go.sum`、`frontend/package.json`、`frontend/package-lock.json`、`build/build-release.ps1`、《构建版本与数据库支持矩阵.md》。 - 依赖任务:P0-01、P0-03。 - 整改内容:记录并固定 Go、Node、npm、Vue、驱动和依赖版本、系统版本、编译目标;检查锁文件安装及构建环境差异。模块内实际 Go 版本优先,不按根目录工具版本降级模块。 - 验证命令:V02、V03、V04;模块内 `go version`、`go env GOVERSION GOTOOLCHAIN`;`node --version`、`npm.cmd --version`。 - 实机验收步骤:全新构建环境按固定版本安装依赖;验证锁文件不漂移;在双平台验收机记录系统版本和运行包版本,比较 manifest。 - 验收证据:已有 Go 1.26.6 与前端锁文件基线、独立克隆构建;安装脚本策略和完整系统矩阵尚缺。 - 复审结果:未完成,不以一次构建通过代表可重复发布。 ## P0-05 确认数据库正式支持矩阵 - 任务编号:P0-05;任务名称:确认数据库正式支持矩阵;优先级:P0。 - 当前状态:`[!] 暂缓或存在阻塞`。 - 六阶段:需求确认 `[~]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[~]`;生产部署测试 `[!]`;最终验收 `[ ]`。 - 问题说明:三种驱动和迁移存在,不等于正式支持级别及全部版本已经证实;实机证据不足。 - 涉及文件:`backend/internal/database/`、其 `migrations/mysql/`、`migrations/postgres/`、`migrations/sqlite/`、`backend/internal/cli/`、《构建版本与数据库支持矩阵.md》。 - 依赖任务:P0-04。 - 整改内容:明确 SQLite、MySQL、PostgreSQL 支持版本;验证 MySQL 5.7/8.0、PostgreSQL 目标版本、SQLite 锁并发;逐库检查类型、索引、默认值、事务及初始化、升级、回滚、备份恢复。不能悄然去掉难测版本。 - 验证命令:V06、V02;真实数据库测试按正式集成测试的参数运行并保存非跳过结果,不在命令行嵌入密码。 - 实机验收步骤:逐版本创建专用测试库;从空库初始化及历史版本迁移,注入失败检查事务;使用官方备份工具恢复并核对行数、资源关联和加密凭据;验证 TLS 和断线重连;只清理明确测试库。 - 验收证据:历史记录有部分数据库恢复测试;本次完整支持矩阵和当前候选实机记录未齐,不继承为全通过。 - 复审结果:支持版本及实机覆盖待确认,其他任务可继续。 ## P0-06 建立统一领域模型 - 任务编号:P0-06;任务名称:建立统一领域模型;优先级:P0。 - 当前状态:`[~] 进行中`。 - 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:已有用户、域名、任务和服务器模型,项目、证书订单/版本及跨业务关联未闭环。 - 涉及文件:`backend/internal/domain/`、`backend/internal/database/migrations/`、`backend/internal/repository/`、`backend/internal/httpapi/`;拟新增领域关系说明及必要实体迁移。 - 依赖任务:P0-05 的支持矩阵;设计审查可先于实机完成。 - 整改内容:覆盖 users、roles、projects、domains、certificates、certificate_versions、certificate_orders、dns_accounts、dns_delegations、servers、deployment_targets、deployment_records、tasks、task_attempts、renewal_policies、notification_channels、notification_records、audit_logs、backup_records;定义外键、归属、引用删除策略、任务和审计关联。 - 验证命令:V06、V07;补关联完整性、迁移回填和删除约束测试。 - 实机验收步骤:迁移含历史资源的专用库,核对项目归属不丢失;从一次申请追踪订单、版本、任务、部署、通知和审计;删除仍被引用的资源必须拒绝。 - 验收证据:现有模型只能证明部分实体存在;完整关系图、迁移回填与三库关联验证待补。 - 复审结果:未完成,禁止用相似名称替代缺失关联。 ## P0-07 增加项目级权限和资源隔离 - 任务编号:P0-07;任务名称:增加项目级权限和资源隔离;优先级:P0。 - 当前状态:`[~] 进行中`。 - 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:当前用户分组不等于项目及资源隔离,项目级授权仍需实现和审查。 - 涉及文件:`backend/internal/auth/`、`backend/internal/admin/`、`backend/internal/httpapi/`、`backend/internal/repository/`、`frontend/src/views/UserManagement/`;拟新增项目管理模块及迁移。 - 依赖任务:P0-06。 - 整改内容:资源增加项目、所有者、创建人及更新人;制定系统管理员、项目管理员、证书/DNS/部署管理员、审计与只读角色矩阵;列表、详情、写操作、导出与后台任务均检查项目归属,普通用户不能读完整私钥。 - 验证命令:V07、V06、V03;补跨项目 ID 枚举、伪造归属、任务访问与私钥导出拒绝测试。 - 实机验收步骤:建立两项目和最小权限成员;分别测试证书、服务器、目标、DNS、任务、审计的跨项目读写、删除与回滚;撤权后现有会话及排队任务必须重新判权。 - 验收证据:已有分组/角色测试不能证明项目隔离;项目矩阵和真实越权用例待补。 - 复审结果:未完成。 ## P0-08 完善凭据和主密钥生命周期 - 任务编号:P0-08;任务名称:完善凭据和主密钥生命周期;优先级:P0。 - 当前状态:`[~] 进行中`。 - 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:加密存储已有基础,引用检查、禁用、轮换、主密钥变更和恢复链路证据不完整。 - 涉及文件:`backend/internal/secretstore/`、`backend/internal/sshkey/`、`backend/internal/config/`、`backend/internal/certificate/`、`backend/internal/database/credentials.go`、`backend/internal/httpapi/`。 - 依赖任务:P0-06、P0-07。 - 整改内容:统一 DNS、SSH、SMTP、HTTP、数据库、ACME 和证书私钥的创建、验证、禁用、轮换、删除与引用检查;实现主密钥变更、备份恢复和丢失边界;页面与日志永不返回完整秘密。 - 验证命令:V08、V07、V10;增加轮换中断、密钥丢失、被引用删除、禁用后使用及日志脱敏测试。 - 实机验收步骤:专用测试凭据轮换后确认新值生效、旧值失效;中断主密钥变更验证原子性;从受保护备份恢复;缺主密钥必须明确拒绝而非静默生成并丢失数据;检查输出与存储权限。 - 验收证据:已有 secretstore 与密钥测试;完整生命周期和恢复演练尚缺。 - 复审结果:未完成。 ## P0-09 强化 SSH 主机身份验证 - 任务编号:P0-09;任务名称:强化 SSH 主机身份验证;优先级:P0。 - 当前状态:`[~] 进行中`。 - 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[~]`;生产部署测试 `[~]`;最终验收 `[ ]`。 - 问题说明:指纹校验已有测试,首次确认、变更更新以及自动公钥安装实机失败尚需定位。 - 涉及文件:`backend/internal/deployment/`、`backend/internal/sshkey/`、`backend/internal/httpapi/`、`frontend/src/views/Dashboard/ServerModal.vue`、`frontend/src/views/Dashboard/SSHKeyModal.vue`。 - 依赖任务:P0-07、P0-08。 - 整改内容:保存并确认指纹、变更阻断、人工更新留审计;未确认、目标不符、失效凭据全部阻断;命令依据具体服务器展示,支持密码安装公钥并用密钥验证登录,失败日志仅含安全摘要。 - 验证命令:V09、V07、V03;补首次未确认、指纹变化及各公钥部署阶段失败测试。 - 实机验收步骤:使用已确认主机指纹密码登录,按 password_connect、authorized_key_install、private_key_connect、private_key_command、private_key_exit 分阶段定位;验证 authorized_keys 权限和密钥登录;隔离 SSH 目标更换指纹后必须阻断,人工更新后再试。 - 验收证据:历史 SSH 身份只作连接线索,当前候选公钥自动部署成功、失败与恢复的完整证据待补。 - 复审结果:未完成,不跳过指纹换取成功。 ## P0-10 统一任务、部署和回滚事务模型 - 任务编号:P0-10;任务名称:统一任务、部署和回滚事务模型;优先级:P0。 - 当前状态:`[~] 进行中`。 - 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:部署事务不等于全部长操作都具备统一任务、执行尝试、取消和部分成功状态。 - 涉及文件:`backend/internal/domain/`、`backend/internal/repository/task_repository.go`、`backend/internal/deployment/`、`backend/internal/certificate/`、`backend/internal/httpapi/`;拟新增统一任务服务与必要迁移。 - 依赖任务:P0-06、P0-07、P0-09。 - 整改内容:申请、续期、DNS 验证、部署、批量部署、远程备份、回滚、恢复全部关联任务;统一待执行、执行中、成功、失败、取消中、已取消、等待重试、部分成功;记录项目、创建人、时间、步骤、日志、错误、次数和资源。 - 验证命令:V06、V09、V10、V07;补状态转换、崩溃恢复、任务尝试和事务边界测试。 - 实机验收步骤:执行长任务期间刷新、断网、取消和重启;验证状态及执行历史可恢复;批量目标一成一败时显示部分成功;回滚后证书版本、部署与任务结论一致。 - 验收证据:已有部署事务测试;统一八状态和全操作关联尚未验收。 - 复审结果:未完成。 ## P0-11 建立生产验收门禁 - 任务编号:P0-11;任务名称:建立生产验收门禁;优先级:P0。 - 当前状态:`[!] 暂缓或存在阻塞`。 - 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[~]`;生产部署测试 `[!]`;最终验收 `[ ]`。 - 问题说明:局部测试与历史部署不能证明当前候选具备全链路生产能力。 - 涉及文件:《发布加固与实机验收记录.md》《生产部署与运维说明.md》《全面审查测试与优化记录.md》、`build/`、`deploy/`、`artifacts/`。 - 依赖任务:P0-01 至 P0-10、P0-12、P1-01 至 P1-12、P2-01 至 P2-10 的对应交付;P3 留在完整目标中但不阻断第一阶段。 - 整改内容:分别建立单元、隔离、数据库、真实 DNS、ACME Staging、ACME Production、SSH/SFTP、HTTPS/SNI、Windows Service、Linux systemd、备份恢复、升级回滚 12 层门禁,每层独立结论。 - 验证命令:V01 至 V12 按层执行;实机命令取正式安装/运维说明并登记实际退出码,不能用空参数或跳过结果填通过。 - 实机验收步骤:从当前干净候选完成首次安装、初始化、真实签发、分发、正常 DNS 公网 TLS、重启、恢复和升级回滚;双平台及三库分别记录;任何缺口保留未通过。 - 验收证据:既有自动化及发布证据不覆盖全部 12 层;当前缺口由执行清单持续跟踪。 - 复审结果:禁止生产放行,任务规划和局部整改仍可继续。 ## P0-12 完成备份和恢复方案 - 任务编号:P0-12;任务名称:完成备份和恢复方案;优先级:P0。 - 当前状态:`[~] 进行中`。 - 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[~]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:现有 CLI/数据库恢复不是包含私钥、配置、主密钥与审计的完整产品备份方案。 - 涉及文件:`backend/internal/cli/backup_restore.go`、`backend/internal/database/`、`backend/internal/secretstore/`、`backend/internal/certificate/`、`backend/internal/httpapi/`;拟新增备份记录及调度服务。 - 依赖任务:P0-05、P0-06、P0-08、P0-10。 - 整改内容:覆盖数据库、证书元数据/版本/私钥、DNS/服务器/任务/通知/主密钥配置;支持手动、自动、列表、校验、下载、确认恢复、失败回滚与审计;定义一致性和受保护存储,不把秘密放测试证据目录。 - 验证命令:V06、V08、V10、V07;补备份损坏、版本不兼容、错密钥、部分恢复及审计测试。 - 实机验收步骤:每数据库创建完整资源并备份,向空环境恢复、解密并实际部署证书;损坏备份必须在修改前拒绝;恢复中断后可回到原状态;核对恢复前备份、下载授权、定时记录和审计。远端测试不做无关整机备份,产品备份能力不能因此省略。 - 验收证据:部分数据库恢复历史证据存在;全部资源、自动备份和失败回滚闭环待补。 - 复审结果:未完成。