docs: 完成任务 #46 待验收归档

ila
2026-08-25 10:35:47 +08:00
parent e4adbb06d9
commit dca58f8051
@@ -1,44 +1,59 @@
# 46 交付管理端 API Key 治理页面
> 历史兼容模板:标准任务以 Gitea 工单保存实现、测试、提交和验收证据,不再创建 Wiki 任务归档。仅在用户明确要求专项历史快照时使用本模板。
- 类型:需求 / 缺陷 / 重构
- 所属 Epic:#
- 所属 MVP / 版本:#
- 状态:待验收 / 已完成
- 类型:需求
- 所属 Epic:#3
- 所属 MVP / 版本:#35 / MVP-2
- 状态:待验收
- 日期:2026-08-25
- Gitea 工单:https://git.ilapage.cn/OPC/chorus/issues/46
- Wiki 页面:Task-46-交付管理端-API-Key-治理页面
- Wiki revision:见本地镜像头
- 实现提交:`d59c340`
## 背景与目标
<!-- 原来有什么问题,这次达到什么结果。 -->
按已确认的 #37 v1 原型,在 go-admin-ui 提供 API 密钥元数据列表、筛选、分页、详情安全事件和管理员撤销交互。管理端不能显示、缓存或拼接完整用户密钥,也不提供代用户创建密钥的能力。
## 最终方案
<!-- 说明实际实现。与建单方案不同之处必须写清原因。 -->
- 复用 `000006` 已建立并由 `000007` 中文化的“Chorus 运营 → API 密钥”菜单、角色与 Casbin 权限,不增加迁移。
- 列表使用 #45 的服务端分页与关键词/状态筛选契约,仅渲染用户、名称、固定前缀、状态和时间元数据。
- 详情只展示单条元数据及最近 20 条安全事件;审计摘要通过前端固定字段白名单再次约束。
- 有效密钥可执行撤销,操作前二次确认,成功后刷新列表;后端保持幂等。
- 加载、空结果、错误和无权限使用独立状态;表格在窄屏内滚动,工具栏按现有 Chorus 管理页面规范响应式换行。
- 请求并发使用序号防止较旧响应覆盖新筛选或新详情。
## 修改文件
## 修改范围
- `<文件>`:<改动说明>
- `admin-ui/src/api/chorus/index.js`:增加列表、详情和撤销 API 封装。
- `admin-ui/src/views/chorus/api-keys/`:治理页面与安全显示辅助函数。
- `admin-ui/tests/unit/chorus/`:分页、摘要白名单、敏感字段与中文标题回归。
- Local-Development-and-Verification Wiki 及镜像:增加管理员操作和验证说明。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| | 通过 / 未通过 |
| 列表和详情不包含完整 Key,只显示前缀、状态和元数据 | 通过源码约束、单测与 #45 后端契约测试 |
| 撤销确认与成功/失败反馈 | 已实现,待浏览器人工确认 |
| 权限、空态和错误态 | 已实现,待浏览器人工确认 |
| 375/768/1024/1440 无页面溢出 | 未验证:当前浏览器运行环境无可用实例 |
| admin-ui 单测与构建 | 通过 |
| 浏览器 E2E | 未验证:当前浏览器运行环境无可用实例 |
## 测试
- 执行命令:`<命令>`
- 结果:
- **未验证部分**:<!-- 必填;没有就写“无”。 -->
- `corepack pnpm lint`:通过,只有仓库既有 98 条 warning,无 error。
- `corepack pnpm exec vue-cli-service test:unit --runInBand`:14 suites、49 tests 全部通过。
- 临时设置 `NODE_OPTIONS=--max-old-space-size=4096` 后 `corepack pnpm build:prod`:通过;保留既有 Sass、codemirror 和包体积 warning。
- `python dev_scripts/harness.py check --strict`:通过。
- `python -m unittest discover -s tests -v`:43 项通过。
- `python dev_scripts/harness.py sync --check`:通过。
- Supervisor `chorus-admin-ui` 已重启且 HTTP 200;管理 API 未认证请求返回 JSON 业务码 401。
- 未验证部分:当前无可用浏览器实例,受保护环境文件也未提供管理端登录凭据,未执行登录态交互、四视口截图或真实撤销。未调用真实 Provider,未修改或撤销现有用户密钥。
## 遗留问题
## 文档
<!-- 没有就删除本节。 -->
- Local-Development-and-Verification revision:`31061a29cf4b73dee02b01d2bccd4a333c1abe2a`
## 相关提交
- `<提交哈希>` <提交说明>
- `d59c340` feat: 交付管理端 API 密钥治理页面 (#46)