Files
cms-SiteForge/docs/V8_19_ART_UNIFIED_BACKEND.md
T
浅念 601451f22b upgrade: adopt V8.21.3 (V8.13→8.21.3: P5 SFTP/S3, P6 multilingual, editor overhaul, enterprise hardening)
Overlay ~150 upstream items onto our V8.12 base, preserving trade-pro
theme, registry tests, and design docs. Re-applied our patch set
(discovery/env_for/blocks.css/type-mapping/theme_color/frontend entries,
test_theme_pro_v3 mods) — all anchors survived upstream evolution.

New platform enhancement (fixes upgrade-introduced regression):
multilingual.site_locale now honors settings_json.locale, plus
PUT /api/i18n/sites/{id}/locale — standalone English sites get
<html lang='en'> under the V8.15 locale-rewrite pipeline.

compose: adopt V8.21.3 (image 8.21.3-dev.1, /api/ready probes, MySQL/S3
env) with project name pinned to siteforge-v8-10 (data volumes).

Tests: 356 passed / 11 failed — all 11 confirmed pre-existing in
pristine V8.21.3 on this host (10 upstream Windows env + our build test
now green after locale fix). Patch registry updated in plan doc.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-23 12:31:03 +08:00

79 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 和部署回滚的独立环境验收。