lolly/internal/config/AGENTS.md
xfy 179aacac04 docs: 添加模块上下文文档 (AGENTS.md)
为各模块添加上下文文档,帮助 AI 助手理解代码结构:
- AGENTS.md: 项目根目录上下文
- docs/AGENTS.md: 文档目录说明
- internal/AGENTS.md: 内部包结构概览
- 各子模块 AGENTS.md: 模块特定上下文和约定

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 16:25:51 +08:00

1.6 KiB
Raw Blame History

config

Purpose

配置模块,提供 YAML 配置文件的解析、验证、默认值生成和序列化功能。是整个项目的核心依赖模块(高频访问)。

Key Files

File Description
config.go 配置结构体定义Config、ServerConfig、ProxyConfig、SSLConfig 等
defaults.go 默认配置生成DefaultConfig()、GenerateConfigYAML()(高频访问)
validate.go 配置验证validateServer、validateSSL、validateSecurity 等
config_test.go 配置解析测试
defaults_test.go 默认配置测试
validate_test.go 验证逻辑测试

For AI Agents

Working In This Directory

  • 所有配置结构体使用 yaml 标签,支持 YAML 序列化/反序列化
  • Load() 加载配置文件,自动调用验证
  • DefaultConfig() 返回安全默认值TLS 1.2+,安全头部等)
  • GenerateConfigYAML() 生成带注释的配置模板
  • defaults.go 是高频访问文件,修改需谨慎

Testing Requirements

  • 测试覆盖完整:结构体解析、默认值、验证逻辑
  • 运行测试:go test ./internal/config/...
  • 验证测试使用 table-driven 方式

Common Patterns

  • 使用 gopkg.in/yaml.v3 解析 YAML
  • 验证函数按配置类型分组validateServer、validateSSL、validateSecurity
  • 时间配置使用 time.DurationYAML 中用秒数或带单位字符串(如 "10s"
  • 安全配置强制要求Basic Auth 启用时必须配置 SSL

Dependencies

External

  • gopkg.in/yaml.v3 - YAML 解析库