外观
配置参考
本目录是四个可部署单元全部配置项的单一事实源,逐字对照源码列出;未在代码中出现的配置不会记录于此。
| 单元 | 配置类 | 文档 |
|---|---|---|
| Control Server | apps/control-server/app/core/config.py | Control Server 配置 |
| Auth Server | apps/auth-server/authserver/core/config.py | Auth Server 配置 |
| Registry Server | apps/registry-server/registryserver/core/config.py | Registry Server 配置 |
| Node Agent | apps/node-agent/agent/core/config.py + CLI agent/main.py | Node Agent 配置 |
三个服务端共用的分层构造纪律
三个 FastAPI 服务采用同一套加载规则:
环境变量 > TOML 配置文件 > 内置默认值- TOML 是推荐的主载体(直观、可注释、单文件成套),环境变量留作覆盖通道。既有的纯 env 部署一行不改照跑。
- 往容器的
environment里加一项,就等于把 TOML 同名项永久压掉。 这是排查「改了配置文件没生效」时的第一嫌疑。 - 文件路径由各服务的
*_CONFIG_FILE环境变量显式指定(此时文件必须存在,否则启动即失败),未指定时查各自的默认路径(不存在则静默跳过)。 - 未知的段、键或类型不符一律启动期报错(
ConfigFileError),拼写错误不会静默失效。 - token 类项 fail-closed:显式设为空字符串等同于关闭该能力;「未设置」则放行下层(TOML 或默认)的值。这是分层构造与早期
or None写法的唯一差别。
各服务的默认 TOML 路径:
| 服务 | 环境变量 | 默认路径 |
|---|---|---|
| Control Server | DN42_CONTROL_CONFIG_FILE | /etc/dn42-control/control-server.toml |
| Auth Server | DN42_AUTH_CONFIG_FILE | /etc/dn42-auth/auth-server.toml |
| Registry Server | DN42_REGISTRY_CONFIG_FILE | /etc/dn42-registry/registry-server.toml |
生产实配在 deploy/docker/*.toml,由 compose 挂载到上述容器内路径。这些文件含 token 与密码,宿主侧须 chmod 600,且不进开源快照(.gitattributes 的 export-ignore)——本目录的表格即公开可见的完整键位参考。
Node Agent 不属于这套纪律:它多一层 CLI,且 TOML 路径由 --config 指定,见 Node Agent 配置。
解析助手
三个服务端共用同名助手,行为一致:
| 助手 | 行为 |
|---|---|
_env_flag(name, default) | 布尔。未设置返回 default;否则 1 / true / yes / on(去空白、小写)为真,其余为假 |
_env_float(name, default) | 浮点。未设置、纯空白或解析失败均回落 default |
_env_secret(name, default) | token 类。未设置返回 default;设置了则取值,空字符串归一为 None(关闭) |
_parse_cors_origins(raw, default) | 逗号分隔列表。None 返回 default;否则去空白、丢空项;"" 得空元组 |