172 lines
18 KiB
Markdown
172 lines
18 KiB
Markdown
# 核心能力任务规格
|
||
|
||
覆盖 P1 全部 12 项,遵循《整改任务规格与验收约定.md》。当前不少业务集中于 Dashboard,不得把建议目录当作已经存在的独立页面;新页面均按 Vue、JS、CSS 就近拆分。
|
||
|
||
## P1-01 建设统一证书中心
|
||
|
||
- 任务编号:P1-01;任务名称:建设统一证书中心;优先级:P1。
|
||
- 当前状态:`[~] 进行中`。
|
||
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
|
||
- 问题说明:已有域名及证书操作,不等于统一证书中心与项目筛选、引用保护已完成。
|
||
- 涉及文件:`backend/internal/certificate/`、`backend/internal/httpapi/certificate_api.go`、`frontend/src/views/Dashboard/`;拟新增 `frontend/src/views/Certificates/`。
|
||
- 依赖任务:P0-06、P0-07、P0-10。
|
||
- 整改内容:列表按域名、项目、状态、到期时间筛选;展示状态、剩余有效期、证书链、SAN、签发机构和版本;支持手动续期、部署、回滚、导入与删除无引用证书;分页提供 5、10、15、30 条。
|
||
- 验证命令:V10、V07、V03;补筛选分页、空状态、过期时间边界、引用删除和操作权限测试。
|
||
- 实机验收步骤:导入和签发多域名证书,跨项目切换筛选与分页;逐项续期、部署、回滚;被引用证书不能删除;刷新后状态与实际服务一致,错误提示不泄密。
|
||
- 验收证据:现有 Dashboard 和证书 API 测试仅作基础;独立中心、完整操作及桌面布局待验收。
|
||
- 复审结果:未完成。
|
||
|
||
## P1-02 完善证书详情和版本管理
|
||
|
||
- 任务编号:P1-02;任务名称:完善证书详情和版本管理;优先级:P1。
|
||
- 当前状态:`[~] 进行中`。
|
||
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
|
||
- 问题说明:证书文件版本不等于详情包含完整业务信息,版本切换与部署关联须复核。
|
||
- 涉及文件:`backend/internal/certificate/lifecycle.go`、`backend/internal/certificate/lifecycle_version_test.go`、`backend/internal/httpapi/certificate_api.go`、`backend/internal/httpapi/certificate_restore_api.go`;拟新增 `frontend/src/views/Certificates/CertificateDetail.vue` 及同名 JS/CSS。
|
||
- 依赖任务:P0-06、P0-07、P1-01。
|
||
- 整改内容:展示名称、主域名、SAN、项目、机构、签发/到期时间、剩余天数、状态、申请及 DNS 验证方式、当前/历史版本、部署状态、任务和服务器;区分待申请、申请中、有效、将到期、过期、申请失败、部署失败、吊销、禁用。
|
||
- 验证命令:V10、V09、V07、V03;补多版本切换、状态映射、时间边界和禁止私钥泄漏测试。
|
||
- 实机验收步骤:产生至少两版证书,检查详情及版本指纹;将某版部署并回滚,核对线上证书与详情当前/已部署版本;失败及禁用状态不能伪装有效部署。
|
||
- 验收证据:已有版本回归不代表所有详情字段和生命周期状态已实现;真实多版本闭环待补。
|
||
- 复审结果:未完成。
|
||
|
||
## P1-03 完善 ACME 和 DNS 管理
|
||
|
||
- 任务编号:P1-03;任务名称:完善 ACME 和 DNS 管理;优先级:P1。
|
||
- 当前状态:`[~] 进行中`。
|
||
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[~]`;生产部署测试 `[~]`;最终验收 `[ ]`。
|
||
- 问题说明:已有 ACME、DNS 账户与 TXT 测试,不能证明 HTTP-01、CNAME 委派、全部 SAN 和正式签发均通过。
|
||
- 涉及文件:`backend/internal/certificate/`、`backend/internal/dnsprovider/`、`backend/internal/dnsverification/`、`backend/internal/httpapi/dns_accounts_api.go`、`frontend/src/views/DNSAccounts/`;拟新增 `frontend/src/views/DNSDelegations/`。
|
||
- 依赖任务:P0-07、P0-08、P0-10。
|
||
- 整改内容:保留 Production/Staging、DNS-01/HTTP-01、单域名/泛域名/SAN、多 Provider、账户验证/禁用/轮换、CNAME 委派、TXT 添加读取清理;显示账户归属,配置页面一页可用。泛域名通过 DNS-01,不把协议限制算成功。
|
||
- 验证命令:V10、V07、V03;补委派链、错误权限、并发 TXT、清理失败、签发与账户隔离测试。
|
||
- 实机验收步骤:先做受限 DNS TXT 创建读取精确清理,再以另一授权域名做 Staging 与 Production 签发;分别验证 HTTP-01、DNS-01、泛域名和 SAN;测试委派目标、账户禁用与轮换;失败不删除他人记录,不将 Staging 证书用于正式入口。
|
||
- 验收证据:历史 RAM TXT 测试仅证明该次账户权限;当前完整签发矩阵和公网信任证据尚缺。
|
||
- 复审结果:未完成。
|
||
|
||
## P1-04 建设任务中心
|
||
|
||
- 任务编号:P1-04;任务名称:建设任务中心;优先级:P1。
|
||
- 当前状态:`[~] 进行中`。
|
||
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
|
||
- 问题说明:现有任务仓储和日志缺完整统一视图、步骤历史、取消及重试交互验证。
|
||
- 涉及文件:`backend/internal/repository/task_repository.go`、`backend/internal/httpapi/`、`frontend/src/views/Dashboard/`;拟新增 `frontend/src/views/Tasks/`。
|
||
- 依赖任务:P0-07、P0-10。
|
||
- 整改内容:列表、详情、实时进度、日志、执行步骤、失败重试、取消、历史、项目/类型/状态筛选及关联证书/服务器/部署;任务与尝试分开展示,刷新后能恢复。
|
||
- 验证命令:V06、V07、V03;补八状态、日志增量、重试关联、取消竞态与权限测试。
|
||
- 实机验收步骤:运行真实长任务并刷新、断网重连;从列表进入详情查看步骤及资源;失败重试生成可追溯尝试;取消中到已取消过程一致,不能把远端已生效操作假称未执行。
|
||
- 验收证据:任务基础存在,完整中心及取消语义待验证。
|
||
- 复审结果:未完成。
|
||
|
||
## P1-05 统一续期策略
|
||
|
||
- 任务编号:P1-05;任务名称:统一续期策略;优先级:P1。
|
||
- 当前状态:`[~] 进行中`。
|
||
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
|
||
- 问题说明:现有续期代码不能证明按日期、标签、项目、类型的策略及调度幂等完整。
|
||
- 涉及文件:`backend/internal/certificate/renewal.go`、`backend/internal/certificate/renewal_executor.go`、`backend/internal/repository/`、`backend/internal/httpapi/`;拟新增续期策略配置视图和迁移。
|
||
- 依赖任务:P0-10、P1-02、P1-03;标签策略依赖 P3-05 的标签数据,不能因此省略。
|
||
- 整改内容:支持剩余天数、固定日期、标签、项目、证书类型策略;有限失败重试、成功自动部署和通知;防重复申请、并发续期、重复部署、无限重试及部署状态滞后。
|
||
- 验证命令:V10、V06、V09;以可控时钟补阈值、时区、重启、并发调度和重试上限用例。
|
||
- 实机验收步骤:在专用证书配置短测试计划,跨重启观察任务仅执行一次;注入 DNS/部署失败后保留旧证书并有限重试;成功后核对版本、线上证书、部署状态和通知。
|
||
- 验收证据:已有续期自动化基础,策略矩阵和真实调度闭环尚缺。
|
||
- 复审结果:未完成。
|
||
|
||
## P1-06 建设服务器和部署目标中心
|
||
|
||
- 任务编号:P1-06;任务名称:建设服务器和部署目标中心;优先级:P1。
|
||
- 当前状态:`[~] 进行中`。
|
||
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[~]`;最终验收 `[ ]`。
|
||
- 问题说明:已有服务器弹窗和密钥展示,部署目标、项目归属、标签、健康检查与启停边界仍需统一。
|
||
- 涉及文件:`backend/internal/deployment/`、`backend/internal/repository/server_repository.go`、`backend/internal/httpapi/`、`frontend/src/views/Dashboard/ServerModal.vue`;拟新增 `frontend/src/views/Servers/`。
|
||
- 依赖任务:P0-07、P0-08、P0-09、P0-10。
|
||
- 整改内容:服务器列表/详情、连接测试、指纹、标签、项目、分组、部署路径、reload、健康检查和启禁用;服务器配置与密钥命令合并流程,命令按主机生成,配置后自动安装公钥并验证密钥登录。
|
||
- 验证命令:V09、V07、V03;补目标路径验证、目录创建权限、禁用后任务拒绝、凭据脱敏和命令注入测试。
|
||
- 实机验收步骤:用密码添加专用服务器并确认指纹,自动部署公钥后测试密钥登录;输入不存在的授权目录由产品安全创建;禁用后不能新部署;健康检查和 reload 失败提供可定位结果,不影响同机其他服务。
|
||
- 验收证据:历史服务器配置测试不代表自动密钥流程修复;本候选完整目标中心待补。
|
||
- 复审结果:未完成。
|
||
|
||
## P1-07 建设多服务器部署策略
|
||
|
||
- 任务编号:P1-07;任务名称:建设多服务器部署策略;优先级:P1。
|
||
- 当前状态:`[~] 进行中`。
|
||
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[~]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
|
||
- 问题说明:单目标事务测试不能替代多目标并行/串行、失败策略和部分成功处理。
|
||
- 涉及文件:`backend/internal/deployment/`、`backend/internal/httpapi/`、`backend/internal/repository/`、`frontend/src/views/Dashboard/DeploymentFeedback.js`、`frontend/src/views/Dashboard/DeploymentResult.vue`。
|
||
- 依赖任务:P0-09、P0-10、P1-02、P1-06;按标签批量需要标签能力。
|
||
- 整改内容:单机、多机并行/串行、标签批量、失败停止/继续、自动回滚、部分成功、部署前备份与部署后 HTTPS;准备、连接、远程备份、临时上传、权限、原子替换、reload、HTTPS、成功或回滚逐步记录。
|
||
- 验证命令:V09、V06、V07、V03;补逐阶段故障、取消、网络中断、文件权限和证书/私钥匹配测试。
|
||
- 实机验收步骤:至少两部署目标分别串行并行推送;一个目标制造可恢复 reload/HTTPS 失败,验证停止/继续策略及回滚后旧站点有效;普通 DNS 访问核对新证书 SNI,记录每目标和总体状态。只验证证书推送,不操作远端 Git;不备份无关主机数据。
|
||
- 验收证据:已有部署回滚单元测试;多机策略和真实 HTTPS/回滚仍缺完整证据。
|
||
- 复审结果:未完成。
|
||
|
||
## P1-08 建设通知中心
|
||
|
||
- 任务编号:P1-08;任务名称:建设通知中心;优先级:P1。
|
||
- 当前状态:`[~] 进行中`。
|
||
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
|
||
- 问题说明:已有 Smail 系统账户方向,不能证明通知渠道、触发覆盖、可重试及可审计完整。
|
||
- 涉及文件:`backend/internal/notification/`、`backend/internal/config/notification_sender.go`、`backend/internal/httpapi/`、`frontend/src/views/Dashboard/MailNotificationSettings.vue`;拟新增 `frontend/src/views/Notifications/`。
|
||
- 依赖任务:P0-07、P0-08、P0-10。
|
||
- 整改内容:HTTP Webhook、SMTP;任务成功/失败、将到期/过期、部署失败、服务异常和备份失败通知;渠道测试、有限重试、发送记录与脱敏。邮件默认沿用 Smail 系统账户,不恢复重复自定义邮箱入口。
|
||
- 验证命令:V11、V08、V03;补 HTTP/SMTP 超时、拒绝、重试、重复发送和敏感内容过滤测试。
|
||
- 实机验收步骤:以产品系统账户发信并核对实际收件,不只看发送 API;测试授权 Webhook 实际接收;注入暂时失败验证次数/退避与记录;检查所有事件类型。Smail 调用失败才只读查阅其项目定位接口,不扩大本任务修改范围。
|
||
- 验收证据:既有通知测试不等于真实收信;事件矩阵和失败恢复待补。
|
||
- 复审结果:未完成。
|
||
|
||
## P1-09 建设审计中心
|
||
|
||
- 任务编号:P1-09;任务名称:建设审计中心;优先级:P1。
|
||
- 当前状态:`[~] 进行中`。
|
||
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
|
||
- 问题说明:审计仓储存在,所有危险操作及失败路径是否关联请求、任务和项目仍未闭环。
|
||
- 涉及文件:`backend/internal/repository/audit_repository.go`、`backend/internal/repository/audit_reader.go`、`backend/internal/httpapi/`;拟新增 `frontend/src/views/AuditLogs/`。
|
||
- 依赖任务:P0-06、P0-07、P0-10。
|
||
- 整改内容:记录登录/退出/密码、用户/角色/项目、证书申请/导入/删除/回滚、部署、凭据、指纹、备份恢复和系统设置;包含操作人、时间、类型、资源类型/ID、项目、客户端 IP、结果、失败原因、请求追踪 ID。
|
||
- 验证命令:V06、V07、V11、V03;逐类测试成功和拒绝路径、不可伪造字段、跨项目查询和脱敏。
|
||
- 实机验收步骤:按危险操作清单逐项执行并关联审计;制造权限拒绝及远端失败;用只读审计角色查询,跨项目访问拒绝;追踪 ID 能回溯相关任务但不暴露秘密。
|
||
- 验收证据:已有审计仓储测试;完整操作覆盖和页面联查待补。
|
||
- 复审结果:未完成。
|
||
|
||
## P1-10 建设证书监控仪表盘
|
||
|
||
- 任务编号:P1-10;任务名称:建设证书监控仪表盘;优先级:P1。
|
||
- 当前状态:`[ ] 未开始`。
|
||
- 六阶段:需求确认 `[x]`;代码实现 `[ ]`;自动化测试 `[ ]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
|
||
- 问题说明:已有运行概览不等于完整证书监控面板,统计口径与数据归属未统一复审。
|
||
- 涉及文件:`frontend/src/views/Dashboard/RuntimeOverview.vue`、同目录 JS/CSS、`backend/internal/httpapi/`、`backend/internal/repository/`。
|
||
- 依赖任务:P0-07、P1-01、P1-04、P1-06、P1-08、P1-09。
|
||
- 整改内容:总数、有效/将到期/过期/申请失败/部署失败、今日/失败任务、服务器/异常服务器、最近审计/通知;首页保留用户、域名、状态、到期与部署服务器,概览不能变成日志页;制定互斥到期阈值,明确原建议在第 7 天重叠的边界。
|
||
- 验证命令:V07、V06、V03;补按项目聚合、零数据、时区、1/7/30 天边界与失败分类测试。
|
||
- 实机验收步骤:构造不同状态的专用证书及服务器,逐项核对统计与列表;点击统计能到正确筛选;不同权限用户数据隔离;常用桌面视口一页显示主要信息且无重叠。
|
||
- 验收证据:未建立本项完整统计和布局验收证据。
|
||
- 复审结果:未开始实现,不把现有概览误标完成。
|
||
|
||
## P1-11 建设备份恢复页面
|
||
|
||
- 任务编号:P1-11;任务名称:建设备份恢复页面;优先级:P1。
|
||
- 当前状态:`[~] 进行中`。
|
||
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[ ]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
|
||
- 问题说明:CLI 恢复基础不能替代 Web 备份列表、风险提示和二次确认。
|
||
- 涉及文件:`backend/internal/cli/backup_restore.go`、`backend/internal/httpapi/`;拟新增 `frontend/src/views/Backups/` 及 `RestoreDialog/`。
|
||
- 依赖任务:P0-07、P0-10、P0-12、P1-04、P1-09。
|
||
- 整改内容:备份列表、校验、下载、恢复;显示影响范围、二次确认及输入确认文字;恢复前自动备份,过程入任务中心,结果入审计,失败自动回滚。
|
||
- 验证命令:V06、V07、V03;补无权限下载、确认字不符、重复提交、任务刷新和失败提示测试。
|
||
- 实机验收步骤:在可清理环境从页面备份并恢复,观察自动安全备份、任务与审计;损坏包和错误主密钥必须阻断;中途失败回滚后数据一致;普通用户不可访问下载或恢复入口。
|
||
- 验收证据:现有后端恢复基础未证明本页面和高风险交互完成。
|
||
- 复审结果:未完成。
|
||
|
||
## P1-12 统一 API 契约和权限矩阵
|
||
|
||
- 任务编号:P1-12;任务名称:统一 API 契约和权限矩阵;优先级:P1。
|
||
- 当前状态:`[~] 进行中`。
|
||
- 六阶段:需求确认 `[x]`;代码实现 `[~]`;自动化测试 `[~]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。
|
||
- 问题说明:现有接口说明与实际路由、项目权限和长操作返回值需逐项对齐。
|
||
- 涉及文件:《后端接口说明文档.md》、`backend/internal/httpapi/`、`backend/internal/bootstrap/router.go`、`frontend/src/views/`。
|
||
- 依赖任务:P0-07、P0-10;随 P1 其他模块增量维护,不等待所有页面写完才定义契约。
|
||
- 整改内容:每个路由记录路径、方法、登录要求、角色、项目权限、资源权限、审计、幂等、敏感字段及错误码;统一请求/响应、分页、任务 ID 和失败语义,文档不能虚构路由。
|
||
- 验证命令:V07、V02、V03;路由清单与文档双向比对,补字段、状态码、授权及敏感响应契约测试。
|
||
- 实机验收步骤:以各角色从真实 Web 操作关键流程,记录实际请求与脱敏响应;越权、无效字段、超时和冲突符合契约;接口升级后旧会话及刷新不破坏任务追踪。
|
||
- 验收证据:已有接口文档和回归;全路由对照、项目权限矩阵及生产联调未齐。
|
||
- 复审结果:未完成。
|