# 需求文档:微服务配置管理中心 (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**:配置值根据类型进行格式校验 ### 2.4 三种工作模式 - **FR-4-1**:规划模式——定义配置结构,包括字段名、类型、用途、值范围约束,类似"配置 Schema 设计" - **FR-4-2**:编辑模式——在规划好的结构基础上填写实际配置值 - **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**:维度栏独立展示已启用维度的筛选器与映射方式,并提供映射配置入口 ## 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 设计模式,定义配置结构 | | 编辑模式 | 配置值填写模式 | | 只读模式 | 查看模式,禁止修改 |