Files
one-pipe-system/openspec/changes/add-system-config-management/design.md
luo dd6bceeeb7
Some checks failed
构建并部署前端到测试环境 / build-and-deploy (push) Has been cancelled
feat: 系统配置
2026-07-25 14:13:49 +08:00

1.4 KiB

Context

系统配置由后端注册,前端不能假设固定字段。列表接口返回控件提示、值类型、枚举和范围,更新接口要求配置 Key 与路径一致且值字符串化。

Goals / Non-Goals

  • Goals:
    • 在设置管理提供统一的模块筛选、分页和配置编辑入口。
    • 动态遵循后端配置元数据进行展示和校验。
    • 防止误修改只读配置和敏感配置脱敏值。
  • Non-Goals:
    • 不在前端维护配置 Key 白名单或复制后端注册规则。
    • 不对 JSON 配置做业务语义解析。
    • 不绕过后端对已注册配置、范围和枚举的最终校验。

Decisions

  • 列表数据读取 data.list,分页使用 pagepage_sizetotal
  • 编辑控件优先根据 control 渲染,value_type 作为值转换和校验兜底。
  • bool 以开关展示并提交 true/false 字符串;int 以数字输入展示并提交十进制字符串;其他类型以输入框或文本域提交字符串。
  • readonly=true 的配置不显示可编辑操作;sensitive=true 的值仅显示接口返回值,只有用户主动输入新值时才提交更新。

Risks / Trade-offs

  • 未知控件提示可能无法映射到专用控件,使用文本输入作为安全兜底,并仍由后端校验。
  • 脱敏敏感值无法判断是否为完整原值,因此禁止把未修改的脱敏值再次提交。