fix: 增加 AI 匹配失败弹窗并补齐部署配置 (#229)
This commit is contained in:
@@ -256,7 +256,7 @@ handler 返回批次 JSON;管理员在统一导入记录页查看摘要
|
||||
|
||||
AI 服务商的普通配置和非敏感审计由 `repository` 写入 MySQL。API Key 通过
|
||||
`service.AISecretStore` 写入部署指定的独立文件;该文件必须使用绝对路径,不能位于
|
||||
仓库、`data/` 或 release 目录,生产建议为 `/etc/cmautobuy/ai-secrets.yaml` 且权限为
|
||||
仓库、`data/` 或 release 目录,生产建议为 `/etc/cmautobuy/secrets/ai-secrets.yaml` 且权限为
|
||||
`600`。页面只得到“是否配置”和固定掩码尾号。
|
||||
|
||||
外部模型调用位于独立 HTTP 客户端边界:Base URL 允许 HTTP 和 HTTPS,拒绝其他协议、
|
||||
|
||||
@@ -927,6 +927,10 @@ API Key 使用密码输入框,只允许替换或清除。已保存值显示固
|
||||
及逐条原因。运行中自动轮询,另提供“刷新进度”和“刷新列表”;明细表限制高度并可滚动,
|
||||
1366×768 下操作按钮仍可见。采购员只能查看自己创建的记录,管理员可以查看全部。
|
||||
|
||||
如果 AI 服务商、密钥存储或批次输入校验在创建批次前失败,页面必须自动打开独立错误弹窗,
|
||||
说明“匹配未开始、数据未改动”和下一步处理方式,不能只把错误放在 URL 或底部状态条里。
|
||||
该弹窗复用公共关闭规则:关闭按钮、Esc 和从遮罩开始的点击都可关闭。
|
||||
|
||||
列表增加“匹配来源”文字徽标:人工匹配、规则匹配、AI匹配。颜色只作辅助,来源必须有文字;
|
||||
映射失效时追加“已失效”。“AI规格匹配”筛选只命中当前有效、来源为 AI、且仍处于采购就绪
|
||||
阶段的明细,后续进入采购任务阶段后不再命中,但行和详情中的来源标记继续显示。
|
||||
|
||||
@@ -264,6 +264,10 @@ CMAutoBuyAdmin/
|
||||
## 11. AI 外部调用安全
|
||||
|
||||
- API Key 不得进入数据库、`data/`、日志、页面响应、测试快照、工单或归档;测试只使用假密钥。
|
||||
- 生产必须通过 `CMAUTOBUY_AI_SECRETS_PATH` 指向 release、仓库和 `data/` 之外的绝对路径;
|
||||
发布重启前后都要核对环境变量、服务账号读写权限和文件 `600` 权限,不能只发布二进制。
|
||||
- systemd 只把独立的 `/etc/cmautobuy/secrets/` 通过 `ReadWriteDirectories` 加入写白名单;
|
||||
不得把含数据库环境文件的整个 `/etc/cmautobuy/` 目录交给服务账号写入。
|
||||
- 密钥文件使用同目录临时文件、`fsync`、原子替换和 `600` 权限,失败时旧文件保持可用。
|
||||
- 连接测试只发送模型名和最小无业务文本,不发送订单号、店铺账号、用户、地址或 Client 信息。
|
||||
- Base URL、DNS 解析、实际拨号和重定向都要执行 SSRF 校验;私有地址只能由部署级允许列表开放。
|
||||
|
||||
Reference in New Issue
Block a user