安装环境与 Bundle 管理器请求
使用完整 Bundle 安装身份区分来源与目标环境,并按授权路由引用访问解析。
本页使用公开 SDK 25.2.0、生命周期 15.0.0 和网关资源凭据 API 6.0.0。首次签发原文随 AFTER_RESOURCES 下发;已有凭据不再下发原文,丢失时显式申请新 token。各环境须完成对应服务和登记切换后使用,源码或文档发布不代表环境已经激活。
来源 Bundle 的固定关系选择管理器,执行地址和通信协议由其当前登记提供;作者清单不声明 pluginId。
生命周期通知与资源凭据请求携带同一个 installation,准确版本及选择方式见权威规范。
身份由谁提供
| 字段 | 含义与来源 | 普通业务后端如何处理 |
|---|---|---|
| 来源 Bundle 与 ResourceLocator | 发布环境和资源 Owner 提供的不可变来源 | 用完整值校验业务实例归属,不按名称或目标环境改写 |
| installation.environmentKey | 安装目标环境登记 | 由 Runtime 交付,不能从域名或来源推导 |
| applicationRuntimeId | 实际安装所在 Runtime | 与完整安装上下文一并传递,不自行选择默认 Runtime |
| workspaceId | 目标工作区访问边界 | 不当作资源身份或用户授权 |
| bundleInstallId | Runtime 分配的本次安装身份 | 关联本次业务实例;重装的新身份不能自动接管旧实例 |
| installedBy | 原安装人,由平台安装记录提供 | 仅描述安装主体,不作为后续业务请求的最终用户 |
使用 Adapter 时,这些字段已经包含在经过认证的业务回调 context 中;开发者不负责拼装平台请求。 业务服务只处理自己需要的业务字段,并按完整归属执行。独立实现协议时也复用 SDK 类型,不复制身份 DTO。
安装身份
{
"installation": {
"environmentKey": "consumer",
"applicationRuntimeId": "runtime-a",
"workspaceId": 42,
"bundleInstallId": "installation-a",
"installedBy": 25,
"bundle": {
"environmentKey": "publisher",
"bundleId": "sales"
}
}
}installation.environmentKey 表示安装所在环境,installation.bundle.environmentKey 表示 Bundle 来源。
两者可以不同。installedBy 属于安装目标环境,表示原安装人,不表示 Bundle 发布者。
平台从安装记录提供此值;升级、配置及重试不改变它。
applicationRuntimeId、workspaceId、bundleInstallId 与来源 Bundle 共同定位安装;
resources 或引用请求中的 resource 使用完整 ResourceLocator 定位获授权资源。
不得从资源来源、工作区、域名或 Runtime ID 推断安装环境,也不得只按业务实例 ID 接管其他安装的资源。
环境键是环境登记的规范字符串:2–64 个 ASCII 字符,首位为字母或数字,其余为字母、数字、下划线或连字符。 大小写保留,拒绝 URL、空白或自动补齐。完整请求见协议。
生命周期交付与本地使用
管理器接收平台提供的完整 installation、资源 Locator 与获准配置;首次签发原文随 AFTER_RESOURCES 交付。以后只在完整资源、Runtime、安装、pluginId 和 tokenId 均匹配时保留本地加密秘密。
丢失后通过资源凭据 API4显式补签。Manager 从管理凭据取得 pluginId,Backend 校验已认证管理器、当前来源关系、目标安装与本包资源归属;请求不能自行指定另一个管理器身份。环境字段只用于定位,不是授权。
业务调用和进程重启读取受保护的运行配置,不自动补签或换环境。引用更新按完整投影覆盖;旧值已撤销或归属变化时停止使用,不能以历史配置恢复权限。
外部实例归属
创建、查询、修改和解除关联均校验完整安装身份。重新安装产生的新 bundleInstallId 不自动取得旧安装的外部实例。
显式传入已有实例编号时也必须验证其归属。历史关联必须由业务所有者根据可证明的安装记录迁移,不能按地址猜测归属。
安装与业务配置迁移完成后,再验证停止、卸载、重装以及跨环境隔离。