权限与版本兼容

理解能力声明、路径授权与需要升级宿主的边界。

扩展 API v1按当前源码核对
本页目录

权限声明不是权限授予#

当前清单支持 fs、ai、codemirror、workspace、state、ipc。这些字段用于描述和校验能力需求,不是独立的完整安全沙箱,也不自动开放任意系统能力。

接口是否存在看 preload,操作是否允许看主进程的实际检查。开发时要同时理解这两个层次。

路径授权属于实际上下文#

用户选择的材料、当前项目登记的文件和允许的输出位置各有用途。一个组件窗口的路径授权,不应被另一个窗口简单复制使用。

行为 正确处理
读取登记的项目材料 核对格式,按需要读取;处理失败返回
用户选择另存为位置 使用目标宿主真实支持的选择流程,再执行写入
修改只读输入原件 保存工作副本,不关闭只读检查
组件升级 保留用户项目、历史和允许迁移的数据
需要新系统能力 提出并实现主进程、preload 与组件的完整契约

渲染层传 trusted: true 不会取得授权。不要尝试修改宿主源码目录、安装包或其他组件内容来消除权限错误。

版本兼容怎么声明#

组件清单有自己的 version、接口 apiVersion 以及宿主版本边界。上线前建立一份矩阵:

组合 必须确认
最低支持宿主 + 新组件 所需接口、资源、错误提示均可用
当前宿主 + 新组件 完整正常流程通过
旧宿主 + 不兼容组件 能明确拒绝,不停在空白窗口
旧项目 + 新组件 输入、成果和状态迁移可用
正式宿主 + 开发源码 不把开发便利当成生产导入能力

来源与类别的差别#

开发源码扫描会按目录来源处理 builtin 和 thirdparty。第三方目录默认不启用,正式打包环境还会验证安装内容。不要通过改清单的 type 声明跨越来源约束。

task 与 tool 决定类别和对应发行格式。正式组件的签名描述还包含身份、内容摘要和范围,不能通过改扩展名改变其含义。

当前事件接口的清理约定#

onExtensionAlreadyOpen(callback) 返回移除本次监听的函数。onExtensionCloseRequest 等旧接口可能替换原监听且不返回取消函数;不能套用一个未经核对的通用订阅封装。

组件只清理自己拥有的资源。为了修复重复事件去移除宿主全部监听,会引入其他功能失效。

什么时候必须更新宿主#

已有接口之上的表单、模板、资源和业务流程可以作为组件更新。涉及原生模块、新 IPC、后台运行机制或新的窗口授权时,需要配套宿主版本,不能单发插件承诺旧宿主自动获得能力。

兼容说明应写给用户看:最低版本是什么,需要升级什么,哪些已有项目保持可用。不要把内部实现编号当作公开版本号。

下载本页 Markdown