79 lines
5.0 KiB
Markdown
79 lines
5.0 KiB
Markdown
# 需求文档:微服务配置管理中心 (Registry)
|
||
|
||
## 1. 项目背景
|
||
|
||
在微服务架构中,配置管理是核心基础设施之一。不同项目、不同环境、不同机房的配置散落在各处,缺乏统一的管理界面和规范。本系统旨在提供一个类 Windows 注册表风格的 Web 管理界面,实现配置的集中化、可视化、规范化管理。
|
||
|
||
## 2. 功能需求
|
||
|
||
### 2.1 项目管理
|
||
|
||
- **FR-1-1**:支持创建项目,项目创建时需指定项目名称、描述、以及是否启用机房/环境/分组维度
|
||
- **FR-1-2**:项目创建后,维度开关(机房/环境/分组)不可修改,只能通过项目转换机制处理
|
||
- **FR-1-3**:支持查看项目列表、项目详情
|
||
- **FR-1-4**:支持删除项目(级联删除所有关联配置)
|
||
|
||
### 2.2 配置维度
|
||
|
||
- **FR-2-1**:机房维度——用于隔离不同物理/云区域(如华北机房、华南机房)
|
||
- **FR-2-2**:环境维度——用于隔离不同运行阶段(如开发、测试、生产)
|
||
- **FR-2-3**:分组维度——用于项目内业务分组(如用户模块、订单模块)
|
||
- **FR-2-4**:维度启用后可在维度栏直接展示与筛选,不直接硬编码进配置路径
|
||
- **FR-2-5**:每个维度可配置映射方式——`path`(作为配置存储路径前缀)或 `label`(仅作筛选标签,不进入路径),默认 `path`
|
||
- **FR-2-6**:映射方式创建后可通过映射配置入口调整(维度启用开关仍不可改)
|
||
|
||
### 2.3 配置项管理
|
||
|
||
- **FR-3-1**:配置以路径形式组织,类似注册表键值结构;路径 = 映射为 path 的维度前缀 + 嵌套键
|
||
- **FR-3-6**:配置键支持嵌套,以 `/` 分割;json 类型在展示时自动按 `.` 分割
|
||
- **FR-3-7**:提供配置导航地址栏,显示当前路径,可拷贝、可粘贴后回车跳转到对应目录(类似 Windows 注册表地址栏)
|
||
- **FR-3-2**:每个配置项支持类型指定:string、number、boolean、json
|
||
- **FR-3-3**:每个配置项必须有说明(description),用于文档化配置用途
|
||
- **FR-3-4**:支持配置项的新增、修改、删除
|
||
- **FR-3-5**:配置值根据类型进行格式校验
|
||
- **FR-3-8**:配置项支持「是否必须」(required,规划模式设置)与「是否存在」(exists,编辑模式设置)两个标志;required 且 exists 时编辑模式值必填,exists 关闭视为该配置项当前不存在、允许值为空
|
||
- **FR-3-9**:值范围支持正则约束(`/pattern/flags` 格式,string 类型常用),前端提供手机号、邮箱、身份证、IPv4、URL、端口、字母数字等常见格式预设
|
||
- **FR-3-10**:配置项支持默认值(defaultValue,规划模式设置,需符合值类型);编辑模式下值为空时表格回退展示默认值
|
||
|
||
### 2.4 三种工作模式
|
||
|
||
- **FR-4-1**:规划模式——定义配置结构,包括字段名、类型、用途、值范围约束、是否必须(required),类似"配置 Schema 设计"
|
||
- **FR-4-2**:编辑模式——在规划好的结构基础上填写实际配置值,可设置配置项是否存在(exists)
|
||
- **FR-4-3**:只读模式——仅可查看配置,不可修改,用于日常查阅和审计
|
||
|
||
### 2.5 持久化方案
|
||
|
||
- **FR-5-1**:支持 JSON 文件持久化(当前版本实现)
|
||
- **FR-5-2**:预留扩展接口,后续支持 XML、YAML、SQLite、MySQL、Nacos
|
||
- **FR-5-3**:配置文件支持导出下载
|
||
- **FR-5-4**:配置文件支持导入合并
|
||
|
||
### 2.6 界面要求
|
||
|
||
- **FR-6-1**:左侧树形导航,按“path 维度前缀 + 嵌套键”逐级展开,视觉风格参考 Windows 注册表编辑器
|
||
- **FR-6-2**:右侧详情面板,顶部为配置导航地址栏,下方展示选中节点的配置项列表
|
||
- **FR-6-3**:每个配置项展示:键名、值、类型、状态(必填/存在)、说明
|
||
- **FR-6-4**:标题栏(应用名+当前项目)与工具栏分离;工具栏按项目/模式/配置/数据分组
|
||
- **FR-6-5**:维度栏独立展示已启用维度的筛选器与映射方式,并提供映射配置入口
|
||
- **FR-6-6**:配置项编辑/查看使用右侧抽屉式弹出,占屏幕至少 60% 面积
|
||
|
||
## 3. 非功能需求
|
||
|
||
- **NFR-1**:技术栈:Node.js + Express 后端,原生 HTML/CSS/JS 前端
|
||
- **NFR-2**:后续对接 SSO 单点登录,当前版本暂不实现认证
|
||
- **NFR-3**:界面响应式,支持主流浏览器
|
||
- **NFR-4**:配置数据实时写入持久化存储,保证数据一致性
|
||
|
||
## 4. 术语定义
|
||
|
||
| 术语 | 说明 |
|
||
|------|------|
|
||
| 项目 (Project) | 配置管理的顶层隔离单元,对应一个微服务或应用 |
|
||
| 机房 (IDC) | 物理或云区域标识,如华北、华南、华东 |
|
||
| 环境 (Environment) | 运行阶段标识,如 dev、test、prod |
|
||
| 分组 (Group) | 业务模块分组,如 user、order、payment |
|
||
| 配置路径 (Path) | 注册表风格的层级路径,如 `project/idc/env/group/key` |
|
||
| 规划模式 | Schema 设计模式,定义配置结构 |
|
||
| 编辑模式 | 配置值填写模式 |
|
||
| 只读模式 | 查看模式,禁止修改 |
|