docs: 补充密钥与界面验收约束 (#1)

This commit is contained in:
ila
2026-08-20 15:07:31 +08:00
parent 264d930b82
commit 3442daad1b
3 changed files with 9 additions and 9 deletions
+3 -3
View File
@@ -2,8 +2,8 @@
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Project-Profile
wiki_url: https://git.ilapage.cn/OPC/chorus/wiki/Project-Profile.-
wiki_revision: 3bc33f550a53d7cab30684fca2eb5a2c42866090
synchronized_at: 2026-08-20T07:01:02Z
wiki_revision: 4a1a822e3cce84386e80447f0aa05fad92544ce9
synchronized_at: 2026-08-20T07:03:59Z
<!-- gitea-wiki-mirror:end -->
# 项目档案
@@ -134,7 +134,7 @@ synchronized_at: 2026-08-20T07:01:02Z
- 核心 Wiki 同步配置是 `wiki-docs.json`;Gitea 地址可用 `GITEA_URL` 覆盖。
- Gitea PAT 仅从进程环境、MCP 安全配置或本机未跟踪的环境文件加载,不写入仓库、工单或 Wiki。
- 数据库连接串由 `CHORUS_DSN` 提供。
- Provider `api_key` 使用 AES-GCM 加密落库;密文同时记录非敏感 `key_id`,主密钥从环境/密钥管理系统取得。轮换按“新 key_id 写入、后台重加密、验证后退役旧密钥”执行,不原地猜测密钥版本。
- Provider `api_key` 使用 AES-GCM 加密落库;`api_key_enc` 采用带 `version`、非敏感 `key_id`、nonce 和 ciphertext 的版本化信封,主密钥从环境/密钥管理系统取得且不入库。轮换按“新 key_id 写入、后台重加密、验证后退役旧密钥”执行,不原地猜测密钥版本。
- 会话签名/加密密钥与 Provider 主密钥分离,生产 Cookie 必须启用 `Secure`、`HttpOnly` 和合适的 `SameSite`。
- 生成物默认落受保护的本地目录,不能直接把真实路径暴露为公开静态 URL;访问先校验用户归属。storage 从第一天是接口,预留 S3/OSS。
- 测试只用构造数据与 mock 上游;真实连通性检查必须是管理员明确触发的单次低成本动作,并有审计和冷却。
+3 -3
View File
@@ -2,8 +2,8 @@
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Business-Rules-and-Glossary
wiki_url: https://git.ilapage.cn/OPC/chorus/wiki/Business-Rules-and-Glossary.-
wiki_revision: 1d0fc6a192ac3235477f6033b3f760d6630f12f7
synchronized_at: 2026-08-20T07:01:13Z
wiki_revision: 284ba550f90df865e75f16b8852a55c6197787ce
synchronized_at: 2026-08-20T07:04:20Z
<!-- gitea-wiki-mirror:end -->
# 业务规则与术语
@@ -70,7 +70,7 @@ synchronized_at: 2026-08-20T07:01:13Z
23. 密码使用当前批准的强哈希方案及参数并支持升级;登录按账号和来源限速,响应不泄露账号是否存在。
24. 浏览器写操作验证 CSRF;会话 Cookie 使用 `Secure`、`HttpOnly`、合适的 `SameSite`,登录后轮换 session id,登出使其失效。
25. 原图、结果和缩略图不作为无鉴权公开静态目录;每次访问校验 generation 的用户归属。JSON/HTMX 均不得跨用户查询。
26. Provider API Key 用 AES-GCM 加密,保存 key_id;明文不进日志、响应、工单、Wiki、原型或截图。轮换必须可区分旧/新密钥并可回退。
26. Provider API Key 用 AES-GCM 加密;`api_key_enc` 是带 version、key_id、nonce、ciphertext 的版本化信封,主密钥不入库。明文不进日志、响应、工单、Wiki、原型或截图;轮换必须可区分旧/新密钥并可回退。
27. 管理端配置、真实连通性测试、点数调整和密钥轮换写审计日志;错误和 attempts 只保留排障需要的信息。
### 点数与范围
+3 -3
View File
@@ -2,8 +2,8 @@
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Product-Requirements-Overview
wiki_url: https://git.ilapage.cn/OPC/chorus/wiki/Product-Requirements-Overview.-
wiki_revision: 4c7c9352f77e5972be4fa51f0b86025d9d08ea53
synchronized_at: 2026-08-20T07:01:33Z
wiki_revision: 8b37c55fc3231b78c9b0a9d8cd99ce6e7357c312
synchronized_at: 2026-08-20T07:04:43Z
<!-- gitea-wiki-mirror:end -->
# 产品需求总览
@@ -136,7 +136,7 @@ MVP-0 导航只显示已实现的生成入口、必要账户操作和退出;
交互验收:
- 375、768、1024px 和桌面宽屏均无不合理横向滚动、遮挡和文字溢出;
- 交互目标至少 44×44px,输入有持久 label,错误不只靠颜色;
- 交互目标至少 44×44px,输入有持久 label,错误不只靠颜色;正文对比度至少 4.5:1,非文本控件/焦点边界至少 3:1;
- 图标按钮使用既有 Lucide/Element Plus 图标并有可访问名称;
- 所有功能可键盘操作;MVP-1 拖拽提供上移/下移等价操作;
- 路由/片段替换后管理焦点,状态更新使用合适的 `aria-live`,toast 不抢焦点;