267 lines
6.4 KiB
Markdown
267 lines
6.4 KiB
Markdown
# sub2api-cn-relay-manager 前端 Acceptance Matrix(2026-06-01)
|
||
|
||
日期:2026-06-01
|
||
|
||
## 目的
|
||
|
||
把前端相关的可重跑入口从 `EXECUTION_BOARD.md` 的历史记录里剥出来,形成统一矩阵:
|
||
|
||
- 哪个页面对应哪个脚本
|
||
- 哪些脚本是本地门禁
|
||
- 哪些脚本是 live CRM / live portal 读写验收
|
||
- 哪些页面当前只有只读验收,哪些已经有动作级验收
|
||
|
||
## 总入口
|
||
|
||
统一矩阵脚本:
|
||
|
||
```bash
|
||
bash ./scripts/acceptance/verify_frontend_acceptance_matrix.sh
|
||
```
|
||
|
||
默认行为:
|
||
|
||
- 总是执行:
|
||
- `scripts/test/verify_frontend_smoke.sh`
|
||
- `scripts/acceptance/verify_portal_catalog_ui.sh`
|
||
- 显式开启 `RUN_PUBLIC_PORTAL_BROWSER=1` 时执行:
|
||
- `scripts/acceptance/verify_public_portal_browser.sh`
|
||
- 当提供 CRM 鉴权时执行:
|
||
- `scripts/acceptance/verify_accounts_admin_ui.sh`
|
||
- 当同时提供 route data-plane 依赖时执行:
|
||
- `scripts/acceptance/verify_route_acceptance_matrix.sh`
|
||
- 当同时提供 provider import 依赖时执行:
|
||
- `scripts/acceptance/verify_provider_admin_actions.sh`
|
||
|
||
产物目录:
|
||
|
||
```text
|
||
artifacts/frontend-acceptance-matrix/<timestamp>_frontend_matrix/
|
||
browser_smoke/
|
||
portal_catalog/
|
||
portal_public_browser/
|
||
accounts_admin/
|
||
route_matrix/
|
||
provider_admin/
|
||
summary.json
|
||
```
|
||
|
||
若某一步缺少环境变量,会被标记为 `skipped`,并把原因写进 `summary.json`。
|
||
|
||
## 页面到脚本映射
|
||
|
||
### 1. 用户 Portal `/portal/`
|
||
|
||
脚本:
|
||
|
||
- `bash ./scripts/test/verify_frontend_smoke.sh`
|
||
- `bash ./scripts/acceptance/verify_portal_catalog_ui.sh`
|
||
- `RUN_PUBLIC_PORTAL_BROWSER=1 bash ./scripts/acceptance/verify_frontend_acceptance_matrix.sh`
|
||
- `bash ./scripts/acceptance/verify_public_portal_browser.sh`
|
||
|
||
验证范围:
|
||
|
||
- 页面可打开
|
||
- `逻辑分组目录` 标题存在
|
||
- `申请 Key 依赖状态` 与五种产品语义存在:
|
||
- `可直接申请`
|
||
- `可申请,调用前需确认状态`
|
||
- `待补开通`
|
||
- `待人工整理`
|
||
- `仅目录可见`
|
||
- `GET /api/portal/logical-groups`
|
||
- `GET /api/portal/logical-groups/{group_id}/models`
|
||
- 可选:当提供 `PORTAL_ACCESS_TOKEN` 时,继续验证:
|
||
- `/auth/me`
|
||
- `/groups/available`
|
||
- `/subscriptions`
|
||
- `/keys?page=1&page_size=20`
|
||
|
||
说明:
|
||
|
||
- 这是只读验收,不会创建临时用户或改写宿主状态
|
||
- `verify_public_portal_browser.sh` 额外用 headless `chromium` 对公网或 SSH 隧道页面做 DOM 回读
|
||
- 若要重跑历史的 entitlement 真验,仍需要回看 `EXECUTION_BOARD.md` 中的 remote43 记录
|
||
|
||
### 2. 管理首页 `/portal/admin/`
|
||
|
||
脚本:
|
||
|
||
- `bash ./scripts/test/verify_frontend_smoke.sh`
|
||
|
||
验证范围:
|
||
|
||
- 页面可打开
|
||
- 管理导航存在
|
||
- 管理员 session 视图可渲染
|
||
|
||
说明:
|
||
|
||
- 这是入口页,不单独承载 CRM 写操作
|
||
|
||
### 3. Logical Group Admin
|
||
|
||
脚本:
|
||
|
||
- `bash ./scripts/test/verify_frontend_smoke.sh`
|
||
- `bash ./scripts/acceptance/verify_route_control_plane.sh`
|
||
- `bash ./scripts/acceptance/verify_route_acceptance_matrix.sh`
|
||
|
||
验证范围:
|
||
|
||
- 页面可打开
|
||
- `logical_group / route / route_model` 创建与回读
|
||
- `GET /api/logical-groups/{group_id}`
|
||
- `GET /api/logical-groups/{group_id}/routes`
|
||
- `GET /api/logical-groups/{group_id}/routes/{route_id}/models`
|
||
|
||
说明:
|
||
|
||
- `verify_route_control_plane.sh` 是这页最核心的 live acceptance
|
||
|
||
### 4. Route Health Admin
|
||
|
||
脚本:
|
||
|
||
- `bash ./scripts/test/verify_frontend_smoke.sh`
|
||
- `bash ./scripts/acceptance/verify_route_health_ui.sh`
|
||
- `bash ./scripts/acceptance/verify_route_acceptance_matrix.sh`
|
||
|
||
验证范围:
|
||
|
||
- 页面可打开
|
||
- route health 页面标题存在
|
||
- cooldown / failure 注入
|
||
- `GET /api/routing/routes/health`
|
||
- `POST /api/routing/resolve`
|
||
- `GET /api/routing/logs/failovers`
|
||
|
||
### 5. Provider Accounts Admin
|
||
|
||
脚本:
|
||
|
||
- `bash ./scripts/test/verify_frontend_smoke.sh`
|
||
- `bash ./scripts/acceptance/verify_accounts_admin_ui.sh`
|
||
- 可选:结合历史 remote43 证据回看 `EXECUTION_BOARD.md`
|
||
|
||
验证范围:
|
||
|
||
- 页面可打开
|
||
- `GET /api/provider-accounts`
|
||
- `GET /api/provider-accounts/{account_id}/binding-candidates`
|
||
|
||
当前边界:
|
||
|
||
- 当前脚本默认是只读验收
|
||
- `enable / disable / retire / binding / clear-binding` 的历史真验证据已存在,但还没有独立的“默认无副作用可重跑脚本”覆盖整条动作链
|
||
|
||
### 6. Provider Admin
|
||
|
||
脚本:
|
||
|
||
- `bash ./scripts/test/verify_frontend_smoke.sh`
|
||
- `bash ./scripts/acceptance/verify_provider_admin_actions.sh`
|
||
- `bash ./scripts/acceptance/verify_frontend_acceptance_matrix.sh`
|
||
|
||
验证范围:
|
||
|
||
- 页面可打开
|
||
- 目录加载
|
||
- `preview-import`
|
||
- `import`
|
||
- draft `save / update / delete / publish`
|
||
|
||
### 7. Batch Import Admin
|
||
|
||
脚本:
|
||
|
||
- `bash ./scripts/test/verify_frontend_smoke.sh`
|
||
|
||
说明:
|
||
|
||
- 当前矩阵中它先由浏览器级 smoke 挂住页面可达、会话、主动作区
|
||
- 更深的 batch-import 行为仍主要通过已有历史真验证据与执行板记录解释
|
||
|
||
## 推荐执行顺序
|
||
|
||
### 最小本地门禁
|
||
|
||
```bash
|
||
bash ./scripts/test/test_tksea_portal_assets.sh
|
||
bash ./scripts/test/verify_frontend_smoke.sh
|
||
```
|
||
|
||
### 前端统一矩阵
|
||
|
||
```bash
|
||
bash ./scripts/acceptance/verify_frontend_acceptance_matrix.sh
|
||
```
|
||
|
||
### route / provider 深验
|
||
|
||
```bash
|
||
bash ./scripts/acceptance/verify_route_acceptance_matrix.sh
|
||
bash ./scripts/acceptance/verify_provider_admin_actions.sh
|
||
```
|
||
|
||
## 环境变量
|
||
|
||
### 仅跑 portal + browser smoke
|
||
|
||
- 无必填 CRM 变量
|
||
|
||
可选:
|
||
|
||
- `PORTAL_PAGE_URL`
|
||
- `PORTAL_CATALOG_BASE`
|
||
- `PORTAL_PROXY_BASE`
|
||
- `PORTAL_ACCESS_TOKEN`
|
||
- `RUN_PUBLIC_PORTAL_BROWSER=1`
|
||
- `PUBLIC_PORTAL_PAGE_URL`
|
||
- `PUBLIC_PORTAL_CATALOG_BASE`
|
||
- `PUBLIC_PORTAL_PROXY_BASE`
|
||
|
||
### 加跑 accounts
|
||
|
||
必填:
|
||
|
||
- `CRM_BASE`
|
||
- `CRM_ADMIN_TOKEN`
|
||
|
||
或:
|
||
|
||
- `CRM_BASE`
|
||
- `CRM_ADMIN_USERNAME`
|
||
- `CRM_ADMIN_PASSWORD`
|
||
|
||
### 加跑 route matrix
|
||
|
||
除 CRM 鉴权外,还需要:
|
||
|
||
- `SHADOW_HOST_ID`
|
||
- `SHADOW_GROUP_ID`
|
||
- `SUBSCRIPTION_USER_ID`
|
||
|
||
或:
|
||
|
||
- `GATEWAY_API_KEY`
|
||
|
||
### 加跑 provider admin actions
|
||
|
||
除 CRM 鉴权外,还需要:
|
||
|
||
- `ACCESS_API_KEY`
|
||
- `PROVIDER_KEYS`
|
||
|
||
## 当前结论
|
||
|
||
截至 2026-06-01:
|
||
|
||
- `portal / logical-groups / route-health / accounts / providers` 已经都有统一入口可追
|
||
- 入口强度不完全相同:
|
||
- `logical-groups / route-health / providers` 的动作级验收更完整
|
||
- `portal / accounts` 当前统一入口先以只读回读为主
|
||
- 后续如果继续收口,最值得补的是:
|
||
- `accounts` 的启停/归属动作无副作用可重跑验收
|
||
- `batch-import` 的页面级独立 acceptance
|