1
0
Files
nex/openspec/specs/config-management/spec.md
lanyuanxiaoyao f18904af1e feat: 实现分层架构,包含 domain、service、repository 和 pkg 层
- 新增 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(已迁移至分层架构)
2026-04-16 00:47:20 +08:00

3.3 KiB
Raw Blame History

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 应用新配置到可动态调整的参数

注:当前版本不支持,仅为未来扩展预留接口。