- 归档 OnlyOffice live bridge、Page AI、mindmap、design governance 与相关 bug 条目 - 补齐 MinerU OCR 后端 runtime 合同与 smoke/test 基线 - 收口 ChatOnly/Doubao、ObjectIdentity、Page Aggregate compat 与 runtime owner 文档口径 验证: - cargo test --manifest-path rust/Cargo.toml -p mnote-web local_ocr -- --test-threads=1 - cargo test --manifest-path rust/Cargo.toml -p mnote-web onlyoffice_bridge -- --test-threads=1 - git diff --check - git diff --cached --check - codegraph index . --force && codegraph status . - codegraph sync . && codegraph status .
2.1 KiB
2.1 KiB
5-34 local-folder media/sign 与 Office URL 契约
目标
OnlyOffice 打开 local-folder asset 时不再向 /api/media/sign 发起无意义请求;local 文件继续通过 local-folder open route 进入 OnlyOffice 只读预览。
原因
/api/media/sign 当前只签 Convex media asset。local-folder asset 已有 rootUri + path 的本地文件打开链路,不应混入 Convex 签名端点。
允许修改
rust/crates/mnote-web/src/routes/onlyoffice.rsrust/crates/mnote-web/src/ssr/pages/layout.rs- 相关
mnote-web单测
禁止事项
- 不开放任意本地路径签名。
- 不把
/api/media/sign扩成绕过 allowed roots 的本地文件下载端点。 - 不改变非 local Convex media asset 的签名行为。
Checklist
/onlyoffice页面识别 local asset / local fileUrl,跳过/api/media/sign。- local asset 的 doc key 仍稳定、安全,不包含
/、:、中文等危险字符。 - 非 local asset 仍可走
/api/media/sign解析 signedUrl。 - 补单测覆盖 local asset 不依赖 media sign 的页面脚本契约。
验收
cargo test -p mnote-web onlyoffice -- --test-threads=1cargo test -p mnote-web -- --test-threads=1
本轮执行记录
- 2026-05-21:Reasonix worker A 执行完成。
- 在
page()模板 JS 中添加isLocalFolderAsset()守卫函数。 resolveAssetUrlAndKey()中 local-folder asset 跳过/api/media/sign。- 守卫条件:
assetId前缀为local:或local-file:,或fileUrl路径含/api/local-folder/files/open。 - 新增
onlyoffice_page_skips_media_sign_for_local_folder_asset单测。 cargo test -p mnote-web onlyoffice -- --test-threads=1全部 13 项通过。
- 在
- 2026-05-21:Codex 复核补充。
- 干净浏览器上下文上传并打开
/home/lix/Downloads/重庆发展特殊化妆品可行性报告_政府汇报版.docx。 - local-folder iframe
fileUrl指向/api/local-folder/files/open?...,未出现/api/media/signlocal 404。 - 证据:
tmp/codex-office-view-edit-plugin-2026-05-21/result.json,截图01-office-view-mode.png/02-office-edit-mode.png。
- 干净浏览器上下文上传并打开