百积木文档
开发指南平台应用、模块与 Bundle 开发平台应用开发

平台应用开发

开发由 Bundle 组合交付、受平台身份和能力范围约束的工作区应用入口。

平台应用是由 Bundle 安装到工作区中的可版本化应用入口。前端通过 ENVIRONMENT_HOSTED_APP 在目标环境托管,也可使用已有平台内置页面或不授权的普通外链。Bundle 安装或升级交付精确应用资源与来源凭据;用户打开实际入口后,通过授权码和 PKCE 取得短期应用身份。

核心对象

对象作用
Platform Project类型为 PLATFORM_APPLICATION 的独立项目,同时保存前端源码和 baijimu.platform-application.json
Platform Application应用的稳定身份、名称和所有者
Version某次不可变快照,包含入口、能力、配置和清单
Bundle ResourceBundle Manifest 对精确平台应用版本的引用
Workspace InstallBundle 安装后物化的平台应用安装记录,使用稳定 installId 标识
Runtime 应用资源Runtime Owner 保存的精确应用版本、启用配置与来源凭据;Bundle 安装账只承担审计与并发保护
appClientToken授权码兑换得到的短期应用访问 token

标准生命周期

创建 Platform Application 及其专属项目
  -> 在同一项目维护前端源码和平台应用配置
  -> 按前端版本固定 Git 标签并构建
  -> 创建不可变版本
  -> 纳入 Bundle Manifest
  -> 创建不可变 Bundle 版本
  -> Bundle 安装到工作区
  -> 用户打开入口
  -> 平台校验工作区成员、当前应用及来源凭据
  -> 通过 PKCE 签发安装隔离的短期应用身份
  -> 调用声明范围内的能力
  -> 创建资源新版本并升级 Bundle

一个前端平台应用对应一个项目,不需要再创建第二个“React 静态应用项目”。普通网站仍使用普通前端项目;只有成为平台应用时才使用 PLATFORM_APPLICATION 项目类型。

环境托管前端使用支持 platform-app version create 的 baijimu CLI:用 project build create --version 发布前端,取得成功任务返回的 artifactId,再传入该制品 ID 与同一提交创建不可变平台应用版本(CLI 0.131.0 起)。 标准 SDK 使用同源环境配置;历史 TRUSTED_EXTERNAL_APP 不再支持平台启动和授权,必须迁移并升级 Bundle。 自动化工具应逐级读取目标子命令的 --help,不能依赖历史全量命令树或 methodDefinitionsJson/@file 发布内容。

开始开发前依次阅读:

  1. App Gateway 接入与配置
  2. 入口类型与应用清单
  3. 平台应用授权与 PKCE
  4. 声明应用能力
  5. 调用模块方法
  6. Web 接入与运行态调用
  7. 创建版本并纳入 Bundle

平台应用与普通网站

普通网站只需要公开访问时,可以直接使用网站发布能力。只有需要安装到工作区、获得应用身份、声明平台能力或显示在工作区应用入口时,才应创建平台应用。

平台应用不能单独安装或单独授权

外部 Web 站点本身可以公开部署,但这不代表它已经获得某个工作区的平台能力。共享功能时应分享 Manager 的 Bundle 应用入口;接收者选择工作区后,平台会核验当前应用资源及来源凭据;资源未安装时先安装所属 Bundle。已有来源凭据缺失或已撤销时,按显式重新授权流程处理,普通升级不会自动恢复。

本页内容