79 lines
5.2 KiB
Markdown
79 lines
5.2 KiB
Markdown
|
|
# 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 和部署回滚的独立环境验收。
|