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

Как работают приложения

Приложение — это набор сущностей, объявленных с помощью функций defineEntity() из пакета twenty-sdk. CLI обнаруживает эти объявления по AST анализу во время сборки и дает проявление — полное описание того, что добавляет ваше приложение в рабочую область. Эти функции проверяют вашу конфигурацию на этапе сборки и обеспечивают автодополнение в IDE и безопасность типов.
Выбрана файловая организация. Определение сущности — на основе AST, SDK находит export default defineEntity(. .) вызовы, независимо от того, где находится файл . Структура папок выше — это соглашение, а не требование.

Типы сущностей

Изоляция в песочнице

  • Логические функции выполняются в изолированных процессах Node.js на сервере. Они имеют доступ к данным только через напечатанный API-клиент, который действует либо как человек, который инициировал запуск, либо как само приложение. Смотрите Чей доступ к звонкам.
  • Компоненты фронтенда запускаются в Web Workers с использованием Remote DOM — изолированы от основной страницы, но при этом рендерят нативные элементы DOM (не iframes). Они взаимодействуют с Twenty через хостовый API обмена сообщениями.
  • Права доступа применяются на уровне API. Два токена во время выполнения вводятся в действие - оба из этих токенов, полученных от роли, заявленной с помощью defineApplicationRole(); по умолчанию один сужен дальше к тому, что запускающий человек может делать, когда кто-то находится за бегом.

Жизненный цикл приложения

  • twenty app dev — смотрит на исходные файлы и live-синхронизирует изменения на подключенный Twenty сервер. Типизированный клиент API автоматически пересоздаётся при изменении схемы.
  • twenty app build — компилирует TypeScript, упаковывает логические функции и передние компоненты с esbuild, и производит манифест.
  • Хуки до/после установки и удаления — необязательные функции, которые выполняются во время установки или непосредственно перед удалением. См. раздел Install Hooks для подробностей.

Следующие шаги

apps-config
Конфигурация
Идентификатор приложения, роль по умолчанию и установка и удаление хуков.
apps-data
Данные
Объекты, поля и двунаправленные связи.
apps-logic
Логика
Функции логики, навыки, агенты, подключения и каналы сообщений.
layout-window-v1
Макет
просмотра, навигация, макеты страниц, передние компоненты.
apps-operations
Операции
CLI, тестирование, удаление, CI и публикация вашего приложения.