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

5.2 KiB
Raw Blame 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. 安装程序

# 在 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 路由,先备份源码,并显式执行:

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 和部署回滚的独立环境验收。