Files
cms-SiteForge/docs/V7_2_P1_IMPLEMENTATION.md
T
浅念 8cea7dee20 chore: baseline V8.10.0-dev.1 with v8_workflows type-mapping fix and trade-pro spec
- 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>
2026-10-22 16:49:25 +08:00

36 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SiteForge 7.2.0 — P1 增量实施与验收报告
依据 `COMPLETION_PLAN(1).md` v2.0 P1(平台底座),在 V7.1 源码上迭代。不是 P1 完工证明。
## 已实现(代码及自动化测试)
| P1 条目 | 实际完成范围 | 证据 |
|---|---|---|
| P1-1 Schema 迁移 | SQLite 新增迁移登记表、校验和校验和一项增量迁移;旧模块建表尚未整体纳管,PG 迁移另行验收 | `app/schema_registry.py`, `tests/test_p1_platform.py` |
| P1-2/3 队列控制 | 继承幂等、租约、超时和取消,新增全局/单站排队容量上限与 429;尚无队列总负载压力测试 | `app/jobs.py`, `tests/test_p1_platform.py` |
| P1-4 安全出网 | HTTP(S)、公网 IP、DNS 结果检查;选定地址直接连接并保持 TLS 主机名校验;受限端口、无代理、每跳重校验、响应限流;接入 REST、爬虫、媒体镜像、远程部署 | `app/safe_http.py`, `app/adapters.py`, `app/importers.py`, `app/builder.py`, `app/release_api.py` |
| P1-5 密钥引用 | 可使用 `env:SITEFORGE_...` 或 `file:secret-name` 读取 `/run/secrets`;远程部署向后兼容旧明文环境变量;未完成统一密钥轮换与撤销 | `app/secret_refs.py`, `app/release_api.py` |
| P1-6 诊断能力 | `X-Request-ID`,只记录方法/状态/耗时/请求编号,不记录请求内容和完整 URL | `app/request_trace.py` |
| P1-7 配额 | 构建任务全局及站点限制、图片和旧 ZIP 原有限制加压缩比限制;站点数和长期构建保留限制尚未完成 | `app/jobs.py`, `app/main.py` |
## 已知限制(不得作为生产验收通过)
- Docker Engine、GitHub Actions、真实浏览器、备份恢复和生产回滚仍需在目标环境验证。
- PostgreSQL 多实例事务与旧模块 DDL 全量版本迁移尚未验收;目前推荐继续采用单机 SQLite 测试部署。
- WordPress 深度插件映射、Art Design Pro 官方工程构建及完整视觉编辑器仍存在前期版本已披露的限制。
- HTTP 出网遵循系统信任存储中的 CA,不包含专属证书固定(certificate pinning);公网 IP **地址固定**属于 DNS 重绑定防护,两者不是一回事。
- 外部发布 Agent 需具备独立网络策略、审计和服务器级防火墙。`file:` 密钥当前只用于存在的密钥文件,不包含自动轮换。
## 验收步骤
1. 从新空目录解压,初始化 `.env`(不要覆盖旧生产数据)。
2. `python -m pytest -q`,`python -m compileall -q app`,`bash scripts/check.sh`。
3. `docker compose up -d --build`,检查 Web 与 Worker 均健康;`/api/health` 版本为 `7.2.0`。
4. 通过后台创建网站,重复提交幂等构建,确认正常生成;将 `SITEFORGE_MAX_PENDING_JOBS_PER_SITE=1`,确认超限 429。
5. 用受控夹具验证 DNS 解析到私网、混合地址、重定向到私网均被拒绝。
6. 验证备份—恢复、异步任务恢复及正式发布前审计,保存测试记录及镜像摘要。
## 后续实施次序
完成 P1 剩余的数据库迁移、密钥生命周期、可观测性和故障注入后,再按计划 P2 WordPress 迁移闭环、P3 数据装配、P4 模板编辑、P5 发布闭环开发。P7 生产多实例升级须基于试点和压测数据启动。