为各模块添加上下文文档,帮助 AI 助手理解代码结构: - AGENTS.md: 项目根目录上下文 - docs/AGENTS.md: 文档目录说明 - internal/AGENTS.md: 内部包结构概览 - 各子模块 AGENTS.md: 模块特定上下文和约定 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
45 lines
1.6 KiB
Markdown
45 lines
1.6 KiB
Markdown
<!-- Parent: ../AGENTS.md -->
|
||
<!-- Generated: 2026-04-02 | Updated: 2026-04-02 -->
|
||
|
||
# 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.Duration`,YAML 中用秒数或带单位字符串(如 "10s")
|
||
- 安全配置强制要求:Basic Auth 启用时必须配置 SSL
|
||
|
||
## Dependencies
|
||
|
||
### External
|
||
- `gopkg.in/yaml.v3` - YAML 解析库
|
||
|
||
<!-- MANUAL: --> |