# Bundle 生命周期插件开发

通过统一的 Bundle 插件机制管理外部业务实例，并在业务调用前解析当前引用访问材料。

生命周期插件用于开通外部租户、同步业务配置、停止外部实例或解除安装绑定。
所有插件统一在 Bundle 顶层绑定，以整个安装实例为操作边界；Module 通过逐资源授权提供属性，不单独拥有插件生命周期。
插件是独立部署的后端服务，程序和访问凭据不进入 Bundle。

新插件使用携带安装环境的引用协议：Bundle 生命周期 `6.0.0`、引用访问解析 `4.0.0`。
插件登记中的 `bundleExecution` 和 Bundle 绑定均须显式声明支持的协议。

## 从开发到安装验证

1. 实现并部署插件 HTTPS Endpoint，验证生命周期 `6.0.0` 请求。
2. 注册稳定 `pluginId` 与 Bundle 执行声明，配置双向调用所需的独立凭据。
3. 在 Bundle 顶层声明插件绑定、非敏感配置和资源属性授权。
4. 创建 Bundle 版本，在目标 Runtime 安装；由 Runtime 提供安装身份和操作身份。
5. 插件协调其拥有的外部业务状态，返回受授权的业务输出。
6. 每次业务调用及重试前按引用协议 `4.0.0` 获取当前地址与密钥。

## 责任边界

插件目录管理服务身份和执行地址；Bundle 管理资源组合与版本；Runtime 管理安装记录、活动版本、
操作、阶段执行和失败恢复。插件保存自己的业务实例及其安装归属，不能自己推进 Bundle 安装状态。
平台业务组件保存它们拥有的业务配置；同步配置不等于在这些组件中再安装一次插件。

普通安装、升级、卸载由平台安装器完成。只有需要协调外部业务状态时才引入生命周期插件。

## 开发路线

1. [安装环境与插件请求](/development/lifecycle-plugin-development/installation-environment/)
2. [Bundle 生命周期与引用协议](/development/lifecycle-plugin-development/reference-protocol/)
3. [插件注册与管理](/development/lifecycle-plugin-development/registration-management/)
4. [开发插件服务](/development/lifecycle-plugin-development/develop-plugin-service/)
5. [验证与发布](/development/lifecycle-plugin-development/verification-and-release/)
6. [Bundle 注册与绑定](/development/bundle-development/advanced/lifecycle-plugins/)
