「API 管理」页改版方案

状态:2026-10-03 用户确认,第 6 节六条全部定(资源上限缺省 50、可配 1–200;资源选择器前端分类加载;「最近使用」放 P2 之后;按范围授权与轮换宽限期本期不做;「团队的 Key」接口排进 P2)。界面部分并入 P2 实施清单 docs/api-key-p2-call-surface.md。起因是用户 2026-10-03 提的四件事:每把 Key 的资源上限可配置;代码采集点的推送 Key 挪到「代码采集」页;老 Key 折叠为 Legacy;资源有几十上百个时,现在的页面与按类型下拉框选资源的方式都不好用。 上游:docs/api-key-convergence.md 2.4(「智能体」资源 Key、团队编辑者可列出与吊销)、docs/resource-key-multi-resource.md(一把 Key 多资源)。 智能体对话框里的快捷关联见 agent-api-dialog/redesign.html 3.1,与本文共用「创建 Key」对话框与资源选择器。 页面代码:aimp-platform/packages/ui/src/views/apikey/,代码采集 views/code/pages/CollectorList.jsx。

截图是本机 2026-10-03 的整页截图(1440×900,含左侧约 220px 导航),账号 A、团队「数据库团队」(1111),Key 与资源都是真实数据,老 Key 原文已遮盖。 示意图画的是内容区(不含左侧导航,宽约 1180px)或单个对话框、抽屉,各图下写明;橙色是示例数据。

1. 现状

API 管理页顶部现状

图 1 现状:「API 管理」页顶部(整页截图)。表格前几行是已撤销的工具服务授权,没有明文 Key。

创建资源 Key 对话框现状

图 2 现状:「创建资源 Key」对话框(整页截图)。「用途」单选下是四个按类型的下拉多选框。

代码采集页现状

图 3 现状:「代码采集」页(整页截图),四个采集点,每行「签 Key」跳到 API 管理。

API 管理页老 Key 表现状

图 4 现状:页面滚到底部,资源 Key 区末尾与老 Key 表(整页截图)。

2. 改动一览

位置改动建议归属
资源 Key 列表一把 Key 一行,资源只显示按类型的计数;默认只显示有效的,可切到已过期、已撤销;按名称搜索;分页(3.1)P2
Key 详情右侧抽屉:Key、元信息、按类型分组的资源清单(逐个移出、添加)、轮换与撤销(3.2)P2
资源选择器一个选择器选所有类型:左侧类型、上方关键字与团队筛选、中间可勾选的表格、右侧已选清单与上限计数;创建与「添加资源」共用(3.3)P2
创建 Key两步:名称与有效期 → 选资源;去掉「用途」单选(3.4)P2
工具服务授权不在 API 管理页显示。状态在应用的「发布为工具」处查看,停用就下线工具或删除应用(3.1)P2
老 Key移到页面底部折叠区「Legacy API Keys」,默认收起;去掉「导入」「创建 Key」(3.1)P2(方案第 7 节已排)
采集点推送 Key从 API 管理移出,在「代码采集」页每行签发、查看、轮换、吊销(第 4 节)P2
资源上限改为平台设置项,管理员在 API 管理页「设置」里改;平台设置写接口补管理员校验(3.5)P2
「团队的 Key」视图列出别人签发、但授权了我有编辑权限的团队资源的 Key,只能吊销(方案 2.4 已定)P2,需新接口(已定)
「最近使用」列见第 6 节第 3 条P2 之后(已定)
轮换宽限期、按团队整体授权本期不做(第 6 节第 4、5 条)不做

列表、抽屉、资源选择器建议放进 P2,不单独排期。理由:P2 加「智能体」类型后,按现在的做法就是第五个下拉框;而资源到了几十上百个时,下拉框本身就是用户提出的问题。

3. 资源 Key

3.1 页面结构

平台管理 / API 管理
API Keys开放接口
API Keys设置+ 创建 Key
外部系统用 API Key 调用你授权的智能体、知识应用、知识源、代码应用和代码系统。Key 是个人凭证,只有签发人能查看明文;每把 Key 最多授权 50 个资源。
我的 Key团队的 Key有效 21已过期 3已撤销 9按名称搜索
名称Key授权资源到期创建时间
工单系统集成ai••••••••k3Xq 复制智能体 2知识应用 1代码应用 1长期有效2026-10-03详情 ⋯
aimeter 代码助手调用(验收)ai••••••••d1Rws 复制代码应用 1长期有效2026-09-26详情 ⋯
aimeter 交易码写入(验收)ai••••••••NFNGw 复制代码系统 1长期有效2026-09-26详情 ⋯
code-open-smokeai••••••••EXMi8 复制代码应用 1长期有效2026-09-16详情 ⋯
delivery-push-cp3-final-delivery-1789299049aimp_res_…4uyM 需轮换后才能复制知识源 1长期有效2026-09-13详情 ⋯
CP3-invoke-primaryaimp_res_…_Y4I 需轮换后才能复制知识应用 1长期有效2026-09-13详情 ⋯
第 1–20 条,共 21 条 ‹ 1 2 ›
代码采集点的推送 Key 在「代码管理 → 代码采集」里管理。
▸ Legacy API Keys1 把 · 已停止新建,新的外部调用请创建上方的 API Key

图 5 方案:「API 管理」页内容区(不含左侧导航)。除第一行外都是账号 A 的真实 Key,计数是本机实数;第一行是一把多资源 Key 的示例。上限 50 是已定的缺省值(3.5)。

3.2 Key 详情抽屉

工单系统集成有效
Keyai••••••••k3Xq 查看 复制 签发人你 创建2026-10-03 21:40 到期长期有效 版本3
授权资源 4 / 50+ 添加资源
智能体
rag_test数据库团队 · 已发布 v1移出
code_agent数据库团队 · 已发布 v1移出
知识应用
CP3核心知识应用 cp3-app-20260913-02数据库团队API 调试移出
代码应用
aimeter 代码助手数据库团队API 调试移出
轮换撤销

图 6 方案:Key 详情抽屉(只画抽屉)。四个资源与所属团队是本机真实数据,Key 名、时间、版本号是示例。

3.3 资源选择器

资源多时,问题在三处:找得到(筛选)、看得清(状态与团队)、核得对(已选清单)。选择器按这三处设计,「创建 Key」第二步与详情抽屉的「添加资源」共用,智能体对话框不用它(那里只关联本智能体)。

添加资源 · 工单系统集成
全部69
智能体13
知识应用14
知识源17
代码应用23
代码系统2
搜索名称或 ID团队:数据库团队 ▾只看已选
名称类型团队状态
rag_test工作流数据库团队已发布 v1
code_agent单智能体数据库团队已发布 v1
cp3-agent-validation-single-agent-1789297393793单智能体数据库团队已发布
cp3-agent-validation-agentnode-v2-1789297410433-definition单智能体数据库团队已发布
cp3-agent-validation-single-agent-1789297159904单智能体数据库团队已发布
… 共 13 个,第 1 页
已选 4 / 50
智能体
rag_test×
code_agent×
知识应用
CP3核心知识应用 cp3-app-…已授权
代码应用
aimeter 代码助手已授权
取消添加 2 个资源

图 7 方案:资源选择器,从详情抽屉的「添加资源」打开(只画对话框)。智能体名称、类型与数量 13 是本机已发布的真实数据;知识应用、知识源、代码应用的数字是数据库团队的资源总数,没有按「已发布」过滤,所以标橙。

3.4 创建 Key

  1. 第一步:名称;有效期改为预设项(长期有效、30 天、90 天、1 年、自定义),缺省仍是长期有效,与现在留空的行为一致。
  2. 第二步:资源选择器(3.3),至少选 1 个。
  3. 创建后弹现有的明文对话框,只显示一次。

「用途」单选去掉:代码采集点的 Key 改在「代码采集」页签发(第 4 节)。从智能体对话框「签发新 Key」进来时跳过第二步,资源固定为该智能体。

创建 API Key
① 名称与有效期② 选择资源
名称
工单系统集成
有效期
长期有效30 天90 天1 年自定义
签发后明文只显示一次。Key 是个人凭证,只有你能查看明文;授权资源所属团队有编辑权限的成员可以吊销它。
取消下一步:选择资源

图 8 方案:「创建 API Key」第一步(只画对话框)。第二步就是图 7 的资源选择器,标题换成「创建 API Key · ② 选择资源」。

3.5 资源上限改为平台设置

API Key 设置
每把 Key 最多授权的资源数
50
范围 1–200。调低后已有的 Key 照常可用,超出上限的只能移出资源、不能再添加。签发与调整资源时逐个核验资源,上限越高,一次签发越慢。
只有平台管理员可以修改。上次修改:<管理员账号> · 2026-10-03
取消保存

图 9 方案:管理员点「设置」后的对话框(只画对话框)。50 与范围 1–200 是已定值,修改记录是示例。

4. 代码采集点的推送 Key

采集点 Key 只服务采集端:一个采集点一把,Key 本身就是采集点的身份。它跟着采集点的生命周期走(登记、签发、配进采集端、停用),放在「代码采集」页,一行就能看清这台机器的状态。数据不动:同一张 wf_resource_grant、同一组接口,只换入口。

代码管理 / 代码采集
名称主机提示状态上次心跳解析器版本名下服务推送 Key操作
test—正常从未上报未知尚未上报服务签发停用
aimeter-collectorlocalhost心跳超时5 天前0.7.0ai••••4XfSE · 其他成员签发 吊销停用
code-collector-a1a3-smokelocalhost心跳超时17 天前0.1.0尚未上报服务ai••••cpfKY 查看 轮换 吊销停用
code-collector-local-01127.0.0.1心跳超时17 天前0.1.0尚未上报服务签发停用

图 10 方案:「代码采集」页内容区(不含左侧导航),虚线框是新增的「推送 Key」列。四个采集点、两把 Key 的归属与掩码都是本机真实数据(aimeter-collector 的 Key 由另一个账号签发)。

5. 候选方案与取舍

5.1 资源多时怎么选资源

方案做法代价结论
A维持按类型的下拉多选框,加第五个「智能体」五个框各自加载全量;不能按团队、状态筛;已选项以标签堆在框里,几十个时核对困难否决
B统一资源选择器(3.3)新组件;跨类型的数量与筛选要在前端拼,类型多了以后可能要服务端聚合接口推荐
C按范围授权:Key 授权「团队 T 的全部智能体」,以后新建的自动包含授权范围随资源增减自动变化,Key 泄露的影响面无法事先确定;resources 要支持通配项,运行时校验改为按团队判;与「API Key 只能调授权给它的资源」的访问原则要重新对齐本期不做,见第 6 节第 4 条
D只从资源侧授权:在智能体、知识应用页面上「授权给某把 Key」一把 Key 授权了哪些资源只能逐个页面去看,没有总览作为 B 的补充:智能体对话框已有(agent-api-dialog 3.1),不替代 B

5.2 参考的产品做法

以下只写结构上的做法;没有联网核对的具体数值标【待确认】。

产品做法本方案借鉴的本方案不做的
GitHub fine-grained personal access token资源范围有「全部仓库」与「只选部分仓库」两种,选部分时用可搜索的多选;权限按类别逐项选;列表显示到期与最近使用;到期缺省值与可选档位【待确认】资源与权限分开;列表只放摘要「全部仓库」这类范围授权(5.1 方案 C)
OpenAI Platform API keys列表列为名称、掩码 Key、创建时间、最近使用、创建人、权限;明文只在创建时显示一次列表列的取舍;「最近使用」(第 6 节第 3 条)—
Stripe restricted keys按资源逐项给权限;轮换时可以让旧 Key 再保留一段时间,档位【待确认】—轮换宽限期(第 6 节第 5 条)
Cloudflare API tokens列表行显示权限与资源摘要;创建时最后一步是汇总确认;可从模板创建列表摘要;创建前汇总(第二步的已选清单承担这个作用)模板

5.3 被否决的其他做法

做法否决原因
限制每人只能有一把 Key不同外部系统要能分别吊销;一把 Key 泄露时影响面应只限于一个系统
工具服务授权留在 API 管理页(主列表或底部折叠区)它不是用户签发、分发的 Key,没有明文,生命周期跟着「发布为工具」走;在这里撤销等于下线工具,入口放错了地方。本机 30 条里 28 条已撤销,留着只是噪音
采集点 Key 留在 API 管理,只在「代码采集」页显示状态签发要先到采集点页、再跳 API 管理、再回来配采集端,三处来回;采集点 Key 不会与其他资源混在一把 Key 里,没有放在 API 管理的理由

5.4 关键取舍

6. 已定问题(2026-10-03 用户确认)

#问题影响结论
1资源上限的缺省值与可配范围缺省值决定不改设置时的行为;范围上限决定一次签发最多核验多少个资源已定(2026-10-03):缺省值 50,可配范围 1–200。每个资源的核验耗时尚未实测,P2 实施时在本机测一次(签一把多资源 Key、调整一次),据此定签发接口的超时与核验并发数—
2资源选择器的数据是前端分类加载,还是新增服务端聚合与搜索接口单类几百个以内前端加载够用;更多时首屏慢、关键字搜索不准已定(2026-10-03):前端按类型写死,每类沿用现有列表接口在前端加载,不新增服务端聚合与搜索接口。—
3加「最近使用」列能看出哪些 Key 早就没人用、可以清理(本机 16 把知识源 Key 大多是测试留下的)。代价:wf_resource_grant 加列;认证时写库,要节流(同一把 Key 5 分钟内只写一次)已定(2026-10-03):做,放在 P2 之后单独一步。—
4按范围授权(5.1 方案 C)资源上百时最省事,但授权范围不可预知已定(2026-10-03):本期不做;出现「一个外部系统要调整个团队全部资源」的需求时再议—
5轮换宽限期现在轮换后旧 Key 立即失效,外部系统切换期间会断已定(2026-10-03):本期不做,有需求时再议—
6「团队的 Key」需要的新接口是否排进 P2方案 2.4 已定「团队编辑者可列出并吊销」,现有列表接口只返回签发人自己的 Key已定(2026-10-03):排进 P2,与本页面一起交付—

7. 影响面

对象变化
views/apikey/index.jsx、ResourceKeys.jsx、ApiKeys.jsx页面结构、列表、筛选、Legacy 折叠区;删掉工具服务授权的展示分支(ResourceKeys.jsx:232);Legacy 表去掉新建与导入
views/apikey/ResourceSelection.jsx、resourceOptions.js、resourceTypes.js由按类型下拉框改为资源选择器;新增智能体类型;上限改从设置读
新增组件Key 详情抽屉、资源选择器、两步创建对话框(智能体对话框复用后两者)
views/code/pages/CollectorList.jsx、components/CollectorRows.jsx、components/ServiceEmptyState.jsx「推送 Key」列与就地签发;三处跳转改为页内操作
services/integration-access/resource-grants.ts上限从平台设置读;核验改为有限并发;list 只返回 purpose='external'(另一个调用方「开放接口」页的 views/kb/components/ApiKeyPicker.jsx 本来就只用对外 Key);新增「团队的 Key」查询
services/platform-setting/、controllers/platform-setting/白名单加 RESOURCE_KEY_MAX_RESOURCES;写入校验平台管理员
views/PlatformSettings列出新设置项

8. 下一步

界面部分与 agent-api-dialog 一起并入 P2 实施清单,按第 7 节拆提交;单个资源核验耗时在实施时实测(第 6 节第 1 条)。