开发指南平台应用、模块与 Bundle 开发
百积木平台开发
从普通资源组合开始开发 Bundle,只在需要管理外部资源时使用高级生命周期插件。
百积木平台开发面向需要进入工作区、Runtime、Bundle 或百积木客户端的扩展能力。Bundle 是工作区产品的组合交付单元。每个 Bundle 绑定一个 BUNDLE Git 项目,项目中的
baijimu.bundle.json 保存可评审的资源和权限声明;发布时从精确提交生成不可变版本内容。
前端源代码、后端二进制和插件服务程序都不直接打进 Bundle。
Bundle 中的开发对象
- 模块开发:定义运行时能力、方法、属性和用户域。
- 平台应用开发:定义工作区入口、授权和可调用能力。
- Hosted Service 使用 Bundle Capability:让 Bundle 自有后端受控查询已安装资源,并查看或执行工作流与定时任务。
- 权限定义开发:登记 Runtime 权限点和展示分类。
- 人工事项定义开发:在自己的 Bundle 中定义人工输入输出,发布并由 human 节点引用。
- Event Trigger 绑定工作流与输入映射:把事件数据映射为 Workflow 输入,启动独立人工处理流程。
- 角色模板开发:为人工节点候选和 Runtime 权限提供稳定
roleKey。
后端应用保持独立,通过 BuildJob、Artifact 和 Hosted Service 部署。大多数 Bundle 到这里 就已经完整,不需要开发插件服务。
核心资源
业务 Bundle 的核心源码是 baijimu.bundle.json,其中 definition.resources 统一引用:
- Module、Platform Application、Workflow、Timer、IssueDefinition 等精确资源版本
- Type Definition 兼容依赖与 Bundle 版本依赖
- 请求和提供的权限声明
平台还可以为特定系统 Bundle 编排工作流、定时任务、权限定义和角色模板。权限定义先形成当前 Runtime
可用的权限目录,角色模板再通过 serviceId + permissionCode 授权。两者都是独立的精确版本资源,不能把
角色 grant、顶层权限元数据或工作区人工权限当成权限定义资源的替代品。
选择开发层级
| 层级 | 适用情况 | 是否需要生命周期插件 |
|---|---|---|
| 普通 Bundle | 组合模块、平台应用、工作流、定时任务等平台资源 | 否 |
| 可配置 Bundle | 安装时由用户填写 API Key、区域、已有租户编号等参数 | 否 |
| 高级 Bundle | 安装、升级或卸载时需要创建、迁移、验证或回收平台外部资源 | 是 |
用户手工填写已有第三方租户编号,并不等于需要插件。只有平台必须代替用户管理外部资源 生命周期时,才进入 高级开发。
生命周期
创建 BUNDLE 项目并提交 baijimu.bundle.json
-> 创建或一次性绑定 Bundle Definition
-> 在 Bundle 内冻结模块等不可变资源版本
-> 更新源码并提交 Git
-> 从精确 Git commit 创建 Bundle Version
-> 按精确版本选择 OWNER_ONLY、TARGETED 或 PUBLIC_DIRECT
或独立提交 Bundle 市场审核
-> 安装到工作区
-> 查询资源台账
-> 升级或卸载继续阅读: