Clone
3
Task-30-Provider-API-Key-明文存储与回显变更
ila edited this page 2026-08-22 09:56:20 +08:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

30 Provider API Key 明文存储与回显变更

  • 类型:设计变更
  • 所属 Epic:#3
  • 所属 MVP / 版本:#19 / MVP-1
  • 状态:已完成
  • 日期:2026-08-22
  • Gitea 工单:#30
  • Wiki 页面:Task-30-Provider-API-Key-明文存储与回显变更

背景与目标

用户在了解数据库、备份、接口响应和管理员会话泄露会直接暴露上游密钥的风险后,明确接受 Provider API Key 明文存储,并要求保存后可在管理页面再次查看。本任务只完成需求边界、规则和原型变更;生产迁移与接口实现仍属于 #24。

最终方案

  • Provider API Key 目标状态改为明文落库。
  • 管理员只在单个 Provider 编辑页通过显式操作读取和隐藏完整值。
  • Provider 列表只显示配置状态,不批量请求或返回完整密钥。
  • 后续读取接口必须受 JWT/Casbin 保护并设置 Cache-Control: no-store。
  • 真实密钥继续禁止进入代码、日志、审计摘要、错误信息、工单、Wiki、原型和截图。
  • 当前生产代码仍使用 AES-GCM 和 CHORUS_MASTER_KEY;新原型验收后才允许调整 #24 并实施迁移。

修改文件

  • AGENTS.md
  • prototypes/30/v1/index.html
  • prototypes/30/v1/icons.css
  • prototypes/30/v1/remixicon.woff2
  • Wiki 及其核心镜像:Project-Profile、Architecture-and-Code-Map、Business-Rules-and-Glossary、Product-Requirements-Overview

验证结果

  • 原型内联 JavaScript 语法通过。
  • 相对资源、viewport、查看控件和常见真实密钥模式扫描通过。
  • git diff --check 通过。
  • python dev_scripts/harness.py sync --check 通过。
  • python dev_scripts/harness.py check --strict 通过。
  • python -m unittest discover -s tests -v:42 项通过。
  • 当前会话没有可连接浏览器,未执行自动截图和点击回放;由用户打开本地快照审核。

提交与文档证据

  • 实现提交:6bba98f,已推送 origin/main。
  • 原型:prototypes/30/v1/index.html。
  • Project-Profile revision:8578dcf0c29f7792135f01d902b8417f0374db05。
  • Architecture-and-Code-Map revision:5793b6a0b6a077afc8ef2f715f61c4f4189d9267。
  • Business-Rules-and-Glossary revision:2d688855b88d9165c79639549e8812ac87a5ec92。
  • Product-Requirements-Overview revision:957788e4c3d27a5b8bff8d1faeaf4c58e288a6a0。

遗留与下一步

用户验收本原型后,更新 #24 的设计依据和验收标准,再建立或调整生产迁移、后端契约和管理端实现。admin/config/settings.yml 是本机未跟踪配置,后续按用户要求用于启动,但不提交仓库。

验收关闭证据

  • 用户于 2026-08-22 明确回复“#30 验收通过”。
  • 新原型 prototypes/30/v1/index.html 状态改为已确认,并取代 #17 v1 的密钥只写部分。
  • 验收文档提交:8935917,已推送 origin/main。
  • Product-Requirements-Overview revision:94147da37dc446ad67ba89079e88f8cad31ad5bf。
  • #24 已获准按确认边界更新生产实现范围;#30 可关闭。