原文链接
https://nvuai.cc/docs/api-reference/tenant-api/configuration-management-api.md配置管理API
本文引用的源码与文档
本文档引用的文件
- backend/app/api/admin/configs.py
- backend/app/api/tenant/configs.py
- backend/app/configs/service.py
- backend/app/configs/registry.py
- backend/app/configs/meta.py
- backend/app/models/system/config.py
- backend/app/schemas/system/config.py
- backend/app/enums/config.py
- backend/migrations/versions/20260116_3f669a3f2342_add_system_config_tables.py
目录
简介
本文件面向配置管理API,系统性梳理平台配置、AI配置、域名设置、用户偏好等配置相关接口。重点说明配置项的分类、继承关系、默认值管理、配置验证、热更新、版本控制、导入导出、批量修改、权限控制以及租户间继承与覆盖规则。文档以代码为依据,提供可追溯的源码路径,并辅以图示帮助理解。
项目结构
配置管理API主要分布在以下模块:
- 控制器层:平台级与企业级配置API控制器
- 服务层 :统一的配置读写服务,负责验证、回退与缓存
- 注册中心:集中管理配置分组与配置项元数据
- 模型层:数据库持久化模型,支持平台级与企业级配置
- 枚举与Schema:值类型、作用域、请求/响应结构定义
图表来源
- backend/app/api/admin/configs.py:120-474
- backend/app/api/tenant/configs.py:49-251
- backend/app/configs/service.py:45-800
- backend/app/configs/registry.py:20-311
- backend/app/models/system/config.py:16-357
- backend/app/enums/config.py:16-44
- backend/app/schemas/system/config.py:19-141
章节来源
- backend/app/api/admin/configs.py:120-474
- backend/app/api/tenant/configs.py:49-251
- backend/app/configs/service.py:45-800
- backend/app/configs/registry.py:20-311
- backend/app/models/system/config.py:16-357
- backend/app/enums/config.py:16-44
- backend/app/schemas/system/config.py:19-141
核心组件
- 平台配置控制器:提供平台级配置的分组列表、分组详情、批量更新、SSL DNS巡检、Fernet密钥生成、存储驱动测试与列表等接口。
- 企业配置控制器:提供企业级配置的分组列表、分组详情、批量更新、企业存储状态与连接测试、允许的存储驱动列表等接口。
- 配置服务: 封装配置读写逻辑,支持平台与企业配置;实现值回退(企业未设时回退至平台默认)、缓存、HTML净化、值类型规范化与验证、序列化/反序列化。
- 配置注册中心:单例注册中心,维护分组与配置项元数据索引,支持动态注入/撤销选项(如存储驱动)。
- 数据模型:SystemConfigGroup、SystemConfig、SystemConfigValue三张表分别承载分组、配置项元数据与配置值,支持平台级(tenant_id=0)与企业级(tenant_id>0)。
- 枚举与Schema:定义配置值类型、作用域、请求/响应结构,保证前后端契约一致。
章节来源
- backend/app/api/admin/configs.py:120-474
- backend/app/api/tenant/configs.py:49-251
- backend/app/configs/service.py:45-800
- backend/app/configs/registry.py:20-311
- backend/app/models/system/config.py:16-357
- backend/app/enums/config.py:16-44
- backend/app/schemas/system/config.py:19-141
架构总览
配置管理API采用“控制器-服务-注册中心-模型”的分层架构,配合元数据驱动的配置定义与Schema约束,形成可扩展、可验证、可回退的配置体系。
图表来源
- backend/app/api/admin/configs.py:134-174
- backend/app/api/tenant/configs.py:139-161
- backend/app/configs/service.py:348-395
- backend/app/configs/registry.py:198-251
- backend/app/models/system/config.py:147-357
详细组件分析
平台配置API
- 功能要点
- 获取平台配置分组列表(不含具体配置项)
- 获取指定分组的配置项列表(含当前值)
- 批量更新分组配置(支持扁平/包裹两种格式)
- SSL DNS配置巡检
- 生成Fernet密钥
- 存储连接测试与驱动列表
- 关键流程
- 分组校验:通过注册中心按作用域筛选分组
- 值回退:平台配置直接读取平台默认值
- 验证:对SSL配置进行专项校验
- 写入:逐项调用配置服务写入并失效缓存
图表来源
- backend/app/api/admin/configs.py:255-346
- backend/app/configs/service.py:107-122
- backend/app/configs/registry.py:198-251
章节来源
企业配置API
- 功能要点
- 获取企业配置分组列表
- 获取指定分组的配置项列表(含当前值)
- 批量更新企业配置
- 企业存储状态查询与连接测试
- 企业允许的存储驱动列表
- 关键流程
- 值回退:企业配置优先读取企业值,未设则回退平台默认值,再回退代码默认值
- 工作流服务:企业配置更新通过工作流服务协调
- 存储模式:支持平台白名单限制与企业自管模式
图表来源
章节来源
配置服务(读写与回退)
- 读取策略
- 平台配置:直接读取平台值
- 企业配置:优先企业值,其次平台默认值,再次代码默认值,最后传入默认值
- 批量读取:按分组聚合返回
- 写入策略
- 值规范化与验证:根据值类型执行标准化与规则校验
- HTML净化:对HTML类型进行净化
- 序列化存储:统一JSON字符串存储
- 缓存失效:写入后立即失效对应缓存键
- 缓存机制
- 配置ID映射缓存(TTL=5分钟)
- 配置值缓存(TTL=60秒)
图表来源
章节来源