82 lines
7.4 KiB
Plaintext
82 lines
7.4 KiB
Plaintext
---
|
|
title: Приложения Twenty
|
|
description: Создавайте и управляйте настройками Twenty в виде кода.
|
|
---
|
|
|
|
<Warning>
|
|
Приложения сейчас проходят альфа-тестирование. Функция работает, но продолжает развиваться.
|
|
</Warning>
|
|
|
|
## Что такое приложения?
|
|
|
|
Приложения позволяют расширять Twenty с помощью пользовательских объектов, полей, логических функций, фронтенд-компонентов, навыков ИИ и многого другого — всё это управляется как код. Вместо настройки всего через интерфейс вы определяете модель данных и логику на TypeScript и развёртываете её в одном или нескольких рабочих пространствах.
|
|
|
|
**Что вы можете создать:**
|
|
|
|
* **Пользовательские объекты и поля** — расширяйте модель данных новыми сущностями или добавляйте поля к существующим объектам, таким как Company или Person
|
|
* **Логические функции** — серверные функции, запускаемые событиями базы данных, расписаниями cron или HTTP-маршрутами
|
|
* **Фронтенд-компоненты** — компоненты React, которые отображаются в интерфейсе Twenty (страницы записей, командное меню, боковые панели)
|
|
* **Навыки и агенты ИИ** — расширяйте ИИ Twenty пользовательскими возможностями
|
|
* **Представления и навигация** — преднастроенные сохранённые представления и ссылки боковой панели
|
|
|
|
## Быстрый старт
|
|
|
|
```bash filename="Terminal"
|
|
npx create-twenty-app@latest my-twenty-app
|
|
cd my-twenty-app
|
|
yarn twenty dev
|
|
```
|
|
|
|
Это создаёт каркас нового приложения, при необходимости запускает локальный сервер Twenty и начинает отслеживать изменения в ваших файлах. См. руководство [Начало работы](/l/ru/developers/extend/apps/getting-started) для полного пошагового разбора.
|
|
|
|
## Подробные руководства
|
|
|
|
| Руководство | Описание |
|
|
| -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
| [Начало работы](/l/ru/developers/extend/apps/getting-started) | Создание каркаса приложения, настройка локального сервера, структура проекта, CI |
|
|
| [Создание приложений](/l/ru/developers/extend/apps/building) | Определения сущностей (`defineObject`, `defineLogicFunction`, `defineFrontComponent` и т. д.), клиенты API, пакеты npm, публичные ассеты, тестирование |
|
|
| [Публикация](/l/ru/developers/extend/apps/publishing) | Развёртывание на сервер, публикация в npm и маркетплейсе |
|
|
|
|
## Ключевые понятия
|
|
|
|
### Обнаружение сущностей
|
|
|
|
SDK обнаруживает сущности, сканируя ваши файлы TypeScript в поисках вызовов `export default define<Entity>({...})`. Имена файлов и структура папок гибкие — обнаружение основано на AST, а не на путях.
|
|
|
|
### Доступные типы сущностей
|
|
|
|
| Функция | Назначение |
|
|
| ---------------------------------- | ------------------------------------------------------------ |
|
|
| `defineApplication()` | Метаданные приложения (обязательно, по одному на приложение) |
|
|
| `defineObject()` | Пользовательские объекты с полями |
|
|
| `defineField()` | Поля в существующих объектах |
|
|
| `defineLogicFunction()` | Серверная логика с триггерами |
|
|
| `defineFrontComponent()` | Компоненты React в интерфейсе Twenty |
|
|
| `defineRole()` | Роли доступа |
|
|
| `defineView()` | Конфигурации сохранённых представлений |
|
|
| `defineNavigationMenuItem()` | Ссылки боковой панели навигации |
|
|
| `defineSkill()` | Навыки агента ИИ |
|
|
| `defineAgent()` | ИИ-агенты с промптами |
|
|
| `definePageLayout()` | Пользовательские макеты страниц записей |
|
|
| `definePreInstallLogicFunction()` | Выполняется перед установкой приложения |
|
|
| `definePostInstallLogicFunction()` | Выполняется после установки приложения |
|
|
|
|
### Рабочий процесс разработки
|
|
|
|
1. **`yarn twenty dev`** — следит за исходными файлами, пересобирает при изменениях, синхронизируется с сервером, генерирует типизированные клиенты API
|
|
2. **`yarn twenty build`** — создаёт дистрибутивную сборку
|
|
3. **`yarn twenty deploy`** — развёртывает на удалённый сервер Twenty
|
|
4. **`yarn twenty add`** — интерактивно создаёт каркас новой сущности
|
|
|
|
### Справочник по CLI
|
|
|
|
```bash filename="Terminal"
|
|
yarn twenty help # Показать все команды
|
|
yarn twenty server start # Запустить локальный сервер разработки
|
|
yarn twenty remote add # Подключиться к серверу Twenty
|
|
yarn twenty exec -n fn # Выполнить логическую функцию
|
|
yarn twenty logs -n fn # Транслировать логи функции
|
|
```
|
|
|
|
См. руководство [Начало работы](/l/ru/developers/extend/apps/getting-started) для полной справки по CLI.
|