SDK
Обзор Connector SDK
Создание кастомных интеграций для Triggo с помощью Connector SDK. Архитектура, установка и основные API.
Обзор Connector SDK
Пакет @triggo/connector-sdk предоставляет строительные блоки для создания кастомных коннекторов, которые интегрируют внешние сервисы с пайплайнами Triggo.
Архитектура
Коннектор -- это самодостаточный пакет, который объявляет:
- Аутентификацию (Authentication) -- способ подключения аккаунта пользователя (OAuth2, API-ключ, пользовательские поля или без аутентификации)
- Действия (Actions) -- операции, которые коннектор может выполнять (например, отправить сообщение, создать запись)
- Триггеры (Triggers) -- события, на которые коннектор реагирует (например, получено новое сообщение, обновлена запись)
Connector
├── Auth (OAuth2 | SecretText | Custom | None)
├── Actions[]
│ ├── Props (input fields)
│ └── run(context) → result
└── Triggers[]
├── Props (input fields)
├── onEnable(context) → void | OnEnableResult
├── onDisable(context) → void
└── run(context) → events[]Установка
pnpm add @triggo/connector-sdk @triggo/sharedОсновные экспорты
| Экспорт | Вид | Назначение |
|---|---|---|
createConnector | Фабрика | Собирает коннектор из аутентификации + действий + триггеров |
createAction | Фабрика | Определяет действие с типизированными свойствами и функцией run |
createTrigger | Фабрика | Определяет триггер с хуками жизненного цикла |
ConnectorAuth | Пространство имён | Конструкторы типов аутентификации (OAuth2, SecretText, CustomAuth, None) |
Property | Пространство имён | Конструкторы входных свойств (11 типов) |
ConnectorError | Класс | Структурированная ошибка с кодом и флагом повторяемости |
TRIGGER_TYPES | Константа | { WEBHOOK, POLLING } |
AUTH_TYPES | Константа | { OAUTH2, SECRET_TEXT, CUSTOM, NONE } |
Минимальный пример
import {
createConnector,
createAction,
ConnectorAuth,
Property,
} from "@triggo/connector-sdk";
const greet = createAction({
name: "greet_user",
displayName: "Greet User",
description: "Returns a greeting for the given name.",
props: {
name: Property.ShortText({
displayName: "Name",
description: "The name to greet.",
required: true,
}),
},
async run(context) {
const name = context.propsValue.name as string;
return { greeting: `Hello, ${name}!` };
},
});
export const myConnector = createConnector({
name: "my-service",
displayName: "My Service",
description: "A minimal connector example.",
auth: ConnectorAuth.None(),
actions: [greet],
triggers: [],
});Соглашения об именовании
| Сущность | Правило | Пример |
|---|---|---|
| Имя коннектора | kebab-case | my-service |
| Имя действия | snake_case | send_message |
| Имя триггера | snake_case | new_message |
Имена валидируются при создании. Некорректные имена вызывают Error.
Страницы SDK
- Создание коннектора -- справочник по API
createConnector() - Создание действия -- справочник по API
createAction() - Создание триггера -- справочник по API
createTrigger() - Аутентификация -- OAuth2, SecretText, Custom, None
- Свойства -- 11 типов свойств для объявления входных данных
- Контекст и хранилище -- Контекст выполнения и персистентное хранилище
- Обработка ошибок --
ConnectorError, коды ошибок, поведение при повторах - Полный пример -- Пошаговое создание коннектора от начала до конца