SDK

Создание коннектора

Справочник по API createConnector() — собирает аутентификацию, действия и триггеры в иммутабельный ConnectorDefinition.

Создание коннектора

createConnector() -- это фабричная функция верхнего уровня, которая собирает аутентификацию, действия и триггеры в иммутабельный ConnectorDefinition.

Сигнатура

import { createConnector } from "@triggo/connector-sdk";

function createConnector(config: ConnectorConfig): ConnectorDefinition;

ConnectorConfig

ПолеТипОбязательноОписание
namestringДаУникальный идентификатор коннектора. Должен быть в формате kebab-case (например, my-service).
displayNamestringДаЧитаемое имя, отображаемое в интерфейсе.
descriptionstringДаКраткое описание того, с чем интегрируется коннектор.
authAuthDefinitionДаКонфигурация аутентификации. Используйте ConnectorAuth.OAuth2(), .SecretText(), .CustomAuth() или .None().
actionsActionDefinition[]ДаМассив действий, созданных с помощью createAction().
triggersTriggerDefinition[]ДаМассив триггеров, созданных с помощью createTrigger().

ConnectorDefinition (возвращаемый тип)

Возвращаемый объект глубоко заморожен и включает всё из конфигурации, а также вычисляемые поля:

ПолеТипОписание
namestringИмя коннектора в kebab-case.
displayNamestringЧитаемое имя.
descriptionstringОписание коннектора.
authAuthDefinitionПереданное определение аутентификации.
actionsreadonly ActionDefinition[]Замороженный массив действий.
triggersreadonly TriggerDefinition[]Замороженный массив триггеров.
actionsMapReadonlyMap<string, ActionDefinition>Действия, индексированные по имени для поиска за O(1).
triggersMapReadonlyMap<string, TriggerDefinition>Триггеры, индексированные по имени для поиска за O(1).
schemaConnectorSchemaАвтоматически сгенерированная JSON Schema для аутентификации, входных данных действий и триггеров.

Правила валидации

createConnector() выбрасывает исключение при некорректных данных:

  • Формат имени -- должен соответствовать /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/ (непустой kebab-case)
  • Массив действий -- должен быть массивом (не null, не undefined)
  • Массив триггеров -- должен быть массивом (не null, не undefined)
  • Дублирование имён действий -- исключение, если два действия имеют одинаковое имя
  • Дублирование имён триггеров -- исключение, если два триггера имеют одинаковое имя

Пример

import {
  createConnector,
  createAction,
  createTrigger,
  ConnectorAuth,
  Property,
  TRIGGER_TYPES,
} from "@triggo/connector-sdk";

const auth = ConnectorAuth.SecretText({
  displayName: "API Key",
  description: "Your service API key.",
});

const fetchItems = createAction({
  name: "fetch_items",
  displayName: "Fetch Items",
  description: "Retrieves a list of items from the service.",
  props: {
    limit: Property.Number({
      displayName: "Limit",
      description: "Maximum number of items to return.",
      required: false,
      defaultValue: 10,
    }),
  },
  async run(context) {
    const limit = (context.propsValue.limit as number) ?? 10;
    const secret = (context.auth as { secret: string }).secret;
    const response = await fetch("https://api.example.com/items?limit=" + limit, {
      headers: { Authorization: `Bearer ${secret}` },
    });
    return await response.json();
  },
});

export const exampleConnector = createConnector({
  name: "example-service",
  displayName: "Example Service",
  description: "Integrates with Example Service API.",
  auth,
  actions: [fetchItems],
  triggers: [],
});

Автоматически генерируемая схема

Поле schema в возвращаемом определении содержит JSON Schema представления:

  • schema.auth -- схема полей аутентификации
  • schema.actions -- схема входных данных каждого действия, индексированная по имени действия
  • schema.triggers -- схема входных данных каждого триггера, индексированная по имени триггера

Эти схемы используются AI-системой для понимания возможностей коннектора при генерации пайплайнов.

Иммутабельность

Возвращаемый ConnectorDefinition и все вложенные объекты глубоко заморожены через Object.freeze(). Это предотвращает случайные мутации во время выполнения и гарантирует стабильность коннекторов при параллельном выполнении пайплайнов.

On this page