registry/docs/需求.md

75 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 需求文档:微服务配置管理中心 (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 设计模式,定义配置结构 |
| 编辑模式 | 配置值填写模式 |
| 只读模式 | 查看模式,禁止修改 |