feat: 交付管理端 API Key 治理页面 #46

Closed
opened 2026-08-24 12:01:54 +08:00 by ila · 3 comments
Owner

基本信息

  • 类型:需求
  • 所属 Epic:#3
  • 所属 MVP / 版本:#35 / MVP-2
  • 阶段:已完成

原始需求

  • 来源:用户对话与已验收 #36/#37
  • 提出时间:2026-08-24
  • 脱敏摘要:面向现有受控用户交付安全的 API Key、OpenAPI 生成接口、限流、审计和必要管理页面;不开放注册、不自动删除数据、不增加计费或每日配额。

设计与原型门禁

  • 修改类型:生产实现
  • 已确认技术设计:Wiki Architecture-and-Code-Map,revision 1e8fea6c058d6d23f4a40183dd51708c8a4dae84
  • 已确认原型:prototypes/37/v1/index.html,#37 revision b65c47e5f701f67a8a06972e4f3e02c1f7bbd554
  • 状态:已确认(用户,2026-08-24)

依赖与并行

  • 前置工单:#45
  • 是否允许并行:否;依赖稳定管理 API。

要解决什么

按 #37 v1 在 go-admin-ui 增加 API Key 元数据列表、筛选、详情、脱敏审计摘要和撤销交互。

做什么 / 不做什么

  • 做:菜单/路由、列表与筛选、详情、状态、撤销确认、加载/空/错误/无权限状态、响应式与浏览器回归。
  • 不做:显示完整 Key、管理员创建 Key、页面内计费/配额、修改用户认证。

子项目影响

  • 影响:admin-ui;后端只使用 #45 契约。

验收标准

  • 列表和详情均不包含完整 Key,只显示前缀、状态和元数据。
  • 撤销确认和成功/失败反馈已按确认原型实现,用户验收通过。
  • 权限、空态、错误态已实现并由用户验收;四视口自动化仍记录为未执行。
  • admin-ui 单测和构建通过;浏览器 E2E 未执行的限制已知,用户验收通过。

文档影响

  • 更新管理员操作说明;不改变已确认业务规则。

风险和回退

前端不能缓存或拼接完整 Key;契约测试确保响应无敏感字段。回退菜单和页面不恢复已撤销 Key。

实施与验证证据(2026-08-25)

  • 实现:服务端分页筛选、元数据列表、详情安全事件、固定摘要字段白名单、幂等撤销确认、加载/空/错误/无权限状态及请求竞态保护。
  • 安全边界:页面不引用 public_id、secret_hash,不提供完整 Key 或管理员创建入口。
  • 前端:lint 无 error;14 suites、49 tests 全部通过;生产构建通过。
  • 运行:Supervisor chorus-admin-ui 已重启,页面入口 HTTP 200;未认证管理 API 返回 JSON 业务码 401。
  • 文档:Local-Development-and-Verification revision 31061a29cf4b73dee02b01d2bccd4a333c1abe2a;任务归档 revision c5b68c0ae2e951bb3fe918c125dc3d289ad31799。
  • 提交:d59c340。
  • 未验证:当前浏览器运行环境无可用实例,且受保护环境文件未提供管理端登录凭据,未执行登录态交互、375/768/1024/1440 截图或真实撤销。未调用真实 Provider,未修改或撤销现有用户密钥。

人工验收

  • 用户于 2026-08-25 明确验收通过。
  • 浏览器 E2E 与四视口自动化未执行的限制继续保留,不改写为已验证。
## 基本信息 - 类型:需求 - 所属 Epic:#3 - 所属 MVP / 版本:#35 / MVP-2 - 阶段:已完成 ## 原始需求 - 来源:用户对话与已验收 #36/#37 - 提出时间:2026-08-24 - 脱敏摘要:面向现有受控用户交付安全的 API Key、OpenAPI 生成接口、限流、审计和必要管理页面;不开放注册、不自动删除数据、不增加计费或每日配额。 ## 设计与原型门禁 - 修改类型:生产实现 - 已确认技术设计:Wiki Architecture-and-Code-Map,revision `1e8fea6c058d6d23f4a40183dd51708c8a4dae84` - 已确认原型:`prototypes/37/v1/index.html`,#37 revision `b65c47e5f701f67a8a06972e4f3e02c1f7bbd554` - 状态:已确认(用户,2026-08-24) ## 依赖与并行 - 前置工单:#45 - 是否允许并行:否;依赖稳定管理 API。 ## 要解决什么 按 #37 v1 在 go-admin-ui 增加 API Key 元数据列表、筛选、详情、脱敏审计摘要和撤销交互。 ## 做什么 / 不做什么 - 做:菜单/路由、列表与筛选、详情、状态、撤销确认、加载/空/错误/无权限状态、响应式与浏览器回归。 - 不做:显示完整 Key、管理员创建 Key、页面内计费/配额、修改用户认证。 ## 子项目影响 - 影响:`admin-ui`;后端只使用 #45 契约。 ## 验收标准 - [x] 列表和详情均不包含完整 Key,只显示前缀、状态和元数据。 - [x] 撤销确认和成功/失败反馈已按确认原型实现,用户验收通过。 - [x] 权限、空态、错误态已实现并由用户验收;四视口自动化仍记录为未执行。 - [x] admin-ui 单测和构建通过;浏览器 E2E 未执行的限制已知,用户验收通过。 ## 文档影响 - [x] 更新管理员操作说明;不改变已确认业务规则。 ## 风险和回退 前端不能缓存或拼接完整 Key;契约测试确保响应无敏感字段。回退菜单和页面不恢复已撤销 Key。 ## 实施与验证证据(2026-08-25) - 实现:服务端分页筛选、元数据列表、详情安全事件、固定摘要字段白名单、幂等撤销确认、加载/空/错误/无权限状态及请求竞态保护。 - 安全边界:页面不引用 `public_id`、`secret_hash`,不提供完整 Key 或管理员创建入口。 - 前端:lint 无 error;14 suites、49 tests 全部通过;生产构建通过。 - 运行:Supervisor `chorus-admin-ui` 已重启,页面入口 HTTP 200;未认证管理 API 返回 JSON 业务码 401。 - 文档:Local-Development-and-Verification revision `31061a29cf4b73dee02b01d2bccd4a333c1abe2a`;任务归档 revision `c5b68c0ae2e951bb3fe918c125dc3d289ad31799`。 - 提交:`d59c340`。 - 未验证:当前浏览器运行环境无可用实例,且受保护环境文件未提供管理端登录凭据,未执行登录态交互、375/768/1024/1440 截图或真实撤销。未调用真实 Provider,未修改或撤销现有用户密钥。 ## 人工验收 - 用户于 2026-08-25 明确验收通过。 - 浏览器 E2E 与四视口自动化未执行的限制继续保留,不改写为已验证。
Author
Owner

#46 已完成实现并进入待验收。

  • 提交:d59c340a78d0a0f387d7e02e7ac656d53c6242ee,已推送至 main
  • 前端:lint 无 error,14 suites / 49 tests 通过,生产构建通过
  • 运行:chorus-admin-ui 已重启,http://127.0.0.1:9528/ 返回 200
  • 文档:核心 Wiki revision 31061a29cf4b73dee02b01d2bccd4a333c1abe2a;任务归档 revision dca58f8051b63aec36e63af72ddd761622000b8e
  • 未验证:当前无可用浏览器实例且受保护环境未提供管理端登录凭据,登录态交互、四视口截图和真实撤销未执行;未调用真实 Provider,也未改动现有用户密钥

工单保持打开,等待人工验收。

#46 已完成实现并进入待验收。 - 提交:`d59c340a78d0a0f387d7e02e7ac656d53c6242ee`,已推送至 `main` - 前端:lint 无 error,14 suites / 49 tests 通过,生产构建通过 - 运行:`chorus-admin-ui` 已重启,`http://127.0.0.1:9528/` 返回 200 - 文档:核心 Wiki revision `31061a29cf4b73dee02b01d2bccd4a333c1abe2a`;任务归档 revision `dca58f8051b63aec36e63af72ddd761622000b8e` - 未验证:当前无可用浏览器实例且受保护环境未提供管理端登录凭据,登录态交互、四视口截图和真实撤销未执行;未调用真实 Provider,也未改动现有用户密钥 工单保持打开,等待人工验收。
Author
Owner

更正上一条评论中的完整提交哈希:正确值为 d59c3400d9997c3bc88a1f36bf365910e178c91c;短哈希仍为 d59c340,其余证据不变。

更正上一条评论中的完整提交哈希:正确值为 `d59c3400d9997c3bc88a1f36bf365910e178c91c`;短哈希仍为 `d59c340`,其余证据不变。
ila closed this issue 2026-08-25 10:40:04 +08:00
Author
Owner

人工验收收尾(2026-08-25)

  • 用户已明确确认 #46 验收通过,工单已关闭。
  • Wiki 任务归档已更新为“已完成”,revision:c5b68c0ae2e951bb3fe918c125dc3d289ad31799。
  • 父工单 #35、#3 已勾选 #46;父工单继续保持开启,等待 #47 集成验收。
  • 已知验证限制继续保留:本次未执行浏览器自动化与四视口截图验收;用户在知悉该限制后完成验收。
  • 实现提交:d59c3400d9997c3bc88a1f36bf365910e178c91c。
## 人工验收收尾(2026-08-25) - 用户已明确确认 #46 验收通过,工单已关闭。 - Wiki 任务归档已更新为“已完成”,revision:`c5b68c0ae2e951bb3fe918c125dc3d289ad31799`。 - 父工单 #35、#3 已勾选 #46;父工单继续保持开启,等待 #47 集成验收。 - 已知验证限制继续保留:本次未执行浏览器自动化与四视口截图验收;用户在知悉该限制后完成验收。 - 实现提交:`d59c3400d9997c3bc88a1f36bf365910e178c91c`。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/chorus#46