Files
sub2api-cn-relay-manager/docs/ROUTE_ACCEPTANCE_MATRIX.md
2026-05-29 13:50:16 +08:00

166 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Route Acceptance Matrix
日期2026-05-29
## 目标
把 Phase 2 已经验证过的三类能力,收敛成固定入口和固定证据格式:
1. 控制面
2. 运行态 / 健康视图
3. 数据面
当前统一入口:
- `scripts/acceptance/verify_route_control_plane.sh`
- `scripts/acceptance/verify_route_health_ui.sh`
- `scripts/acceptance/verify_route_data_plane.sh`
- `scripts/acceptance/verify_route_acceptance_matrix.sh`
其中 `verify_route_acceptance_matrix.sh` 是总入口,会按顺序执行前三个脚本并汇总 `summary.json`
## 验收矩阵
### 1. 控制面
脚本:
- `scripts/acceptance/verify_route_control_plane.sh`
验证范围:
- 创建 `logical_group`
- 创建 `logical_group_model`
- 创建 `route`
- 创建 `route_model`
- `GET /api/logical-groups/{group_id}`
- `PUT /api/logical-groups/{group_id}`
- `PUT /api/logical-groups/{group_id}/routes/{route_id}`
- `GET /api/logical-groups/{group_id}/routes`
- `GET /api/logical-groups/{group_id}/routes/{route_id}/models`
最小输入:
- `CRM_BASE`
- `CRM_ADMIN_TOKEN`
主要产物:
- `01-create-group.json`
- `03-create-route.json`
- `06-update-group.json`
- `07-update-route.json`
- `10-summary.json`
### 2. 健康视图 / 运行态
脚本:
- `scripts/acceptance/verify_route_health_ui.sh`
验证范围:
- 公网 `route-health.html` 页面可达
- `POST /api/routing/sticky/cooldowns`
- `POST /api/routing/sticky/route-failures`
- `GET /api/routing/routes/health`
- `POST /api/routing/resolve`
- `GET /api/routing/logs/failovers`
最小输入:
- `CRM_BASE`
- `CRM_ADMIN_TOKEN`
- 可选 `ROUTE_HEALTH_PAGE_URL`
主要产物:
- `00-route-health.html`
- `08-health-before.json`
- `09-resolve.json`
- `10-health-after.json`
- `11-failovers.json`
- `12-summary.json`
### 3. 数据面
脚本:
- `scripts/acceptance/verify_route_data_plane.sh`
验证范围:
- 创建临时 `logical_group / route / route_model`
- `POST /api/routing/chat/completions`
- `GET /api/routing/logs/decisions`
最小输入:
- `CRM_BASE`
- `CRM_ADMIN_TOKEN`
- `SHADOW_HOST_ID`
- `SHADOW_GROUP_ID`
- 二选一:
- `SUBSCRIPTION_USER_ID`
- `GATEWAY_API_KEY`
补充说明:
- 若传 `SUBSCRIPTION_USER_ID`,期望 `effective_gateway_key_source=managed_subscription`
- 若传 `GATEWAY_API_KEY`,脚本仍可跑通,但这不覆盖“自动供给 managed key”场景
主要产物:
- `05-route-chat.json`
- `06-decision-logs.json`
- `07-summary.json`
## 总入口
脚本:
- `scripts/acceptance/verify_route_acceptance_matrix.sh`
它会创建:
```text
artifacts/phase2-routing-matrix/<timestamp>_route_matrix/
control_plane/
health_ui/
data_plane/
summary.json
```
`summary.json` 只保留最核心的摘要字段:
- `control_plane_group_id`
- `health_ui_group_id`
- `data_plane_group_id`
- `data_plane_request_id`
- `data_plane_upstream_status`
- `health_ui_resolve_route_id`
## remote43 推荐执行方式
如果要避免把真实 `CRM_ADMIN_TOKEN` 带回本地,推荐直接在 `remote43` 上执行:
```bash
cd /home/ubuntu/sub2api-kimi-patched-auto2-20260525_18169
set -a
. ./.env.crm
set +a
cd /home/ubuntu/sub2api-cn-relay-manager-git-current
CRM_BASE="https://sub.tksea.top/portal-admin-api" \
SHADOW_HOST_ID="<real-shadow-host-id>" \
SHADOW_GROUP_ID="<real-shadow-group-id>" \
SUBSCRIPTION_USER_ID="<managed-user-id>" \
bash ./scripts/acceptance/verify_route_acceptance_matrix.sh
```
## 当前边界
- 脚本只负责留证据和判断通过/失败,不负责清理临时 `logical_group`
- 数据面脚本当前仍依赖调用方提供真实 `shadow_host_id / shadow_group_id`
- 尚未覆盖“同公开模型双线路主备”的未来策略矩阵