From 31061a29cf4b73dee02b01d2bccd4a333c1abe2a Mon Sep 17 00:00:00 2001 From: ila <2+ila@noreply.git.ilapage.cn> Date: Tue, 25 Aug 2026 10:29:27 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=A2=9E=E5=8A=A0=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=AB=AF=20API=20=E5=AF=86=E9=92=A5=E6=93=8D=E4=BD=9C=E4=B8=8E?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E8=AF=B4=E6=98=8E=20(#46)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Local-Development-and-Verification.-.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Local-Development-and-Verification.-.md b/Local-Development-and-Verification.-.md index 7d01b94..42d73d0 100644 --- a/Local-Development-and-Verification.-.md +++ b/Local-Development-and-Verification.-.md @@ -522,3 +522,22 @@ go -C admin test -count=1 -run '^(TestAdminAPIKeyGovernanceMySQL|TestChorusAPIMy ``` 验证覆盖:生命周期事务审计、未知 Key 不写行、成功/拒绝/429 提交审计、summary 脱敏、`last_used_at` 节流、管理检索/详情、并发安全的幂等撤销、双审计和 JWT/Casbin 负向路径。管理 API 的真实 go-admin 鉴权失败沿用框架约定,可能返回 HTTP 200 且 JSON `code=401`;判断时必须同时检查响应 JSON,不能只看 HTTP 状态。 + + +## #46 管理端 API 密钥治理页面 + +管理员登录后,从“Chorus 运营 → API 密钥”进入治理页面。列表仅展示终端用户、密钥名称、固定前缀、状态和时间元数据,支持按用户编号/账号/密钥名称/前缀与状态筛选,并使用服务端分页。页面和浏览器缓存中都不会取得完整密钥、`public_id` 或 `secret_hash`,也不提供管理员创建用户密钥的入口。 + +“详情”读取单条元数据和最近 20 条脱敏安全事件;摘要只显示已审核的来源、类型、幂等结果和管理员编号。“撤销”必须经过二次确认,成功后立即刷新列表;重复请求保持幂等,但已撤销密钥不能恢复。没有权限、加载失败、空结果和加载中均有独立页面状态。 + +前端回归命令: + +```powershell +corepack pnpm --dir admin-ui lint +corepack pnpm --dir admin-ui exec vue-cli-service test:unit --runInBand +$env:NODE_OPTIONS = "--max-old-space-size=4096" +corepack pnpm --dir admin-ui build:prod +$env:NODE_OPTIONS = $null +``` + +浏览器验收需登录实际管理端,覆盖列表、筛选、详情、撤销确认的取消路径以及 375/768/1024/1440 四种视口;主页面不得横向溢出,表格在窄屏内自行滚动。真实撤销只对专门创建的合成测试密钥执行,不使用生产用户或真实凭据。