跳转到主要内容
Twenty 应用的 配置层(config layer) 用来向 平台 描述应用——它的身份、所持有的权限,以及在安装或升级期间运行的代码。 这些声明不会添加新的数据结构或运行时行为;它们告诉 Twenty 这个应用是谁,以及 如何完成设置
┌────────────────────────────────────────────────────────┐
│ Application — identity, default role, variables,       │
│               marketplace metadata                     │
│                                                        │
│   ┌──────────────────────────────────────────────────┐ │
│   │ Role — what the app's logic functions can read   │ │
│   │ and write (referenced by Application)            │ │
│   └──────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────┘

                          ▼  (at install / upgrade time)
       ┌──────────────────────────────────┐
       │ Pre-install hook                 │  before metadata migration
       └──────────────────────────────────┘
       ┌──────────────────────────────────┐
       │ Post-install hook                │  after metadata migration
       └──────────────────────────────────┘

本节内容

应用程序配置

defineApplication —— 身份、默认角色、变量、应用市场元数据。

角色和权限

defineRole —— 声明应用的逻辑函数可以读取和写入什么。

安装钩子

definePreInstallLogicFunctiondefinePostInstallLogicFunction —— 备份数据、写入默认值、验证升级。

各部分之间的关系

  • Application 是入口点。 每个应用都有且仅有一次 defineApplication() 调用,并将一个 Role 作为其默认角色。
  • Role 控制应用的逻辑函数和前端组件可以读取和写入什么。 遵循最小权限原则:只授予代码实际需要的权限。
  • Install Hooks(安装钩子) 在安装或升级过程中运行——预安装钩子在元数据迁移之前运行(因此可以拒绝存在风险的升级),后安装钩子在迁移之后运行(因此可以根据新模式写入默认数据)。
安装钩子与 logic function 共用运行时——相同的处理器签名、相同的环境变量、相同的类型化 API 客户端——但它们使用各自的 define 函数声明,并且位于常规触发模型(HTTP、cron、数据库事件)之外。