# 增强能力任务规格 P3 的 10 项是原始清单的后续增强,不阻断第一阶段交付,但未从整体目标移除。当前全部未开始;以下为可执行规格,不宣称已有对应模块。命令和实机约定见《整改任务规格与验收约定.md》。设计建议不替代实施前的需求确认。 ## P3-01 多租户支持 - 任务编号:P3-01;任务名称:多租户支持;优先级:P3。 - 当前状态:`[ ] 未开始`。 - 六阶段:需求确认 `[~]`;代码实现 `[ ]`;自动化测试 `[ ]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:项目和用户分组不自动构成租户边界,租户管理、迁移与限额策略待明确。 - 涉及文件:`backend/internal/auth/`、`backend/internal/database/`、`backend/internal/repository/`、`backend/internal/httpapi/`;拟新增租户服务、迁移与 Web 页面。 - 依赖任务:P0-06、P0-07、P0-08、P1-12。 - 整改内容:定义租户与项目/成员关系、租户管理员边界、资源归属和停用语义;租户间证书、凭据、任务、备份、审计隔离,明确历史数据归属,不能只做前端筛选。 - 验证命令:V06、V07、V08、V03;新增租户隔离、迁移、停用和后台任务继承身份测试后才可视为覆盖。 - 实机验收步骤:两个租户创建同名资源并执行签发部署;通过猜测 ID、导出、下载、恢复和任务查询尝试跨租户操作,全部拒绝;停用一租户不影响另一租户。 - 验收证据:尚无本项实现或实机证据。 - 复审结果:未开始,租户生命周期细节先确认再实现。 ## P3-02 API Token 管理 - 任务编号:P3-02;任务名称:API Token 管理;优先级:P3。 - 当前状态:`[ ] 未开始`。 - 六阶段:需求确认 `[~]`;代码实现 `[ ]`;自动化测试 `[ ]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:现有会话或初始化 Token 不能当作用户可管理的业务 API Token。 - 涉及文件:`backend/internal/auth/`、`backend/internal/httpapi/`、`backend/internal/database/`;拟新增 API Token 管理、迁移及用户管理子页面。 - 依赖任务:P0-07、P0-08、P1-09、P1-12。 - 整改内容:明确创建、仅首次展示、作用域、项目范围、到期、撤销、轮换、最近使用和审计;只存不可逆校验材料,访问权限不能超过所属用户。 - 验证命令:V07、V08、V06、V03;补过期/撤销、跨项目、越权 scope、日志泄露和用户禁用联动测试。 - 实机验收步骤:从 Web 创建最小权限 Token,仅调用允许接口;撤销、过期和用户撤权后立即拒绝;页面再次打开无法读回明文;审计能定位调用者,不记录 Token 内容。 - 验收证据:尚无本项专用业务 Token 验收证据。 - 复审结果:未开始,不能复用初始化 Token 混充完成。 ## P3-03 Webhook 事件订阅 - 任务编号:P3-03;任务名称:Webhook 事件订阅;优先级:P3。 - 当前状态:`[ ] 未开始`。 - 六阶段:需求确认 `[~]`;代码实现 `[ ]`;自动化测试 `[ ]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:P1 通知渠道发送不等于具备业务事件订阅、签名和投递管理。 - 涉及文件:`backend/internal/notification/`、`backend/internal/httpapi/`、`backend/internal/repository/`;拟新增订阅模型、事件投递服务及 Web 管理页面。 - 依赖任务:P0-07、P0-08、P0-10、P1-08、P1-09。 - 整改内容:确认事件目录,支持按项目/事件订阅、签名验证、密钥轮换、唯一事件 ID、有限重试、投递记录及停用;限制目标地址和重定向,防 SSRF 与跨项目数据泄漏。 - 验证命令:V11、V07、V08、V03;新增签名、重放、重试上限、目的地址校验和订阅隔离测试。 - 实机验收步骤:在获授权接收端订阅签发/部署事件,核验实际签名和事件 ID;故意返回失败观察重试;接收方去重;停用及轮换后旧签名失效,不向未授权地址投递。 - 验收证据:尚无本项订阅和投递实机记录。 - 复审结果:未开始。 ## P3-04 更多 DNS Provider 插件 - 任务编号:P3-04;任务名称:更多 DNS Provider 插件;优先级:P3。 - 当前状态:`[ ] 未开始`。 - 六阶段:需求确认 `[~]`;代码实现 `[ ]`;自动化测试 `[ ]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:新增 Provider 名单、凭据字段与真实账号授权待确认,不能用同一 Provider 模拟多插件完成。 - 涉及文件:`backend/internal/dnsprovider/`、`backend/internal/dnsverification/`、`backend/internal/certificate/`、`frontend/src/views/DNSAccounts/`;拟新增选定 Provider 适配器与正式测试。 - 依赖任务:P0-08、P1-03。 - 整改内容:定义稳定 Provider 能力接口与发现方式;新增明确选定的 Provider,支持账户验证、权限错误、限流、精确 TXT 清理及凭据轮换;公开支持矩阵和不支持能力。 - 验证命令:V10、V07、V03;每个适配器分别验证协议夹具、故障、并发和契约,真实用例不以跳过计通过。 - 实机验收步骤:每个新增 Provider 用专用授权区域做 TXT 添加读取清理和 DNS-01 签发;检查失败清理不误删既有记录;验证限权账号和轮换后的行为。 - 验收证据:尚无新增 Provider 的确认名单和逐个实机证据。 - 复审结果:未开始,不缩减成只扩展下拉框。 ## P3-05 证书标签和批量操作 - 任务编号:P3-05;任务名称:证书标签和批量操作;优先级:P3。 - 当前状态:`[ ] 未开始`。 - 六阶段:需求确认 `[~]`;代码实现 `[ ]`;自动化测试 `[ ]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:原清单仅列增强名称,需明确标签归属、批量动作和跨分页选择语义。 - 涉及文件:`backend/internal/domain/`、`backend/internal/repository/`、`backend/internal/httpapi/`;拟新增标签迁移及 Certificates 页面批量交互。 - 依赖任务:P0-07、P0-10、P1-01、P2-04。 - 整改内容:项目内标签创建、编辑、解绑、筛选;支持确认后的批量续期/部署/删除等动作,逐资源授权与结果、任务化、幂等及部分成功;标签数据为 P1-05 策略提供输入。 - 验证命令:V06、V07、V10、V09、V03;补标签唯一性、跨项目混选、重复 ID、并发删除和分页选中测试。 - 实机验收步骤:跨分页选择多个专用证书,按标签批量操作;混入失效、无权限或被引用资源应逐项准确报告;刷新可追踪任务,重复提交不重复申请,成功/失败数量可核对。 - 验收证据:尚无标签模型与完整批量流程验收。 - 复审结果:未开始,具体批量动作须在实现前确定。 ## P3-06 多实例高可用 - 任务编号:P3-06;任务名称:多实例高可用;优先级:P3。 - 当前状态:`[ ] 未开始`。 - 六阶段:需求确认 `[~]`;代码实现 `[ ]`;自动化测试 `[ ]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:单机服务重启和本地文件锁不能证明多实例可用性、共享密钥或状态一致。 - 涉及文件:`backend/internal/servicehost/`、`backend/internal/repository/`、`backend/internal/secretstore/`、`backend/internal/httpapi/`、`deploy/`;拟新增高可用部署与故障恢复说明。 - 依赖任务:P0-05、P0-08、P0-10、P2-04。 - 整改内容:确定支持的共享数据库/存储、会话与主密钥分发、调度协调、健康检查、流量切换和滚动升级;防脑裂及重复签发,不宣称 SQLite 文件共享就是高可用。 - 验证命令:V02、V06、V08、V12;新增多实例竞争、租约失效、网络分区及恢复的一致性正式测试。 - 实机验收步骤:至少两独立实例提供同一测试项目服务,停止一个实例或断开其网络;验证会话、任务、证书及凭据仍可用,恢复节点不能重复执行;滚动升级与回滚后版本兼容。 - 验收证据:尚无多实例拓扑及故障切换证据。 - 复审结果:未开始,架构及可用性目标须先确认。 ## P3-07 分布式任务队列 - 任务编号:P3-07;任务名称:分布式任务队列;优先级:P3。 - 当前状态:`[ ] 未开始`。 - 六阶段:需求确认 `[~]`;代码实现 `[ ]`;自动化测试 `[ ]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:本地任务记录不等于可跨工作者领取、确认、重试和恢复的分布式队列。 - 涉及文件:`backend/internal/repository/task_repository.go`、`backend/internal/database/`、`backend/internal/certificate/`、`backend/internal/deployment/`;拟新增队列适配、工作者管理和配置。 - 依赖任务:P0-10、P2-04;与 P3-06 共享协调设计,不要求先做出高可用再定义队列语义。 - 整改内容:明确存储/消息组件选型,持久化领取、租约、确认、超时重试、死信、取消和任务尝试;重复投递不能重复产生远端副作用,保留项目权限与审计上下文。 - 验证命令:V06、V07、V09、V10;新增多工作者、重复消息、乱序确认、崩溃重领、死信与幂等测试。 - 实机验收步骤:至少两个工作者领取任务,处理途中终止一个;任务重领后结果一致且不重复签发/部署;队列中断恢复后无任务丢失,重试耗尽可追溯,取消能正确传播。 - 验收证据:尚无分布式队列和恢复实机记录。 - 复审结果:未开始,不能用单进程 goroutine 队列替代。 ## P3-08 Prometheus 指标接口 - 任务编号:P3-08;任务名称:Prometheus 指标接口;优先级:P3。 - 当前状态:`[ ] 未开始`。 - 六阶段:需求确认 `[~]`;代码实现 `[ ]`;自动化测试 `[ ]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:日志计数和仪表盘不等于 Prometheus 可采集接口,指标访问边界未定。 - 涉及文件:`backend/internal/httpapi/`、`backend/internal/logging/`、`backend/internal/config/`;拟新增指标注册与采集端点、配置及测试。 - 依赖任务:P2-05、P2-10。 - 整改内容:导出定义清晰的计数器、耗时分布和健康指标;控制标签基数,不用域名/用户/密钥等敏感或无界字段做标签;明确监听、鉴权和访问限制,不能默认公网暴露。 - 验证命令:V07、V11、V02;新增指标格式、并发更新、重复注册、访问控制和标签泄密测试。 - 实机验收步骤:真实 Prometheus 从授权网络采集当前候选,触发成功/失败任务核对指标增量与耗时;重启后序列语义合理;未授权公网请求被拒绝,无秘密和高基数标签。 - 验收证据:尚无指标端点和真实采集证据。 - 复审结果:未开始。 ## P3-09 OpenAPI 自动生成 - 任务编号:P3-09;任务名称:OpenAPI 自动生成;优先级:P3。 - 当前状态:`[ ] 未开始`。 - 六阶段:需求确认 `[~]`;代码实现 `[ ]`;自动化测试 `[ ]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:手写接口文档不能证明自动生成、路由覆盖和契约同步。 - 涉及文件:《后端接口说明文档.md》、`backend/internal/httpapi/`、`build/`;拟新增生成入口与 `doc/openapi/` 代码文档。 - 依赖任务:P1-12、P2-06。 - 整改内容:选定唯一契约源和固定生成器版本,覆盖真实路由、请求/响应、错误、权限、安全方案、分页和任务;示例使用占位值;生成结果可重复,变更检查能发现缺失/过期路由。 - 验证命令:V07、V02、V03;生成器选定后登记正式生成/校验命令,不提前捏造可运行命令;用实际路由与生成文档双向比对。 - 实机验收步骤:从干净克隆生成契约,校验前后无意外漂移;在运行候选上按文档调用典型成功/失败路径;确认登录要求、任务 ID 和权限错误与实际一致,不暴露内部恢复 IPC。 - 验收证据:尚无自动生成器及完整契约校验记录。 - 复审结果:未开始。 ## P3-10 移动端适配 - 任务编号:P3-10;任务名称:移动端适配;优先级:P3。 - 当前状态:`[ ] 未开始`。 - 六阶段:需求确认 `[~]`;代码实现 `[ ]`;自动化测试 `[ ]`;隔离环境测试 `[ ]`;生产部署测试 `[ ]`;最终验收 `[ ]`。 - 问题说明:桌面响应式样式不等于手机/平板完整操作体验和真实设备验收。 - 涉及文件:`frontend/src/views/` 各页面 Vue/JS/CSS 与公共组件;拟新增移动布局及必要正式测试。 - 依赖任务:P2-01、P2-02、P2-06。 - 整改内容:定义手机/平板视口、导航、表格/卡片转换、分页、触控目标、软键盘及危险确认;保留桌面布局与完整功能,不通过隐藏必需字段实现一页显示;悬浮说明提供可触控访问方式。 - 验证命令:V03;使用用户指定 Mobile Preview - Phone & Tablet Simulator 插件检查移动端,不启动桌面浏览器 MCP 代替。 - 实机验收步骤:插件覆盖手机/平板横竖屏及软键盘,再用真实设备从正常公网 TLS 登录;完成列表筛选、证书详情、任务、服务器和危险确认;长域名/邮箱不裁切,操作无横向溢出和遮挡。 - 验收证据:尚无移动插件及真实设备验收记录。 - 复审结果:未开始,不以桌面缩窗截图代替。