- 新增 domain 层:model、provider、route、stats 实体 - 新增 service 层:models、providers、routing、stats 业务逻辑 - 新增 repository 层:models、providers、stats 数据访问 - 新增 pkg 工具包:errors、logger、validator - 新增中间件:CORS、logging、recovery、request ID - 新增数据库迁移:初始 schema 和索引 - 新增单元测试和集成测试 - 新增规范文档:config-management、database-migration、error-handling、layered-architecture、middleware-system、request-validation、structured-logging、test-coverage - 移除 config 子包和 model_router(已迁移至分层架构)
3.3 KiB
3.3 KiB
Config Management
ADDED Requirements
Requirement: 使用 YAML 配置文件
系统 SHALL 使用 YAML 格式的配置文件。
Scenario: 配置文件路径
- WHEN 应用启动
- THEN SHALL 从
~/.nex/config.yaml加载配置 - THEN SHALL 解析 YAML 格式
Scenario: 配置文件结构
- WHEN 加载配置文件
- THEN SHALL 包含 server、database、log 等配置节
- THEN SHALL 支持嵌套配置结构
Requirement: 自动生成默认配置
系统 SHALL 在首次使用时自动生成默认配置。
Scenario: 配置文件不存在
- WHEN 应用启动且
~/.nex/config.yaml不存在 - THEN SHALL 自动创建配置文件
- THEN SHALL 写入默认配置值
- THEN SHALL 记录日志提示已创建
Scenario: 配置文件已存在
- WHEN 应用启动且
~/.nex/config.yaml已存在 - THEN SHALL 直接加载配置文件
- THEN SHALL NOT 覆盖现有配置
Requirement: 配置验证
系统 SHALL 验证配置的有效性。
Scenario: 必需字段验证
- WHEN 加载配置
- THEN SHALL 验证必需字段存在
- THEN SHALL 在字段缺失时返回错误
Scenario: 字段值验证
- WHEN 加载配置
- THEN SHALL 验证端口号范围(1-65535)
- THEN SHALL 验证日志级别有效性
- THEN SHALL 验证路径有效性
Scenario: 配置错误处理
- WHEN 配置验证失败
- THEN SHALL 返回详细的错误信息
- THEN SHALL 指示哪些字段无效
- THEN SHALL 应用 SHALL NOT 启动
Requirement: 配置结构定义
系统 SHALL 定义清晰的配置结构。
Scenario: Server 配置
- WHEN 加载 server 配置
- THEN SHALL 包含 port、read_timeout、write_timeout 字段
- THEN SHALL 使用合理的默认值
Scenario: Database 配置
- WHEN 加载 database 配置
- THEN SHALL 包含 path、max_idle_conns、max_open_conns、conn_max_lifetime 字段
- THEN SHALL 使用合理的默认值
Scenario: Log 配置
- WHEN 加载 log 配置
- THEN SHALL 包含 level、path、max_size、max_backups、max_age、compress 字段
- THEN SHALL 使用合理的默认值
Requirement: 默认配置值
系统 SHALL 提供合理的默认配置值。
Scenario: Server 默认值
- WHEN 使用默认配置
- THEN server.port SHALL 为 9826
- THEN server.read_timeout SHALL 为 30s
- THEN server.write_timeout SHALL 为 30s
Scenario: Database 默认值
- WHEN 使用默认配置
- THEN database.path SHALL 为
~/.nex/config.db - THEN database.max_idle_conns SHALL 为 10
- THEN database.max_open_conns SHALL 为 100
- THEN database.conn_max_lifetime SHALL 为 1h
Scenario: Log 默认值
- WHEN 使用默认配置
- THEN log.level SHALL 为 info
- THEN log.path SHALL 为
~/.nex/log - THEN log.max_size SHALL 为 100 (MB)
- THEN log.max_backups SHALL 为 10
- THEN log.max_age SHALL 为 30 (days)
- THEN log.compress SHALL 为 true
Requirement: 配置重载支持
系统 SHALL 支持配置重载(未来扩展)。
Scenario: 配置热重载
- WHEN 配置文件修改(未来功能)
- THEN SHALL 支持重新加载配置
- THEN SHALL 应用新配置到可动态调整的参数
注:当前版本不支持,仅为未来扩展预留接口。