# 后台创作入口开关操作入口 日期:2026-05-11 ## 背景 创作中心入口配置已经迁移到 SpacetimeDB,前端创作中心与 api-server 路由熔断共用同一份入口配置。为了让运营/管理员可以调整这张开关表,需要在后台提供显式操作入口,而不是只通过数据库表查询或手工 reducer 操作。 ## 后台入口 后台新增导航: - 名称:入口开关 - hash:`#creation-entry` - 页面:`apps/admin-web/src/pages/AdminCreationEntrySwitchPage.tsx` 页面能力: - 读取当前入口开关表。 - 编辑单个入口: - `id` - `title` - `subtitle` - `badge` - `imageSrc` - `visible` - `open` - `sortOrder` - 保存前复用后台写操作确认弹窗。 - 保存后重新用后端返回的配置刷新列表。 ## API 后台新增受管理员鉴权保护的接口: ```text GET /admin/api/creation-entry/config POST /admin/api/creation-entry/config ``` POST body: ```json { "id": "puzzle", "title": "拼图", "subtitle": "拼图关卡创作", "badge": "可创建", "imageSrc": "/creation-type-references/puzzle.webp", "visible": true, "open": true, "sortOrder": 30 } ``` 响应统一返回当前全量入口列表,方便后台页面直接刷新本地状态。 ## 入库链路 ```text Admin Web -> api-server /admin/api/creation-entry/config -> AppState::upsert_creation_entry_type_config -> spacetime-client procedure upsert_creation_entry_type_config -> spacetime-module creation_entry_type_config 表 ``` `visible=false` 会让创作中心不展示对应入口;`open=false` 会让前端展示锁定态;api-server 的运行态熔断继续以 `visible && open` 判断路由是否可用。 ## 注意 - 前端后台页面只做管理表单,不成为配置事实源。 - `src/config/newWorkEntryConfig.ts` 不应恢复。 - SpacetimeDB client bindings 当前新增了对应临时 binding 文件;后续执行标准 bindings regenerate 时应覆盖并保持同名 procedure/type。