feat(admin): publish provider drafts into pack repo
This commit is contained in:
@@ -45,6 +45,7 @@ SUB2API_CRM_ADMIN_TOKEN=change-me-before-production SUB2API_CRM_LISTEN_ADDR=127.
|
||||
| `SUB2API_CRM_ADMIN_TOKEN` | 控制面 Bearer token | `crm-admin-token` |
|
||||
| `SUB2API_CRM_LISTEN_ADDR` | 监听地址 | `:18081` |
|
||||
| `SUB2API_CRM_SQLITE_DSN` | SQLite DSN | `file:/tmp/sub2api-cn-relay-manager.db?_foreign_keys=on&_busy_timeout=5000` |
|
||||
| `SUB2API_CRM_REPO_ROOT` | provider 草稿发布到 pack/provider 文件时使用的仓库根目录 | `/home/ubuntu/sub2api-cn-relay-manager-git-20260528-bundle` |
|
||||
|
||||
## 公网 Portal 资产
|
||||
|
||||
@@ -63,7 +64,7 @@ SUB2API_CRM_ADMIN_TOKEN=change-me-before-production SUB2API_CRM_LISTEN_ADDR=127.
|
||||
- 统一提供“新增模型 / 供应商目录”和“导入供应商帐号”入口
|
||||
- `https://sub.tksea.top/portal/admin/providers.html`
|
||||
- provider 目录与 preview/import 管理页
|
||||
- 当前已支持通过 `provider_drafts` API 把 provider manifest 草稿持久化到 CRM SQLite,并直接更新 / 删除
|
||||
- 当前已支持通过 `provider_drafts` API 把 provider manifest 草稿持久化到 CRM SQLite,并直接更新 / 删除 / 发布到 pack 仓库
|
||||
- `https://sub.tksea.top/portal/admin/batch-import.html`
|
||||
- 结构化 batch-import 入口,当前跳到 legacy 最小管理页
|
||||
- `https://sub.tksea.top/portal/admin-batch-import.html`
|
||||
@@ -79,6 +80,26 @@ SUB2API_CRM_ADMIN_TOKEN=change-me-before-production SUB2API_CRM_LISTEN_ADDR=127.
|
||||
- 浏览器侧仍需 Bearer admin token
|
||||
- 作用是让静态 admin 页面不必直接访问 remote43 的内网 `18173`
|
||||
|
||||
当前 provider 草稿发布相关 API:
|
||||
|
||||
- `POST /api/provider-drafts`
|
||||
- `GET /api/provider-drafts`
|
||||
- `GET /api/provider-drafts/{draft_id}`
|
||||
- `PUT /api/provider-drafts/{draft_id}`
|
||||
- `DELETE /api/provider-drafts/{draft_id}`
|
||||
- `POST /api/provider-drafts/{draft_id}/publish`
|
||||
|
||||
`publish` 的运行前提:
|
||||
|
||||
- CRM 进程必须配置 `SUB2API_CRM_REPO_ROOT`
|
||||
- 该目录必须是真实 Git 仓库,而不是普通文件夹
|
||||
- 当前实现会原子完成:
|
||||
- 生成或更新 `packs/<pack_id>/providers/<provider_id>.json`
|
||||
- bump `pack.json` patch 版本
|
||||
- 更新 `checksums.txt`
|
||||
- 校验整个 pack
|
||||
- `git add` + `git commit`
|
||||
|
||||
兼容入口:
|
||||
|
||||
- `https://sub.tksea.top/kimi-portal/`
|
||||
|
||||
@@ -44,6 +44,21 @@
|
||||
- 新增 `DELETE /api/provider-drafts/{draft_id}`
|
||||
- 数据当前落到 CRM SQLite `provider_drafts` 表
|
||||
- `providers.html` 已可直接“保存到服务端”、回看历史草稿、以及更新 / 删除已保存草稿
|
||||
- 2026-05-28 已把“草稿一键生成 pack/provider 文件并提交到仓库”的发布链路补齐:
|
||||
- 新增 `POST /api/provider-drafts/{draft_id}/publish`
|
||||
- 发布动作会把草稿 canonicalize 成完整 `pack.ProviderManifest`
|
||||
- 服务端会原子执行:写 `providers/<provider_id>.json`、bump `pack.json` patch 版本、更新 `checksums.txt`、重跑整包校验、`git add` + `git commit`
|
||||
- 运行前提新增:`SUB2API_CRM_REPO_ROOT` 必须指向**真实 Git 仓库**
|
||||
- remote43 原本的 `/home/ubuntu/sub2api-cn-relay-manager` 只是普通目录,不带 `.git`;当前已改为指向基于本机 `git bundle` 拉起的真实 checkout:`/home/ubuntu/sub2api-cn-relay-manager-git-20260528-bundle`
|
||||
- 公网 `providers.html` 已新增“发布到仓库”按钮与 commit message 输入框
|
||||
- remote43 公网真验已通过:
|
||||
- `draft_id=draft_remote43_publish_smoke_1779924243`
|
||||
- `provider_id=smoke-publish-1779924243`
|
||||
- `provider_path=packs/openai-cn-pack/providers/smoke-publish-1779924243.json`
|
||||
- `pack_version=1.1.5 -> 1.1.6`
|
||||
- `publish_mode=created`
|
||||
- `commit_sha=d8d647e`
|
||||
- 远端 repo `HEAD` 与 API 返回 `commit_sha` 一致,说明 create -> publish -> git commit 已完整闭环
|
||||
- 线上无副作用验收已确认:
|
||||
- `GET /portal/` 返回 `200`
|
||||
- `GET /kimi-portal/` 返回 `302 -> /portal/`
|
||||
|
||||
Reference in New Issue
Block a user