Перейти к основному содержанию
Приложения сейчас проходят альфа-тестирование. Функциональность работает, но продолжает развиваться.

Обзор

После того как ваше приложение собрано и протестировано локально, у вас есть два пути для его распространения:
  • Опубликовать в npm — разместите ваше приложение в маркетплейсе Twenty, чтобы любое рабочее пространство могло его найти и установить.
  • Отправить tarball — разверните приложение на конкретном сервере Twenty для внутреннего использования, не делая его общедоступным.

Публикация в npm

Публикация в npm делает ваше приложение видимым в маркетплейсе Twenty. Любое рабочее пространство Twenty может просматривать, устанавливать и обновлять приложения из маркетплейса непосредственно из интерфейса.

Требования

  • Учётная запись npm
  • Название вашего пакета должно использовать префикс twenty-app- (например, twenty-app-postcard-sender)

Шаги

  1. Соберите приложение — CLI компилирует исходные файлы TypeScript и генерирует манифест приложения:
yarn twenty app:build
  1. Опубликуйте в npm — отправьте собранный пакет в реестр npm:
npx twenty app:publish

Автоматическое обнаружение

Пакеты с префиксом twenty-app- автоматически обнаруживаются каталогом маркетплейса Twenty. После публикации ваше приложение появится в маркетплейсе в течение нескольких минут — ручная регистрация или одобрение не требуются.

Публикация через CI

Сгенерированный шаблоном проект включает workflow GitHub Actions, который выполняет публикацию при каждом релизе. Он запускает app:build, затем npm publish --provenance из результатов сборки:
name: Publish
on:
  release:
    types: [published]

permissions:
  contents: read
  id-token: write

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: "24"
          registry-url: https://registry.npmjs.org
      - run: yarn install --immutable
      - run: npx twenty app:build
      - run: npm publish --provenance --access public
        working-directory: .twenty/output
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
Для других CI-систем (GitLab CI, CircleCI и др.) применимы те же три команды: yarn install, npx twenty app:build, затем npm publish из .twenty/output.
npm provenance — опционально, но рекомендуется. Публикация с флагом --provenance добавляет к вашему пакету в npm значок доверия, позволяя пользователям проверить, что пакет был собран из конкретного коммита в общедоступном конвейере CI. См. инструкции по настройке в документации по npm provenance.

Внутреннее распространение

Для приложений, которые вы не хотите делать общедоступными — собственные инструменты, интеграции только для предприятия или экспериментальные сборки — вы можете отправить tarball напрямую на сервер Twenty.

Отправка tarball

Соберите приложение и разверните его на конкретном сервере одним шагом:
npx twenty app:publish --server <server-url>
Любое рабочее пространство на этом сервере сможет установить и обновить приложение на странице настроек Applications.

Управление версиями

Чтобы выпустить обновление:
  1. Обновите значение поля version в файле package.json
  2. Отправьте новый tarball командой npx twenty app:publish --server <server-url>
  3. Рабочие пространства на этом сервере увидят доступное обновление в своих настройках
Внутренние приложения ограничены сервером, на который они отправлены. Они не появятся в публичном маркетплейсе и не могут быть установлены рабочими пространствами на других серверах.

Категории приложений

Twenty группирует приложения в три категории в зависимости от способа их распространения:
КатегорияКак это работаетОтображается в маркетплейсе?
РазработкаЛокальные приложения в режиме разработки, запущенные через yarn twenty app:dev. Используются для сборки и тестирования.Нет
ОпубликованоПриложения, опубликованные в npm с префиксом twenty-app-. Отображаются в маркетплейсе, доступные для установки любому рабочему пространству.Да
ВнутреннийПриложения, развернутые через tarball на конкретном сервере. Доступны только рабочим пространствам на этом сервере.Нет
Начните в режиме Разработка во время создания приложения. Когда будет готово, выберите Опубликовано (npm) для широкого распространения или Внутренний (tarball) для приватного развертывания.