百积木文档
开发指南平台应用、模块与 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 标识
Bundle Installation Authorization已启用的精确 Bundle 安装,是平台应用能否在该工作区启动的唯一安装授权源
appClientToken授权码兑换得到的短期应用访问 token

标准生命周期

创建 PLATFORM_APPLICATION 项目
  -> 在同一项目维护前端源码和平台应用配置
  -> 一对一绑定 Platform Application
  -> 创建不可变版本
  -> 纳入 Bundle Manifest
  -> 创建不可变 Bundle 版本
  -> Bundle 安装到工作区
  -> 用户打开入口
  -> 平台校验工作区成员与已启用的 Bundle 安装
  -> 通过 PKCE 签发安装隔离的短期应用身份
  -> 调用声明范围内的能力
  -> 创建资源新版本并升级 Bundle

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

环境托管前端使用支持 platform-app version createbaijimu CLI:从项目主线按精确版本构建,再创建不可变平台应用版本。 标准 SDK 使用同源环境配置;历史 TRUSTED_EXTERNAL_APP 不再支持平台启动和授权,必须迁移并升级 Bundle。 自动化工具应逐级读取目标子命令的 --help,不能依赖历史全量命令树或 methodDefinitionsJson/@file 发布内容。

开始开发前依次阅读:

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

平台应用与普通网站

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

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

外部 Web 站点本身可以公开部署,但这不代表它已经获得某个工作区的平台能力。共享功能时应分享 Manager 的 Bundle 应用入口;接收者选择工作区后,平台会核验 Bundle 安装,缺少时提示工作区所有者或管理员先安装整个 Bundle。

本页内容