8cea7dee20
- SiteForge Enterprise V8.10.0-dev.1 upstream source (210 tests) - Fix: v8_workflows._mapped_input now reads both 类型/分类 columns so WXR imports keep post/product types instead of collapsing to page - Docs: trade-pro theme port spec (R3) and implementation plan Co-Authored-By: Claude Code <noreply@anthropic.com>
5.1 KiB
5.1 KiB
SiteForge 7.1.0 — 对照《COMPLETION_PLAN(1).md》优化结果
对照文件:用户提供《SiteForge 网站工厂 — 完整实现与生产落地计划》v2.0(2026-10-22)。 状态:P0 代码修复及本地测试完成;真实 Docker / 云 CI / 浏览器网络访问 / 线上回滚尚待指定部署环境验收。 注意:该计划评审的是 v5 源码及 v4 运行实例;本项目的实际起点是 V7.0.0。不应把计划中的 v5 数字直接改写成实际运行结论。
评审中的关键结论
- “代码更新 ≠ 生产部署已生效”:保留生产实例的健康版本和提交标识对账,杜绝仅凭 ZIP 文件判断升级成功。
- P0 必须先修:预览导航根路径 404、Compose 重复构建标签、Worker 错误继承 Web HTTP 探针、favicon、Linux CI 和离线恢复。
- 安全底座不足仍是最高风险:任意 URL 的 DNS 解析与重定向、数据导入包的 XXE/压缩炸弹、数据库只读权限、密钥引用策略,必须先在 P1 统一设计而非每个连接器各自实现。
- 发布闭环尚未生产验收:不可变构建、审批、原子发布、线上探测、回滚、CDN 控制需正式环境测试。
- 多语言需要内容级映射:仅克隆站点不能形成正确的翻译组/hreflang。
本次 P0 工作与验证证据
| 文档任务 | 实际修改 | 验证状态 |
|---|---|---|
| P0-1 平台/部署版本一致 | 平台改为 7.1.0;health 返回 version 与 commit;后台文字、Docker 标签、init 配置对应升级;Dockerfile 加 OCI revision 标签 |
本地 API / UI 代码测试通过;目标服务器镜像摘要仍需部署后对账 |
| P0-2 预览根链接 404 | app/preview_rewrite.py:仅在预览 HTTP 响应中改写 href/src/action/poster;绝对外站 URL 不动;静态 ZIP 原封不动 |
新增真实构建/TestClient 回归,检查 /products/ 预览状态 200 |
| P0-3 Worker 健康检查 | 去除 Dockerfile 的 Web 专属内置探针;Web 仍检查 HTTP;Worker 使用 /data/worker-heartbeat 独立探针 |
单元及 Compose 结构测试通过;Docker Engine 未运行 |
| P0-4 favicon | 新增 /favicon.ico 真正文件与路由 |
HTTP 测试 200 |
| P0-5 同镜像标签重复构建 | Web 唯一进行 build,Worker 引用同一镜像并依赖 Web 容器启动;本地 / 企业 Compose 同步调整 | Compose 结构测试通过;GitHub CI 新增单命令 up -d --build 冒烟,尚待 CI 云端运行 |
| P0-6 跨平台 CI | scripts/check.sh 与 scripts/check.ps1;CI 使用 Bash 检查 Python、所有 JS、pytest;增加 Docker Compose 双服务 healthy 冒烟 |
Linux 本地 79 项通过;GitHub Actions 尚待在仓库运行 |
| P0-7 密钥卫生 | 保持 .env、secrets/ 在 Git ignore / Docker ignore;初始化脚本不覆盖已有密钥 |
静态检查完成;真实环境密钥轮换须由管理员执行,不能从交付包代替生产凭据 |
| P0-8 备份恢复 | 新增 SQLite WAL 在线备份 → 独立目录恢复 → 核对站点与媒体的测试 | 本地隔离测试通过;真实 Docker 数据卷离线恢复演练待完成 |
P0 的真实退出条件(仍需在你自己的 Docker 环境完成)
- 运行
docker compose up -d --build,Web 和 Worker 均显示 healthy。 /api/health返回7.1.0和你提供的SITEFORGE_GIT_SHA(生产环境不应是unknown)。- 对目标镜像记录
docker image inspect摘要,截图或保存启动日志。 - PC 1440、手机 390/360 登录、导航、构建、预览无失败。
- 在独立测试卷完成备份、恢复和回滚验证,不直接覆盖旧站正式数据。
- 轮换暴露过的管理员密码、会话密钥及发布 Agent 密钥。
后续开发顺序(依照原计划)
| 阶段 | 首先要完成的工程 | 完成门槛 |
|---|---|---|
| P1 | 显式 DB schema 迁移表、通用任务/审计、SSR F/DNS/重定向安全客户端、secret ID 引用、配额 | 故障注入与越权、私网请求拒绝测试通过 |
| P2 | WP REST/WXR/Sitemap 断点续跑、幂等、URL/SEO 基线、迁移会话 | 本地 WP 固定夹具 + 授权真实站匿名验收报告 |
| P3 | XML/API/只读 MySQL 连接器、导入暂存与批次回滚 | 5,000 条可恢复导入、失败不重复写入 |
| P4 | Schema 区块、整站主题包、兼容性预检、草稿与设备样式 | 多页面模板安装/回退和视觉回归通过 |
| P5 | SFTP/S3 不可变版本、审批、原子切换、线上探测 | 容器化部署/故障/回滚测试通过 |
| P6 | locale / translation_groups / hreflang | 多语言页面双向 hreflang 与 sitemap 一致 |
| P7 | PostgreSQL + 分布式队列高可用、SSO、监控、备份、SLO | 真实并发与灾备压测和安全审计 |
技术边界
- 本次未将当前 PostgreSQL 兼容层表述为正式数据迁移/高可用认证。
- 未声称官方 Art Design Pro 项目已构建:它仍以独立接入代码形式存在。
- 浏览器自动化在当前隔离环境访问本地 HTTP 返回
ERR_BLOCKED_BY_ADMINISTRATOR;这属于测试环境访问限制,不作为页面已通过浏览器测试的证据。 - Docker Engine 当前未安装,不能宣称 Compose 真正已启动。