Files
cms-SiteForge/docs/V8_4_RELEASE_STATUS.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

4.3 KiB
Raw Blame History

SiteForge Enterprise V8.4.0-dev.1 — P3 XML / 公开 HTTP API 连接器

本次实际完成

本版本基于 V8.3 完整项目继续开发,保留四套主题、WordPress P2 迁移工作台、V8 暂存批次、Worker、网站构建与 SEO 审核。

项目 代码交付 适用边界
XML 文件导入 app/connectors_v84.py parse_xml_records,认证上传 API 和控制台 1–8 MB,最多 1000 个 record_tag,扁平/两层记录,禁止 DTD/XXE,节点深度/数量/字段值限制
公开 HTTP API 创建受限 HTTPS JSON 数据源,定义 data.items 等 JSON 路径、分页、字段映射 仅公开、不需要令牌的 JSON API;不接受登录凭据、表单登录或用户自定义脚本
Worker 采集 kind=api_scan 使用既有租约 Worker 子进程,超时、取消、有限次数重试 单次最多 50 页、每页最多 100 项,总计 5000 项;当前不使用任意下一页 URL
断点续跑/幂等 v84_api_pages 逐页持久化检查点,重试查找之前已暂存的页面批次 分页按页码稳定顺序;若上游 API 对同一页改变数据,需重新建立数据源做差异验证
批次安全 所有采集只产生 staged,沿用 V8 的冲突预览、人工提交、手工修改保护和回滚 采集完成不自动入库,更不自动构建或发布
网站后台 /production-v8 加入 XML 上传、API 配置、提交/取消、查看数据源进度 limit_reached 表示达到页数上限,不应被理解为全量采集完成
认证 全部新接口复用现有 Session、CSRF、站点权限检查 管理员需保障来源合法授权、数据质量和个人信息合规

API

  • POST /api/connectors/sites/{site_id}/xml/staging:multipart file、record_tag、content_type、mapping_json。
  • POST /api/connectors/sites/{site_id}/api-sources:JSON 配置公开 HTTPS JSON API,支持 url、items_path、page_param、per_page_param、page_size、max_pages、mapping、content_type。
  • GET /api/connectors/sites/{site_id}/api-sources:数据源列表。
  • GET /api/connectors/sites/{site_id}/api-sources/{source_id}:检查点和暂存批次。
  • POST /api/connectors/sites/{site_id}/api-sources/{source_id}/scan:提交 Worker 采集,可传 idempotency_key。
  • POST /api/connectors/sites/{site_id}/api-sources/{source_id}/cancel:标记源取消并请求取消相关 Worker 任务。

安全限制

外部请求沿用 app/safe_http.py:固定安全 DNS 解析的公网 IP、校验证书、阻止内部/保留地址及重定向(redirects=0)、限制默认 HTTPS 端口、20 秒单请求超时、2 MB JSON 响应大小。XML 通过 defusedxml 禁止 DTD/实体并进行整体结构上限检查。来源 URL 拒绝常见令牌参数,且不接受认证请求头。

不允许任意 SQL/代码执行。数据库侧 MySQL 只读连接器没有在本轮交付,需下一阶段使用受限数据库账号、TLS、白名单视图、参数化列选择并在容器化夹具中验收。

本地已执行验收

  • 144 项自动化测试通过,含新增 14 项 XML/API/Worker/安全/权限/断点续跑测试。
  • python scripts/verify_release.py 通过,Python 源码编译与 Node JavaScript 语法检查通过。
  • V8.4 管理控制台的接口使用 TestClient 验证了登录、CSRF、XML 上传和 API 数据源创建。

尚未验收: Docker 实机启动、官方 Art Design Pro 编译、云端 GitHub CI 执行、真实公开 API 连续采集(当前以固定虚构服务响应做确定性测试)、大批量吞吐、外部网络故障场景、多服务器发布和实际 MySQL 数据库安全测试。因此该版本仍为开发/试点候选版,而不是已交付企业生产的终版。

后续 P3/P4/P5 优先项

  1. 具备 Secret ID 轮换的认证 HTTP API(不接受明文凭据填在 URL 或日志中)。
  2. 数据库侧只读账号的 MySQL 白名单表/视图连接器,按 500 条分批及批次回滚。
  3. 通用映射 Schema、内容关系规范、批量导入进度、冲突审核 UI。
  4. 整站模板编辑器、可回滚草稿与页面响应式联动;最终 SFTP/S3 安全发布验收。
  5. GitHub 云端 CI、Docker PostgreSQL/Redis 迁移与运行验收;认证、容量、安全、重试及取消的完整故障注入。