百积木文档
开发指南Bundle 生命周期插件开发

资源凭据领取与生命周期通知

按插件安装和来源资源领取调用材料,配置变化通知,独立轮换与卸载失效

本页记录 2026-10-21 确认的目标边界,尚未实现、定版或发布。依赖与准确版本须单独确认。 完整合同见资源凭据协议。 现有 SDK 12.0.0 的版本化示例见现有协议。

领取什么、何时领取

Hosted 在相关 AFTER_RESOURCES 中主动调用新的资源凭据接口,传入 installation 与来源 resource,不再传 propertyKey 或 eventName。插件身份来自管理凭据认证,不能在请求里指定另一个 pluginId。 响应提供 Runtime 网关地址、实际来源 businessId、tokenId 和 token 本身。Hosted 加密保存一份资源级凭据,属性和集合叶子不重复保存秘密。回调不携带平台 token,不新增 callAccess、runtimeAccess 或 deliveryAcknowledgements。

AFTER_RESOURCES 可以在安装、升级、配置等操作中多次发生;重复领取返回当前仍有效的同一凭据,不是整个生命周期只能领取一次。ACS 现有能力支持按 tokenId 再次取回原文,本轮不修改 ACS 的存储方式或合同。已撤销凭据不能通过重复领取复活。

身份与权限

Backend 按 Runtime、来源 ResourceLocator、插件安装身份关联 tokenId;插件凭据与原生资源凭据分开。ACS 继续负责秘密、认证状态和撤销,不需要增加插件字段。

新 API 复用当前资源的合法 credentialProperties 授权;非空名单表示该绑定已有调用材料领取权,并限定引用配置通知范围。仅有 Data 读写权不能领取 token。新接口不接收属性参数,不在本轮改写旧 Bundle 声明或添加 resourceAccess/referenceProperties 字段。

tokenId 只用于关联与预期值比较,不能当作 Bearer。资源 token 不代表用户身份,请求用户委托独立传递且不持久化。

配置与正常调用

属性或集合配置提交后,通过生命周期通知完整获准结构。Map 增删、List 重排、改绑与清空都通知;直接属性更新也必须覆盖。配置提交与通知成功分别确认,失败仅恢复通知,不重做已提交写入。

Hosted 使用统一路径 codec 生成普通地址:

{apiGatewayUrl}/{businessId}/{property}/{key-or-index}/.../{method}

实际入口来自领取响应,不能从 Locator 重算,也不能换成提供方入口。Gateway 根据当前绑定选择提供方;业务请求及重试不调用引用解析、领取或轮换接口,不读取完整 Runtime、不展开能力。

轮换和失效

插件使用独立管理凭据调用 rotate,传入 installation、resource、requestId 与 expectedTokenId。Backend 幂等关联本次新旧凭据,轮换只撤销这个插件的旧 token;Hosted 保存新材料。泄漏的出站 token 本身不是轮换接口的认证依据。

不做多插件广播、共同轮换或确认协调。插件解绑只撤销该插件安装的凭据;来源资源整体卸载则撤销所有相关凭据。权威撤销不等待 Hosted 清理成功,旧回调与旧轮换响应不能复活本地配置。

实施与验收

新增独立资源凭据 API,旧 lifecycle/reference wire 不塞新字段。现有安装通过正式生命周期领取新凭据;旧共享副本的撤销须核对其原生 Owner 用途,不能直接扫掉同一来源所有 token。

验证重复领取、轮换幂等、只撤销自己的旧凭据、卸载与迟到请求、配置集合变化、特殊路径编码、秘密加密和日志脱敏。验证 Hosted 重启后业务调用无引用解析,以及原故障入口的重复调用。文档、源码、构建、部署和业务验证是不同完成状态。

本页内容