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-casemy-service
Имя действияsnake_casesend_message
Имя триггераsnake_casenew_message

Имена валидируются при создании. Некорректные имена вызывают Error.

Страницы SDK

On this page