メインコンテンツへスキップ
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 — データのバックアップ、デフォルト値の投入、アップグレードの検証を行います。

各要素同士の関係

  • アプリケーション がエントリポイントです。 すべてのアプリには defineApplication() 呼び出しが 1 つだけ存在し、その呼び出しは 1 つの ロール をデフォルトとして指します。
  • ロール は、アプリのロジック関数とフロントコンポーネントが読み書きできる内容を制御します。 最小権限の原則に従い、コードが実際に必要とする権限だけを付与してください。
  • インストールフック はインストールまたはアップグレード時に実行されます。メタデータのマイグレーション前にプレインストールが実行されるため(リスクの高いアップグレードを拒否できます)、マイグレーション後にポストインストールが実行され(新しいスキーマに対してデフォルトデータを投入できます)。
インストールフックは logic function ランタイムを共有します。つまり、同じハンドラーシグネチャ、同じ環境変数、同じ型付き API クライアントを使用します。ただし、独自の define 関数で宣言され、通常のトリガーモデル(HTTP、cron、データベースイベント)とは別に存在します。