diff --git a/README.md b/README.md index c70b5ad..553b816 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ - [Phase 1 阶段报告](docs/phase-1-report.md) - [Phase 2 阶段报告](docs/phase-2-report.md) - [Phase 3 阶段报告](docs/phase-3-report.md) +- [Phase 4 CMS 阶段报告](docs/phase-4-report.md) - [TTS 上游资料请求清单](docs/TTS_UPSTREAM_REQUEST.md) 项目根目录:`E:\RD\Kaotings\www_site`,以本次新仓库为准。 diff --git a/docs/EXECUTION_PLAN.md b/docs/EXECUTION_PLAN.md index 25db97c..15cdee1 100644 --- a/docs/EXECUTION_PLAN.md +++ b/docs/EXECUTION_PLAN.md @@ -81,6 +81,8 @@ Phase 1 当前可在本地继续开发,也可在测试机仅部署官网骨架 ### Phase 4:CMS 与管理后台 +当前状态:P4-01/P4-02 的 CMS 应用、独立数据库边界、内容模型和公共 Products API 已部署;Payload Admin 外部 `/cms/admin` 前缀和可复现迁移产物仍阻断 P4-03 发布验收。P4-04 至 P4-07 尚未开始,见 `docs/phase-4-report.md`。 + - `P4-01` 配置 `apps/cms`、独立内容存储边界和受控 CMS 账号。 - `P4-02` 实现 Product、Media、SiteSettings、HomeContent 及媒体/富文本安全限制。 - `P4-03` 实现草稿、预览、发布、下架和缓存失效。 diff --git a/docs/phase-4-report.md b/docs/phase-4-report.md new file mode 100644 index 0000000..acb7007 --- /dev/null +++ b/docs/phase-4-report.md @@ -0,0 +1,34 @@ +# Phase 4 CMS 基础报告 + +日期:2026-09-09 +范围:P4-01 至 P4-03 +状态:CMS 数据边界、模型和公共内容 API 已部署;CMS 管理入口前缀集成仍受阻,草稿/发布/下架尚未验收通过。 + +## 1. 已完成 + +- 新增独立 Payload CMS 应用:`apps/cms`。 +- CMS 使用独立 PostgreSQL 数据库 `kaotings_cms` 和独立数据库账号,不读取业务 API 用户表。 +- 已配置 systemd 服务 `kaotings-cms`,仅监听 `127.0.0.1:3001`。 +- Caddy 保留 `/cms` 外部边界,不向公网开放 CMS 回环端口。 +- 建立模型:`Users`、`Products`、`Media`、`SiteSettings`、`HomeContent`。 +- Product 支持 `draft`、`published`、`unpublished`,slug、分类、摘要、描述、媒体、features、specs、SEO 和排序字段。 +- Media 为受控上传集合,普通访客只读媒体,写入需要 CMS 用户。 +- Website 内容适配器已从集中占位数据切换为 CMS 公共 Products API;CMS 未发布产品时显示明确空状态。 +- 公共 Products API 已验证返回 `200` 和空集合,未泄露草稿。 + +## 2. 尚未通过 + +- `/cms/admin` 当前仍发生前缀重定向/404,Payload Admin 的 Next basePath 与 Caddy 前缀集成尚未稳定。 +- 因管理入口未通过,尚未建立 CMS 管理员、创建 Product、上传 Media 或执行发布/下架验收。 +- 草稿不可读、发布可读、下架失效的完整端到端矩阵待 Admin 路由修复后执行。 +- 当前没有把 CMS 生成的运行时迁移文件提交进仓库,测试数据库迁移已执行但交付还需固化迁移产物。 + +## 3. 范围边界 + +- CMS 不管理业务用户、Role/Plan、额度、TTS 任务或认证会话。 +- P4-04 至 P4-07 的用户、VIP、额度、TTS 管理界面尚未开始。 +- 旧 Big-TTS Web 不参与 CMS,推理服务继续由新网站 API 调用。 + +## 4. 当前阻断 + +需要先修复 Payload Admin 的 `/cms/admin` 外部路径和可复现迁移产物,再执行 P4-02/P4-03 的真实内容操作验收。该阻断不影响 Phase 3 已部署的认证、TTS、额度和音频服务,也不涉及旧推理工程修改。 diff --git a/infra/scripts/fix-payload-migration.py b/infra/scripts/fix-payload-migration.py new file mode 100644 index 0000000..b902c76 --- /dev/null +++ b/infra/scripts/fix-payload-migration.py @@ -0,0 +1,11 @@ +from pathlib import Path +import sys + + +path = Path(sys.argv[1]) +lines = path.read_text().splitlines() +lines[0:1] = [ + "import type { MigrateUpArgs, MigrateDownArgs } from '@payloadcms/db-postgres'", + "import { sql } from '@payloadcms/db-postgres'", +] +path.write_text("\n".join(lines) + "\n")