开发指南平台应用、模块与 Bundle 开发平台应用开发
平台应用开发
开发由 Bundle 组合交付、受平台身份和能力范围约束的工作区应用入口。
平台应用是由 Bundle 安装到工作区中的可版本化应用入口。前端通过 ENVIRONMENT_HOSTED_APP 在目标环境托管,也可使用已有平台内置页面或不授权的普通外链;需要访问平台能力时,必须由已启用的精确 Bundle 安装提供授权边界,再通过授权码和 PKCE 取得短期应用身份。
核心对象
| 对象 | 作用 |
|---|---|
| Platform Project | 类型为 PLATFORM_APPLICATION 的独立项目,同时保存前端源码和 baijimu.platform-application.json |
| Platform Application | 应用的稳定身份、名称和所有者 |
| Version | 某次不可变快照,包含入口、能力、配置和清单 |
| Bundle Resource | Bundle Manifest 对精确平台应用版本的引用 |
| Workspace Install | Bundle 安装后物化的平台应用安装记录,使用稳定 installId 标识 |
| Bundle Installation Authorization | 已启用的精确 Bundle 安装,是平台应用能否在该工作区启动的唯一安装授权源 |
appClientToken | 授权码兑换得到的短期应用访问 token |
标准生命周期
创建 PLATFORM_APPLICATION 项目
-> 在同一项目维护前端源码和平台应用配置
-> 一对一绑定 Platform Application
-> 创建不可变版本
-> 纳入 Bundle Manifest
-> 创建不可变 Bundle 版本
-> Bundle 安装到工作区
-> 用户打开入口
-> 平台校验工作区成员与已启用的 Bundle 安装
-> 通过 PKCE 签发安装隔离的短期应用身份
-> 调用声明范围内的能力
-> 创建资源新版本并升级 Bundle一个前端平台应用对应一个项目,不需要再创建第二个“React 静态应用项目”。普通网站仍使用普通前端项目;只有成为平台应用时才使用 PLATFORM_APPLICATION 项目类型。
环境托管前端使用支持 platform-app version create 的 baijimu CLI:从项目主线按精确版本构建,再创建不可变平台应用版本。
标准 SDK 使用同源环境配置;历史 TRUSTED_EXTERNAL_APP 不再支持平台启动和授权,必须迁移并升级 Bundle。
自动化工具应逐级读取目标子命令的 --help,不能依赖历史全量命令树或 methodDefinitionsJson/@file 发布内容。
开始开发前依次阅读:
平台应用与普通网站
普通网站只需要公开访问时,可以直接使用网站发布能力。只有需要安装到工作区、获得应用身份、声明平台能力或显示在工作区应用入口时,才应创建平台应用。
平台应用不能单独安装或单独授权
外部 Web 站点本身可以公开部署,但这不代表它已经获得某个工作区的平台能力。共享功能时应分享 Manager 的 Bundle 应用入口;接收者选择工作区后,平台会核验 Bundle 安装,缺少时提示工作区所有者或管理员先安装整个 Bundle。