# ADR-009:模型连接配置持久化 ## 状态 已接受 ## 决策 - 使用独立的 `provider_configs` 表保存唯一的 `target` 与 `judge` 连接配置,提供认证后的 REST CRUD;`model_profiles` 继续保存历史能力档案。 - 管理员可创建、更新、删除;已登录用户可读取配置及调用模型相关接口。 - API Key 可写入但绝不回显,只返回 `api_key_configured`;日志不记录密钥、认证头或请求体。 - 运行时优先读取数据库;某角色没有记录时回退同名 `.env` 配置,便于平滑升级与紧急删除错误覆盖。 - `target` 与 `judge` 是稳定的自然 `provider_id`。CRUD、连接检查和模型发现统一挂在 `/providers/{provider_id}` 下,不暴露内部数据库行 ID。 - `GET /providers` 返回两条当前生效配置,并以 `source=database|env` 标明来源;两种来源都不回显 API Key。 - `check`、模型发现和后台测试运行全部复用 `ProviderFactory`;能力探测由后台运行调用,避免配置只对管理接口生效。 ## 边界 SQLite 中的 API Key 与原 `.env` 一样属于部署密钥,依赖主机文件权限和备份访问控制。当前不增加密钥管理服务或自定义加密层;接入集中式 KMS 后再替换存储方式。