Admin Portal

把新增模型、导入帐号与 Route 收进同一套入口

当前版本统一从 /portal/admin/ 进入:一边看 pack/provider 目录、做 preview/import, 一边继续保留 item 级 reused / reactivated / replaced 的 batch-import 结果面板。 所有写操作都走 CRM /portal-admin-api,浏览器不直连 Git。

统一入口

/portal/admin/

默认同域走 /portal-admin-api/

Logical Group

/logical-groups

logical_group · public_model · route

Provider 目录

/providers

preview-import · manifest 草稿

核心模块

每个模块都对应一个 admin 页面 + 同一套 API base(/portal-admin-api)。

逻辑分组 / 路由

logical_group · public_model · route · shadow_*

运行中

给插件前置路由使用,维护 logical_grouppublic_modelrouteshadow_host_id / shadow_group_id 的关系。当前首版已经能直接调 /api/logical-groups 系列接口,适合先把 canonical shadow route 收进统一管理面。

打开逻辑分组页 首版页面只覆盖新增与查看

新增模型 / 供应商目录

pack · provider · preview · manifest draft

推荐入口

这页负责浏览已安装 pack、选择 provider、调用 preview-import / import, 同时提供 provider manifest 草稿生成与发布。当前版本已经支持先保存草稿,再经由 CRM 服务端写入 pack/provider 文件并自动提交到仓库。

Route 健康视图

healthy · cooldown · failing · disabled

只读

这页专门给运营看 route 当前运行状态,聚合 routefailroutecool、 最近一次选路与 failover 事件。首版只做只读健康视图,不在这里直接改 route。

帐号资产

logical_group · route · shadow_group · shadow_host

库存

把导入结果收成插件侧 provider_accounts 库存,直接展示帐号属于哪个 logical_group / route / shadow_group / shadow_host,并提供人工 enable / disable / retire 动作。启停动作当前只修改插件库存状态,不直接改宿主 account 记录。

导入供应商帐号

reused · created · reactivated · replaced

实时

这页继续负责 live batch-import:创建 run、拉取 run summary、查看 item 级别的 matched_account_stateaccount_resolution。批量导入第三方 key,验证 reused / created / reactivated / replaced 状态语义。

当前边界与安全前提

明确告诉你"哪里能写、哪里只读、谁有权限",避免误操作。

可立即使用

逻辑分组 + Provider 导入

依赖现有 /api/logical-groups/api/packs/api/providers/*/api/batch-import/* 即可完成。

当前边界

浏览器提交到 CRM,再由 CRM 写仓库

页面不会直接拼 Git 命令;所有写 pack/provider 与提交仓库的动作,都统一走 CRM 服务端的发布接口。

安全前提

仍需 Admin Token

CRM 的 API 权限仍由 Bearer token 控制,同域反代只解决浏览器可达性,不降低鉴权门槛。

管理员会话

可在此处建立 session 检查当前鉴权状态,或留作跨页签到。

同域走 /portal-admin-api,调试时可改成完整 URL。
已登录管理员 session 时可不填。
点击「检查会话」可拉取 /api/admin/session