Files

51 lines
4.0 KiB
Markdown
Raw Permalink Normal View History

# SiteForge V8.21:可执行开发说明和验收边界
状态:**8.21.0-dev.1 开发集成版**。基于 V8.20 完整源码开发,未对用户生产环境执行升级。
## 页面编辑器历史
- 数据表 `studio_history`:site_id / entry_id / revision / kind(draft,published) / snapshot_json / snapshot_hash / actor / created_at。支持删除站点/页面后的级联清理,不额外泄露其他站点记录。
- `GET /api/sites/{site}/pages/{entry}/studio-history?limit=30`:查看当前网站当前页面最近版本(1–100);最低 viewer 权限。
- `GET .../studio-history/{history_id}`:读取单个历史快照并验证 SHA-256;最低 viewer 权限。
- `POST .../studio-history/{history_id}/restore`:请求体 `{"expected_revision":2}`;最低 editor 权限;采用乐观修订检查,只创建新的 studio_drafts 草稿,不调用静态构建,也不修改已发布内容。
- 发布仍需要 owner 权限;发布后的页面必须单独执行正式静态构建和审批才能上线。
- 历史表目前**未配置保留上限/外部归档**,大规模多人协作前应定义存储周期与审计导出策略。原先保存在本机浏览器会话里的撤销/重做仍可用,不属于持久化历史。
## 数据映射
旧式 `{ "title": "name" }` 规则保持兼容。新增可声明的字段处理(不能传入任意 SQL、JavaScript 或 Python):
```json
{
"title": {"source":"name", "trim":true, "case":"upper", "prefix":"MODEL: "},
"brand": {"source":"brand", "case":"lower", "default":"Unspecified"},
"route": "old_url"
}
```
- `POST /api/factory/sites/{site}/mapping/run` 带 `dry_run:true` 返回 `plan_hash`、冲突列表、错误、示例数据。
- 再调用该 API,传 `dry_run:false`、`expected_plan_hash` 及 `on_conflict: "abort"|"skip"|"replace"`。预检被其他人修改后拒绝旧指纹。建议以 `abort` 开始试点,数据修改需要明确选择 `replace`。
- `plan_hash` 包含映射后的内容及相关已有记录完整状态,不包含远程认证信息;它是乐观变更检查**不是防篡改签名**,也不是跨进程数据库锁。
- **限制**:当前装配持久化沿用原有逐条 `save_entry` 路径,不保证批次级 ACID 原子回滚。`abort` 可阻止预检时已知的错误和冲突,但不能承诺极端并发写入期间整批原子提交。批次回滚及并发事务化属于后续 P1 任务。
- 每批最多 1,000 条,保持原有容量上限;映射不运行代码,也不会自动创造业务数据。
## UI
- 原生编辑器 `/editor/{site}/{entry}` 新增「版本历史」弹窗与确认恢复;所有文案提示恢复仅生成草稿。
- 原生网站工厂 `/factory-studio` 的内容导入新增字段变换、严格冲突策略和预检绑定;原有 Art Design Pro 官方工程尚未获得,因此未验证其实际 `pnpm build` 和完整业务端集成。
## 本地验收记录
- `38` 个测试模块分 10 组独立运行,共 `325 passed`;所有分组原始输出见 `reports/v821_manual_verified/`。
- `python scripts/http_end_to_end.py`:通过登录/CSRF → 创建网站与页面 → Worker 构建 → ZIP → 预览。
- `python scripts/verify_release.py`、`python -m compileall -q app` 以及 `node --check app/static/*.js`:通过。
- 一键长流程在当前环境出现过停滞。已对 V8.21 执行器增加进程组超时清理,但其完整单次运行稳定性仍需独立 CI 复验;不计入上面的“通过”判定。
- **未验收**:真实 PostgreSQL/Redis、Docker 多 Worker、浏览器/移动端视觉交互、真实 WordPress 复杂迁移、官方 Art Design Pro 编译、远程发布与回滚。
## 后续门槛
1. 建立隔离生产仿真环境,在 PostgreSQL 模式跑迁移/数据装配/编辑历史多进程用例并演练恢复。
2. 使批量导入具有数据库级事务一致性、导入版本差异和可回滚工作流。
3. 将编辑器版本历史组件并入 **官方** Art Design Pro 工程,覆盖桌面与移动端真实浏览器 E2E。
4. 扩展整站模板与组件级版本继承、协作审批及内容设计依赖图。