defineApplication. Он объявляет:
- Идентификация — универсальный идентификатор, отображаемое имя, описание.
- Разрешения — от имени какой роли выполняются его логические функции и фронтенд-компоненты.
- Переменные (необязательно) — пары ключ–значение, доступные вашему коду как переменные окружения.
- Хуки предустановки / постустановки (необязательно) — см. Логические функции.
src/application-config.ts
- Поля
universalIdentifier— это детерминированные идентификаторы, которые принадлежат вам. Сгенерируйте их один раз и сохраняйте неизменными между синхронизациями. applicationVariablesстановятся переменными окружения для ваших функций и фронтенд-компонентов. В логических функциях (на стороне сервера) они доступны какprocess.env.VARIABLE_NAME. Во фронтенд-компонентах используйтеgetApplicationVariable('VARIABLE_NAME')изtwenty-sdk/front-component. Переменные, помеченные какisSecret: true, внедряются только в логические функции. Фронтенд-компоненты получают только несекретные переменные.- Роль по умолчанию автоматически определяется из файла роли, помеченного с помощью
defineApplicationRole()— вам не нужно ссылаться на неё изdefineApplication(). - Предустановочные и постустановочные функции обнаруживаются автоматически во время сборки манифеста — вам не нужно указывать их в
defineApplication(). - Явная передача
defaultRoleUniversalIdentifierпо-прежнему поддерживается для обратной совместимости, но считается устаревшей и вместо неё рекомендуется использоватьdefineApplicationRole().
Роль функции по умолчанию
Роль, объявленная с помощьюdefineApplicationRole(), определяет, к чему могут получать доступ логические функции и фронтенд‑компоненты приложения:
- Токен времени выполнения, подставляемый как
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 | Ссылка на систему отслеживания проблем |