defineApplication 调用。 它声明:
- 应用的身份 — 通用标识符、显示名称、描述。
- 权限 — 其逻辑函数和前端组件在何种角色下运行。
- 变量(可选)— 以环境变量形式暴露给代码的键值对。
- 安装前/安装后函数(可选)— 参见 逻辑函数。
src/application-config.ts
universalIdentifier字段是你拥有的确定性 ID。 只需生成一次,并在多次同步过程中保持稳定不变。applicationVariables会变成你的函数和前端组件可用的环境变量。 在逻辑函数(服务端)中,可以通过process.env.VARIABLE_NAME使用它们。 在前端组件中,使用twenty-sdk/front-component中的getApplicationVariable('VARIABLE_NAME')。 标记为isSecret: true的变量只会注入到逻辑函数中。 前端组件只会接收非机密变量。- 默认角色会根据使用
defineApplicationRole()标记的角色文件自动检测——你不需要在defineApplication()中引用它。 - 在构建清单时会自动检测安装前/安装后函数——无需在
defineApplication()中引用它们。 - 显式传递
defaultRoleUniversalIdentifier仍然受支持以保持向后兼容性,但已弃用,推荐改用defineApplicationRole()。
默认函数角色
使用defineApplicationRole() 声明的角色控制应用的逻辑函数和前端组件可以访问的内容:
- 作为
TWENTY_APP_ACCESS_TOKEN注入的运行时令牌来源于该角色。 - 类型化 API 客户端将受限于授予该角色的权限。
- 遵循最小权限原则:只声明你的函数所需的权限。
src/roles/default-role.ts 中创建一个入门角色文件。 完整参考请参见 角色与权限。
应用市场元数据
如果你计划发布你的应用,这些可选字段将控制你的应用在应用市场中的展示:| 字段 | 描述 |
|---|---|
作者 | 作者或公司名称 |
类别 | 用于应用市场筛选的应用类别 |
logoUrl | 应用徽标的路径(例如 public/logo.png) |
screenshots | 截图路径数组(例如 public/screenshot-1.png) |
aboutDescription | 用于“关于”选项卡的更长的 Markdown 描述。 如果省略,市场将使用该软件包在 npm 上的 README.md。 |
websiteUrl | 你的网站链接 |
termsUrl | 服务条款链接 |
emailSupport | 支持电子邮件地址 |
issueReportUrl | 问题跟踪器链接 |