Skip to content

系统配置版本发布与回滚治理 #242

Description

@web-ppanel

目标仓库: perfect-panel/backend
目标分支: next
规划基线: origin/main@ea28a7685f4c89f91895c4d789a5726e806aa3f0

目标

为系统配置、认证/通知/存储/节点配置和运行参数建立版本、草稿、发布、回滚、并发控制、脱敏展示和审计治理。该项为 P1 配置治理;敏感配置明文返回、配置泄露等安全问题须由对应 P0 安全项优先修复。

源码已有

  • 已有 system 当前值表、Admin 配置更新、reinit/restart、Node override/effective 配置、ETag、NodeSecret 首启补救。
  • 当前缺少敏感字段统一脱敏、管理员审计、版本历史、草稿/发布/回滚、并发锁、desired/applied 状态。

范围

  • 定义配置域:认证、通知、支付、存储、节点、订阅、日志保留、运行参数等。
  • 建立配置版本模型:draft、published、rolled_back、deprecated;保存脱敏 diff、schema version、发布说明。
  • 支持草稿编辑、校验、预览影响范围、发布、回滚和并发冲突检测。
  • 节点/节点程序 配置使用 desired/applied 语义,能追踪配置下发和应用状态。
  • 配置 schema 变更与 OpenAPI、发布 manifest 和迁移版本关联。

明确不做

  • 不把所有业务表配置化;只治理已有系统配置和运行参数。
  • 不在本 Issue 内建设完整节点舰队健康;仅提供配置版本/回滚和 desired/applied 所需字段。
  • 不返回或导出任何敏感配置明文;敏感查看如确需支持应走单独权限和审计。

数据 / API / 流程

  • 数据:config_versions、config_drafts、config_change_sets、config_publish_records、config_apply_status。
  • API:Admin 配置域列表、草稿创建/编辑、校验、diff、发布、回滚、查看应用状态;节点配置查询返回 ETag 和版本。
  • 流程:编辑草稿 → schema 校验 → 权限检查 → diff 审核 → 发布 → reinit/restart 或热加载 → 应用状态回报 → 回滚候选保留。

RBAC / 审计

  • 每个配置域具备查看、编辑、发布、回滚、敏感查看、导出权限点。
  • 草稿创建、发布、回滚、敏感字段查看、配置校验失败和节点配置下发写管理员审计。
  • 审计记录脱敏 diff、版本号、影响域、actor 和结果,不记录密钥明文。

验收

  • 任一配置域可创建草稿、查看脱敏 diff、发布并回滚到上一版本。
  • 并发编辑同一配置时有版本冲突或锁定提示,不静默覆盖。
  • 敏感字段在列表、详情、diff、审计和导出中默认脱敏。
  • 节点配置可追踪 desired/applied 版本和最后应用时间。
  • 配置发布失败有明确状态,不会产生“已发布但未应用”的模糊展示。
  • OpenAPI 覆盖版本字段、错误码、权限和敏感字段投影。

依赖

开发与测试门禁

  • 只治理配置版本、草稿、发布和回退;节点程序仅记录 program_name/program_version,不纳入程序发布管控。
  • MySQL/PostgreSQL 迁移、OpenAPI、管理员审计和敏感字段脱敏测试必须同步提交。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpriority:P1Important planned workroadmapPlanned roadmap workv2.0PPanel 2.0 roadmap

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions