feat(scripts): automate real-host access prep closure

This commit is contained in:
phamnazage-jpg
2026-05-19 13:58:03 +08:00
parent 85d495dd16
commit 0ecce50a48
6 changed files with 628 additions and 0 deletions

View File

@@ -91,6 +91,31 @@ SUBSCRIPTION_DAYS=30 \
scripts/real_host_acceptance.sh
```
### 5. 导入后自动补 access 前置(可选)
当真实宿主需要额外完成“普通用户余额 / key-group 绑定 / 订阅写入 / 缓存失效”等宿主侧动作时,可在 import 完成后插入自定义 hook
```bash
AFTER_IMPORT_HOOK_COMMAND='bash /path/to/host-access-hook.sh' \
... \
scripts/real_host_acceptance.sh
```
hook 执行时会额外导出:
- `BATCH_ID`
- `BATCH_DETAIL_FILE`(若非 dry-run会指向 `05a-batch-detail-pre-access.json`
- `PROVIDER_ID`
- `HOST_BASE_URL`
- `CRM_BASE_URL`
- `ACCESS_MODE`
- `MODE`
- `ARTIFACT_DIR`
标准产物会新增:
- `05a-batch-detail-pre-access.json`
- `05b-after-import-hook.stdout.txt`
- `05b-after-import-hook.stderr.txt`
## 产物
脚本会把每一步 JSON 响应落到:
@@ -105,6 +130,8 @@ artifacts/real-host-acceptance/<timestamp>/
- `03-install-pack.json`
- `04-preview-import.json`
- `05-import.json`
- `05a-batch-detail-pre-access.json`(若拿到了 `batch_id` 且非 dry-run
- `05b-after-import-hook.stdout.txt` / `05b-after-import-hook.stderr.txt`(若配置了 hook
- `06-access-preview.json`
- `07-access-status.json`
- `08-provider-status.json`
@@ -151,3 +178,4 @@ SKIP_ROLLBACK=1 scripts/real_host_acceptance.sh
7. `self_service` 验证除普通用户 key 外,还需要该 key 绑定目标 group若目标 group 是标准计费组,还需要用户侧具备可用余额,否则 `/v1/models` 可能从“未授权”转为 `INSUFFICIENT_BALANCE`
8. `subscription` 验证需要目标 group 本身是 `subscription` 类型,并且完成“普通用户订阅分配 + 普通用户 key 绑定该 group”仅有管理员主体或未绑定 key 不足以通过 `/v1/models`
9. 若需要验证 `reconcile` 收敛,优先在干净宿主场景或隔离 group 下执行,避免历史残留资源把结果污染成 `status=drifted` / `extra_count>0`
10. `scripts/import_remote43_provider.sh` 现已内置 remote43 的 subscription 验收补全动作:会根据 import batch 自动解析目标 group执行“普通用户最低余额补齐 + key/group 绑定 + user_subscriptions upsert + Redis flush”并把 SQL / host state 证据写入 artifact 目录。