Skip to content

配置参考

本目录是四个可部署单元全部配置项的单一事实源,逐字对照源码列出;未在代码中出现的配置不会记录于此。

单元配置类文档
Control Serverapps/control-server/app/core/config.pyControl Server 配置
Auth Serverapps/auth-server/authserver/core/config.pyAuth Server 配置
Registry Serverapps/registry-server/registryserver/core/config.pyRegistry Server 配置
Node Agentapps/node-agent/agent/core/config.py + CLI agent/main.pyNode Agent 配置

三个服务端共用的分层构造纪律

三个 FastAPI 服务采用同一套加载规则:

环境变量  >  TOML 配置文件  >  内置默认值
  • TOML 是推荐的主载体(直观、可注释、单文件成套),环境变量留作覆盖通道。既有的纯 env 部署一行不改照跑。
  • 往容器的 environment 里加一项,就等于把 TOML 同名项永久压掉。 这是排查「改了配置文件没生效」时的第一嫌疑。
  • 文件路径由各服务的 *_CONFIG_FILE 环境变量显式指定(此时文件必须存在,否则启动即失败),未指定时查各自的默认路径(不存在则静默跳过)。
  • 未知的段、键或类型不符一律启动期报错ConfigFileError),拼写错误不会静默失效。
  • token 类项 fail-closed:显式设为空字符串等同于关闭该能力;「未设置」则放行下层(TOML 或默认)的值。这是分层构造与早期 or None 写法的唯一差别。

各服务的默认 TOML 路径:

服务环境变量默认路径
Control ServerDN42_CONTROL_CONFIG_FILE/etc/dn42-control/control-server.toml
Auth ServerDN42_AUTH_CONFIG_FILE/etc/dn42-auth/auth-server.toml
Registry ServerDN42_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;否则去空白、丢空项;"" 得空元组

相关文档

CLI 与脚本 · 部署 · 数据库迁移