В каждом приложении должен быть ровно один вызов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
- Поля
universalIdentifier— это детерминированные идентификаторы, которые принадлежат вам. Сгенерируйте их один раз и сохраняйте неизменными между синхронизациями. applicationVariablesстановятся переменными окружения для ваших функций и фронтенд-компонентов (например,DEFAULT_RECIPIENT_NAMEдоступна какprocess.env.DEFAULT_RECIPIENT_NAME).defaultRoleUniversalIdentifierдолжен ссылаться на роль, определённую с помощьюdefineRole().- Предустановочные и постустановочные функции обнаруживаются автоматически во время сборки манифеста — вам не нужно указывать их в
defineApplication().
Роль функции по умолчанию
defaultRoleUniversalIdentifier определяет, к чему могут получать доступ логические функции и фронтенд-компоненты приложения:
- Токен времени выполнения, подставляемый как
TWENTY_APP_ACCESS_TOKEN, формируется из этой роли. - Типизированный клиент API ограничен правами, предоставленными этой роли.
- Следуйте принципу наименьших привилегий: объявляйте только те разрешения, которые действительно нужны вашим функциям.
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 | Ссылка на систему отслеживания проблем |