百积木文档
开发指南Bundle 开发平台应用开发

入口类型与应用清单

正确选择平台内路由、普通外链或可信外部应用,并定义可由 Bundle 引用的版本清单。

入口类型决定应用在哪里运行、是否携带安装态,以及是否需要平台应用授权。不要仅根据 URL 是否为外部地址选择类型。

三种入口类型

entryType适用场景入口要求授权方式
PLATFORM_ROUTE平台管理端已经内置的页面/ 开头的平台相对路径继承平台管理端登录态,不跳转外部应用 PKCE 授权页
EXTERNAL_URL不调用平台能力的普通链接http://https:// 地址,不含安装态或运行态占位符不签发平台应用 token
TRUSTED_EXTERNAL_APP独立部署、需要平台安装态或平台 API 权限的 Web 应用http://https:// 地址,并包含 {installId}跳转平台网页授权页,使用 PKCE 兑换 token

如果一个普通外链后来需要调用平台 API,应把入口改为 TRUSTED_EXTERNAL_APP 并补齐能力声明,不能在 EXTERNAL_URL 上私自传递平台登录 token。

如果还不能确定平台应用入口是否需要接入 App Gateway,先阅读 App Gateway 接入与配置

入口模板

可信外部应用的入口只传递安装标识:

https://app.example.com/?installId={installId}

不要在入口模板中传递:

  • appClientToken
  • 平台用户 token
  • workspaceIduserId
  • 内部服务地址
  • 数据库或第三方系统密钥

平台安装后会把 {installId} 替换成真实安装记录。应用使用该标识启动授权,而不是根据 URL 中的其他字段自行信任用户身份。

打开方式

openMode 用于声明入口的展示位置:

  • CURRENT:在当前页面打开。
  • NEW_TAB:在浏览器新标签页打开。
  • WORKSPACE_TAB:在工作区标签中承载。

跨域应用在 WORKSPACE_TAB 中通常由 iframe 承载。应用需要同时验证自身的 frame、安全头、Cookie SameSite 和跨域策略是否允许这种运行方式。

版本清单

平台应用版本至少要把以下内容作为同一个不可变契约发布:

  • entryUrlTemplate
  • entryType
  • openMode
  • methodDefinitionsJson
  • configSchemaJson
  • manifestJson
  • 可选的卡片、后端模块和工作流定义

安装记录引用具体版本。修改入口、权限或配置结构后,应发布新版本并升级安装,不能只修改已经发布版本的预期行为。

本页内容