601451f22b
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>
5.2 KiB
5.2 KiB
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. 前置要求
- 从官方网站获取 Art Design Pro 官方完整源代码、合法依赖和版本锁文件,确认对应的
src/router/routes/asyncRoutes.ts结构。未提供源码时不得称为官方已经集成、编译成功。 - Node、pnpm 版本以该 Art 官方提交/锁文件要求为准。
- 采用 一个 HTTPS 域名承载 Art SPA 和 FastAPI API,统一 Session Cookie、CSRF 与 Host;不要通过跨域代理绕过后端 Session 与 CSRF。
- 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 和部署回滚的独立环境验收。