1.9 KiB
1.9 KiB
真实文档发布
本分支依赖 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。本 PR 未修改首页与原型阅读页,避免覆盖并行 UI 工作。/api/documentsGET 列表,POST 创建/发布;/api/documents/:idGET 单篇、POST 下一版、DELETE 作者撤下;?format=xml&revision=N返回规范 XML。未指定版本为发现用途,实际采用需固定 revision。user-前缀独立于静态 catalog。条件链接可引用静态样例或真实文档;缺失版本明确展示,不自动请求外站、不静默换最新版。撤下后列表及 latest 不再展示,历史固定版本仍然公开可读。- 邮箱会话仅由新接口校验,不授予管理员 API 权限。发布是公开行为;目前没有草稿服务、私有文档、恢复撤下或账户删除功能。tags 是 JSON 元数据,XML 0.1 没有 tags 字段,XML 导入为无标签文档。
- 数据库通过行锁分配下一版本并拒绝过时编辑,触发器禁止修改/删除已发布内容。数据库所有者仍可执行数据库维护,触发器不是对数据库管理员的安全隔离。
验证由 ces-control PR CI 执行:严格 XML 单元测试;PostgreSQL 真实发布、所有权、并发版本冲突、不可变内容和撤下保留历史的集成测试。PR 不自动部署,服务器视觉验收须主 chat 人工合并后的部署成功再执行。