Files
cms-SiteForge/docs/V8_17_ACCEPTANCE_RUNBOOK.md
T
浅念 601451f22b upgrade: adopt V8.21.3 (V8.13→8.21.3: P5 SFTP/S3, P6 multilingual, editor overhaul, enterprise hardening)
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>
2026-10-23 12:31:03 +08:00

93 lines
6.0 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 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、数据库迁移、写入、发布/回滚、备份/恢复、人工审批。
## 二、集成路径
1. 解压原 V8.16 完整工程到**隔离测试目录**,不要覆盖正式数据卷。
2. 将本补充包 `scripts/siteforge_v817_audit.py` 和 `tests/test_siteforge_v817_audit.py` 分别复制到原项目同名目录中;不会替换已有模块。
3. 按需复制 `docs/V8_17_ACCEPTANCE_RUNBOOK.md` 和 `examples/`。
4. 运行 `python -m unittest discover -s tests -p 'test_siteforge_v817_audit.py' -v`,再执行以下命令。
## 三、执行命令
最小安全检查(无网络、无需 Docker):
```bash
python scripts/siteforge_v817_audit.py --repo . --output reports/siteforge-v817
```
隔离 Docker 企业 Compose 已启动后:
```bash
python scripts/siteforge_v817_audit.py \
--repo . --docker --url http://127.0.0.1:8787 \
--output reports/enterprise-staging
```
使用已有隔离数据库配置;**PG 仅执行 SELECT 1(事务只读),Redis 仅执行 PING**:
```bash
# 以下环境变量需由运维通过私密渠道事先配置,切勿提交 .env 或 DSN 到仓库。
python scripts/siteforge_v817_audit.py \
--postgres --redis --output reports/datastores
```
静态构建产物 URL 校验(old_urls.txt 需人工从旧站导出,不自动抓取):
```bash
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 下的完整业务链路和故障注入。