Files
codex-bot 5c89d27528
waterfall-wiki CI and deployment / verify-and-deploy (pull_request) Has been cancelled
Harden XML round trips, author namespaces and publishing feedback
2026-10-29 17:03:55 +08:00

2.5 KiB
Raw Permalink Blame History

真实文档发布

本分支依赖 linked-guidance #7(ee69749)和 wiki-email-auth #6 后续安全修复 c27fa4f。先合并账户及协议依赖,再合并本 PR。使用现有 PostgreSQL、014 账户迁移后执行 015;无需 SMTP 变更。

  • /write:已验证邮箱账户创建、加载并发布下一版本,支持结构化表单和受限 XML;预览通过 /api/documents/preview 校验并解析条件链接,不写数据库。
  • /documents 与 /documents/:id?revision=N:真实用户文档列表与固定版本阅读。主页可链接这两个入口,现有 /guide 可对 user- ID 委托 resolveDocument 或链接 /documents/:id。首页与导航已接入真实发布入口;原型阅读页保留独立样例。
  • /api/documents GET 列表,POST 创建/发布;/api/documents/:id GET 单篇、POST 下一版、DELETE 作者撤下;?format=xml&revision=N 返回规范 XML。未指定版本为发现用途,实际采用需固定 revision。
  • user-<author UUID>-<slug> 命名空间独立于静态 catalog,服务端和数据库均校验作者前缀,同一短名可由不同作者分别发布。条件链接可引用静态样例或真实文档;缺失版本明确展示,不自动请求外站、不静默换最新版。撤下后列表及 latest 不再展示,历史固定版本仍然公开可读。
  • 邮箱会话仅由新接口校验,不授予管理员 API 权限。发布是公开行为;目前没有草稿服务、私有文档、恢复撤下或账户删除功能。tags 是发现元数据,通过 XML 可重复的 tag 元素往返保存。
  • 数据库通过行锁分配下一版本并拒绝过时编辑,触发器禁止修改/删除已发布内容。数据库所有者仍可执行数据库维护,触发器不是对数据库管理员的安全隔离。

验证由 ces-control PR CI 执行:严格 XML 单元测试;PostgreSQL 真实发布、所有权、并发版本冲突、不可变内容和撤下保留历史的集成测试。PR 不自动部署,服务器视觉验收须主 chat 人工合并后的部署成功再执行。

首页现已通过 /api/documents 加载真实发布摘要,并在 GuidanceShell 提供用户文档与发布入口。/guide 继续只读取静态协议样例,不覆盖主 chat 的阅读实现。

编辑器自动加载已验证账户前缀。发布成功提供精确版本链接;网络或服务失败保留输入并显示错误,XML 模式成功后推进待编辑版本。严格 XML 校验另拒绝无效 Unicode、CDATA 终止符和非 XML 空白。