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>
6.0 KiB
SiteForge V8.17 — 生产交付门禁执行手册
状态:独立增量验收工具;不包含 V8.16 原项目源码、Art Design Pro 官方完整工程或真实测试环境。本文的项目结构以所获 V8.16 README 为依据。生产演练与授权审批必须由真实环境执行并存档。
一、目标与范围
- V8.16 具备 HTTP
/api/health、/api/ready,PG 兼容层、Worker 实例标识与 HTTP/PG 浏览器测试脚本。 - V8.17 增量提供不侵入应用数据的统一检查入口,报告 JSON + Markdown + 离线可视化 HTML。
- 不替代
scripts/check.sh、scripts/http_end_to_end.py、scripts/browser_smoke.py、scripts/verify_pg_bootstrap.py;这些是应用级端到端验证。 - 不会执行 Docker up/down/build、数据库迁移、写入、发布/回滚、备份/恢复、人工审批。
二、集成路径
- 解压原 V8.16 完整工程到隔离测试目录,不要覆盖正式数据卷。
- 将本补充包
scripts/siteforge_v817_audit.py和tests/test_siteforge_v817_audit.py分别复制到原项目同名目录中;不会替换已有模块。 - 按需复制
docs/V8_17_ACCEPTANCE_RUNBOOK.md和examples/。 - 运行
python -m unittest discover -s tests -p 'test_siteforge_v817_audit.py' -v,再执行以下命令。
三、执行命令
最小安全检查(无网络、无需 Docker):
python scripts/siteforge_v817_audit.py --repo . --output reports/siteforge-v817
隔离 Docker 企业 Compose 已启动后:
python scripts/siteforge_v817_audit.py \
--repo . --docker --url http://127.0.0.1:8787 \
--output reports/enterprise-staging
使用已有隔离数据库配置;PG 仅执行 SELECT 1(事务只读),Redis 仅执行 PING:
# 以下环境变量需由运维通过私密渠道事先配置,切勿提交 .env 或 DSN 到仓库。
python scripts/siteforge_v817_audit.py \
--postgres --redis --output reports/datastores
静态构建产物 URL 校验(old_urls.txt 需人工从旧站导出,不自动抓取):
python scripts/siteforge_v817_audit.py \
--build-dir /path/to/generated/site \
--url-baseline old_urls.txt \
--output reports/static-seo
验收报告:reports/*.html 离线打开、reports/*.json 可机器读取、reports/*.md 可归档。返回码 2 代表存在 FAIL;WARN/SKIP 仅表示需要进一步处理,不视为生产通过。
四、关键门禁和接受标准
| 门禁 | 自动审计可做 | 仍需人工与真实环境执行 |
|---|---|---|
| 代码与 Compose | 文件完整性、Python AST、Compose 配置、容器状态 | 应用全测试集、供应链审计、CI 与镜像签名 |
| Web 与 Worker | HTTP readiness、容器运行/health、Worker 服务发现 | 真实异步任务、租约竞争、断网恢复、容量压测 |
| PostgreSQL | 真正连通后的 SELECT 1 |
隔离测试库运行原项目 PG bootstrap、迁移校验、恢复演练 |
| Redis | PING | 队列可靠性、幂等、故障切换、持久化和告警演练 |
| URL / SEO | html lang、canonical 规则、内部链接、旧路径覆盖、sitemap | 迁移映射审定、301/404、robots、实际源站比对、GSC 验收 |
| 多语言 | hreflang 格式与语言标签 | 关联双方对称、翻译审核、独立域名 HTTPS |
| 发布与回滚 | 读取人工证据表 | 真实 staging 激活、不可变版本、校验 SHA、回滚演练、审批隔离 |
| Art Design Pro | 检查当前 workspace 静态入口 |
获得官方工程并构建,完成组件/路由/权限/API 接入和验收 |
五、证据记录规范
以 examples/evidence.template.json 为模板记录 10 个阶段。每阶段保留 status、operator、date、evidence,例如证据可以是带日期的运行日志路径或测试报告 URL。工具只验证字段存在,不核验证据内容真实性。pending 永远不等同 passed。
回滚演练:先备份隔离测试环境,生成构建 A,部署到 staging,生成 B,再回滚至 A;比对前后首页和关键 URL 的 SHA/状态码,确认旧版恢复。测试的真实日志由人工归档。不得自动在生产环境执行此脚本包的任何写入动作。
SSRF 风险:HTTP 模式默认仅 localhost。远端只允许在操作者明确指定 --allow-remote 且获得目标授权时检查;URL 不得包含用户名、密码、查询或 fragment。代理/CDN 的响应和 TLS 配置需人工复核。
六、管理后台 UX 接入约定(下一层)
- 导航继续沿用“工作台 / 我的网站 / 内容页面 / 外观设计 / 导入迁移 / 构建交付 / 网站设置”;技术工具统一收纳高级工具。
- 验收中心可在构建交付 > 验收报告展示 JSON:优先级为 FAIL、WARN、SKIP、PASS,附修复建议,保留站点上下文。
- 不在编辑页弹出多层确认;破坏性/正式发布才要求明确确认或审批。
- 未获得 Art Design Pro 官方完整源码前,该交付不能称为官方集成;正式集成需基于实际 Vue 项目文件、授权版本、组件结构和构建配置开展。
七、Known limitations
- 文件可用性为当前 V8.16 README 描述,不保证用户本地工程文件路径完全相同,缺项会被标注 WARN。
- 报告 不是渗透测试、上线证明、真实发布演练或真实数据备份报告。
- 单站静态链接检查不能证明跨语言站的双向 hreflang;多语言配对需单独验证。
- 对于在 CDN 或独立路径进行的预览,构建本地链接存在不代表预览 rewrite 逻辑完全正确,需要另行浏览器检查。
- 使用 JSON 证据表并不代表完成任何业务审批或合规认证。
八、隔离 CI
提供 .github/workflows/siteforge-v817-acceptance.yml 作为人工触发的独立验收工作流:一组运行只读源码检查/测试,一组在临时 PostgreSQL 16 和 Redis 7 容器中执行最小存活检查,并上传脱敏报告。该 CI 不能替代在实际 SiteForge 企业 Compose 下的完整业务链路和故障注入。