Files
cms-SiteForge/docs/V8_19_ART_UNIFIED_BACKEND.md
T

79 lines
5.2 KiB
Markdown
Raw Normal View History

# SiteForge Enterprise V8.19 — 统一管理后台集成与验收手册
**版本**:8.19.0-dev.1(开发集成版)
**基线**:V8.18 完整源码
**日期**:2026-10-23
**状态**:业务代码、路由适配及后端接口已集成;Art Design Pro 官方完整源码不在交付包内,因此未执行官方 `pnpm build`,也未通过真实浏览器/线上反代验收。
## 1. 范围与已实现
- 新增 FastAPI `GET /api/console/bootstrap`:会话绑定的管理菜单、可见站点清单、指定站点权限能力清单;未授权站点返回 403。纯查询,不传递密钥或 CSRF token。
- 新增 Vue `ConsoleHome.vue` 工作台、`ContentCenter.vue` 内容 CRUD 页面(调用已有 API,不复制业务数据库逻辑)。
- 统一 Art 前端七个既有页面的请求错误/CSRF 同源处理与当前网站选择;通过 `_shared.ts` 获取服务端会话,权限**仍由后端检查**。
- 官方路由只注册 **一个 `/siteforge` 导航树**,含工作台、网站管理、内容管理、网站设计、数据与迁移、构建与发布、系统管理;主题与 V8 高级工具隐藏为子路由,避免重复一级菜单。
- 安装器支持 dry-run、幂等、文件冲突保护、备份、显式升级旧标记、SHA-256 安装核对。
- SiteForge 登录页支持同站安全 `next=/siteforge/...` 返回路径;无跨域任意跳转。
## 2. 前置要求
1. 从官方网站获取 **Art Design Pro 官方完整源代码**、合法依赖和版本锁文件,确认对应的 `src/router/routes/asyncRoutes.ts` 结构。未提供源码时不得称为官方已经集成、编译成功。
2. Node、pnpm 版本以该 Art 官方提交/锁文件要求为准。
3. 采用 **一个 HTTPS 域名**承载 Art SPA 和 FastAPI API,统一 Session Cookie、CSRF 与 Host;不要通过跨域代理绕过后端 Session 与 CSRF。
4. FastAPI 需保留 `/api/auth/login`、`/api/auth/me`、`/api/auth/logout` 权威登录路径。Art 演示账户和假 Token 不可作为正式 SiteForge 认证。
## 3. 安装程序
```bash
# 在 SiteForge 根目录(以下路径自行替换)
python scripts/install_into_art_design_pro.py /path/to/art-design-pro
python scripts/install_into_art_design_pro.py /path/to/art-design-pro --apply
python scripts/verify_art_design_pro_v819.py /path/to/art-design-pro
# 安装了官方 npm 依赖后运行真正的编译(不是模拟)
cd /path/to/art-design-pro
pnpm install --frozen-lockfile
cd /path/to/siteforge
python scripts/verify_art_design_pro_v819.py /path/to/art-design-pro --build --report reports/v819-art-build.json
```
如果官方源码里已经存在旧 SiteForge 路由,**先备份源码**,并显式执行:
```bash
python scripts/install_into_art_design_pro.py /path/to/art-design-pro --apply --migrate-legacy --overwrite-views
```
安装器不会删除第三方业务路由;当人工调整过已经安装的 V8.19 路由时,会拒绝自动覆盖,并要求人工审查差异。若旧业务页面曾被人工修改,升级前先对比 `.siteforge-backup`。
## 4. 同源反代
使用 `deploy/art-design-pro/siteforge-nginx.conf.example` 作为 **示例**,人工配置证书、SPA 根目录、Host、上游 IP。正式生产必须启用 `SITEFORGE_COOKIE_SECURE=true`。完整反向代理后逐一检查:
- 登录页 `/login`、认证 `/api/auth/me`、管理接口 `/api/console/bootstrap`;
- Art 页面 `/siteforge/dashboard` 与 `/siteforge/content`;
- 页面设计 `/editor/{site}/{entry}`、预览 `/preview/...`、媒体 `/local-media/...`;
- 静态站构建与文件下载;
- 401/403 行为、CSRF POST 保护、Session 过期后跳转,以及移动端导航。
注意:Art 自带演示登录/用户菜单与 SiteForge 账户是**两套系统**。正式部署时必须关闭演示权限作为真实权限的假设,使用 SiteForge 会话作为权威身份;Art 路由的可见性只是界面提示,不可替代服务端授权。尚未实施企业 SSO。
## 5. 已完成/未完成门禁
| 验收项 | 状态 |
|---|---|
| 原项目自动化测试 | 本地可重复回归通过;原始日志随包交付 |
| 新工作台授权 API | 自动化测试通过 |
| Art 安装器模拟工程测试 | 自动化测试通过(仅验证适配逻辑) |
| HTTP 站点创建 → Worker 构建 → 下载 → 预览 | 本地端到端通过 |
| Art 官方 `pnpm build` | **未执行**(官方完整源码/依赖未提供) |
| PC 与移动端真实 Art UI | **未执行**(需官方工程构建和正常浏览器环境) |
| Nginx HTTPS + SameSite + Cookie/CSRF | **未执行**(需独立测试域名) |
| PostgreSQL/Redis/多 Worker/发布灾备 | 延续 V8.18 的独立生产验收门禁 |
## 6. 尚需完善(下阶段)
- 将 Art 登录体验与 SiteForge 后端 Session 完整合一(实际官方仓库必须可编译、完成端到端路由守卫)。
- 企业功能导航按站点角色动态显示(本轮后端已提供能力清单,但 Art 全局动态菜单权限筛选未能在官方工程中实测)。
- 完整移动端和桌面端视觉验收、内容编辑历史、发布审批操作的一致性审查。
- 将高级生产控制台原有大部分遗留界面彻底迁入统一模块,避免跳出 SPA。
- 生产 Nginx、真实 Art build、数据库、Redis 和部署回滚的独立环境验收。