创建与编辑
- 结果
- 保存扩展标识、清单、配置和依赖声明,但不会绕开权限与依赖校验直接运行。
扩展不是能随意读取 Worker 绑定的脚本片段,而是由云端控制面创建、在服务器租户 Context 中运行、受依赖图与能力权限约束的生命周期单元。
每个已启动扩展拥有独立 Context:其中保存扩展标识、所属服务器与租户、解析后的依赖、已获授权的能力、运行状态和专属 disposer 栈。扩展之间不共享可变全局状态,Context 是资源与授权的唯一宿主。
控制面将扩展清单中的依赖构成有向图,在启动或更新前检查缺失依赖、循环依赖和版本约束。只有依赖全部处于可用状态时,目标扩展才可启动。
Context 使用后进先出释放策略。资源通常有依赖建立顺序:最后登记的订阅、任务或桥接句柄最先释放,先登记的底层资源最后关闭。
更新从候选包与候选配置开始,而不是原地改写正在运行的实例。控制面先校验清单、依赖图、授权能力和沙箱装载,再在独立候选 Context 中启动。
已登录服主只能在自己拥有的服务器范围内创建、编辑、安装、更新、启用、禁用、启动、停止和删除扩展。控制面负责状态机与资源清理,不把这些操作下放给浏览器本地状态。
每次控制面动作都会记录发起用户、所属租户与服务器、扩展标识、动作、结果、时间、关联版本和失败原因摘要。敏感配置、API Key 和沙箱源代码不写入可见审计字段。