Перейти к основному содержанию

Documentation Index

Fetch the complete documentation index at: https://docs.twenty.com/llms.txt

Use this file to discover all available pages before exploring further.

В каждом приложении должен быть ровно один вызов defineApplication. Он объявляет:
  • Идентификация — универсальный идентификатор, отображаемое имя, описание.
  • Разрешения — от имени какой роли выполняются его логические функции и фронтенд-компоненты.
  • Переменные (необязательно) — пары ключ–значение, доступные вашему коду как переменные окружения.
  • Хуки предустановки / постустановки (необязательно) — см. Логические функции.
src/application-config.ts
import { defineApplication } from 'twenty-sdk/define';
import { DEFAULT_ROLE_UNIVERSAL_IDENTIFIER } from 'src/roles/default-role';

export default defineApplication({
  universalIdentifier: '39783023-bcac-41e3-b0d2-ff1944d8465d',
  displayName: 'My Twenty App',
  description: 'My first Twenty app',
  applicationVariables: {
    DEFAULT_RECIPIENT_NAME: {
      universalIdentifier: '19e94e59-d4fe-4251-8981-b96d0a9f74de',
      description: 'Default recipient name for postcards',
      value: 'Jane Doe',
      isSecret: false,
    },
  },
  defaultRoleUniversalIdentifier: DEFAULT_ROLE_UNIVERSAL_IDENTIFIER,
});
Заметки:
  • Поля universalIdentifier — это детерминированные идентификаторы, которые принадлежат вам. Сгенерируйте их один раз и сохраняйте неизменными между синхронизациями.
  • applicationVariables становятся переменными окружения для ваших функций и фронтенд-компонентов (например, DEFAULT_RECIPIENT_NAME доступна как process.env.DEFAULT_RECIPIENT_NAME).
  • defaultRoleUniversalIdentifier должен ссылаться на роль, определённую с помощью defineRole().
  • Предустановочные и постустановочные функции обнаруживаются автоматически во время сборки манифеста — вам не нужно указывать их в defineApplication().

Роль функции по умолчанию

defaultRoleUniversalIdentifier определяет, к чему могут получать доступ логические функции и фронтенд-компоненты приложения:
  • Токен времени выполнения, подставляемый как TWENTY_APP_ACCESS_TOKEN, формируется из этой роли.
  • Типизированный клиент API ограничен правами, предоставленными этой роли.
  • Следуйте принципу наименьших привилегий: объявляйте только те разрешения, которые действительно нужны вашим функциям.
Когда вы создаёте новое приложение с помощью шаблона, CLI создаёт стартовый файл роли по адресу src/roles/default-role.ts. Полную справочную информацию см. в разделе Роли и разрешения.

Метаданные маркетплейса

Если вы планируете опубликовать приложение, эти необязательные поля определяют, как оно отображается в маркетплейсе:
ПолеОписание
authorИмя автора или название компании
categoryКатегория приложения для фильтрации в маркетплейсе
logoUrlПуть к логотипу вашего приложения (например, public/logo.png)
screenshotsМассив путей к скриншотам (например, public/screenshot-1.png)
aboutDescriptionРасширенное описание в Markdown для вкладки “About”. Если опущено, маркетплейс использует README.md пакета из npm
websiteUrlСсылка на ваш сайт
termsUrlСсылка на условия предоставления услуг
emailSupportАдрес электронной почты поддержки
issueReportUrlСсылка на систему отслеживания проблем