Создание коннектора
Справочник по API createConnector() — собирает аутентификацию, действия и триггеры в иммутабельный ConnectorDefinition.
Создание коннектора
createConnector() -- это фабричная функция верхнего уровня, которая собирает аутентификацию, действия и триггеры в иммутабельный ConnectorDefinition.
Сигнатура
import { createConnector } from "@triggo/connector-sdk";
function createConnector(config: ConnectorConfig): ConnectorDefinition;ConnectorConfig
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
name | string | Да | Уникальный идентификатор коннектора. Должен быть в формате kebab-case (например, my-service). |
displayName | string | Да | Читаемое имя, отображаемое в интерфейсе. |
description | string | Да | Краткое описание того, с чем интегрируется коннектор. |
auth | AuthDefinition | Да | Конфигурация аутентификации. Используйте ConnectorAuth.OAuth2(), .SecretText(), .CustomAuth() или .None(). |
actions | ActionDefinition[] | Да | Массив действий, созданных с помощью createAction(). |
triggers | TriggerDefinition[] | Да | Массив триггеров, созданных с помощью createTrigger(). |
ConnectorDefinition (возвращаемый тип)
Возвращаемый объект глубоко заморожен и включает всё из конфигурации, а также вычисляемые поля:
| Поле | Тип | Описание |
|---|---|---|
name | string | Имя коннектора в kebab-case. |
displayName | string | Читаемое имя. |
description | string | Описание коннектора. |
auth | AuthDefinition | Переданное определение аутентификации. |
actions | readonly ActionDefinition[] | Замороженный массив действий. |
triggers | readonly TriggerDefinition[] | Замороженный массив триггеров. |
actionsMap | ReadonlyMap<string, ActionDefinition> | Действия, индексированные по имени для поиска за O(1). |
triggersMap | ReadonlyMap<string, TriggerDefinition> | Триггеры, индексированные по имени для поиска за O(1). |
schema | ConnectorSchema | Автоматически сгенерированная 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(). Это предотвращает случайные мутации во время выполнения и гарантирует стабильность коннекторов при параллельном выполнении пайплайнов.