Skip to content

Triggers API

Endpoints Triggers управляют trigger definitions, drafts, bulk operations и test helpers.

GET /api/triggers

Возвращает triggers с опциональными filters.

Аргументы:

АргументГдеОписание
projectQueryФильтр по project fullname.
workspaceQueryФильтр по workspace fullname.

Тело запроса: нет.

Ответ: TriggerView[].

GET /api/triggers/:fullname

Возвращает trigger.

Аргументы:

АргументГдеОписание
fullnamePathTrigger fullname.

Тело запроса: нет.

Ответ: TriggerDraftView.

PUT /api/triggers/:fullname

Создает или полностью сохраняет trigger.

Аргументы:

АргументГдеОписание
fullnamePathTrigger fullname. Должен совпадать с payload.fullname.

Тело запроса:

ПолеОбязательноеОписание
nameДаИмя trigger внутри project.
fullnameДаTrigger fullname.
projectДаProject fullname.
workspaceДаWorkspace fullname.
backendДаBackend object. Обычно { type: "sdk", trigger, values }.
inputsДаInput schema.
meta.titleДаВидимое название.
meta.descriptionНетОписание.
defaultsНетNotification defaults.
triggerSpecНетSource matching spec или null.
providersНетМассив provider definitions.
filtersSchemaНетОпциональная filters schema.
outputSchemaНетHuman/raw output schema.
transformНетJavaScript transform или null.
activationНетJavaScript activation condition или null.
executionPolicyНетОбъект runtime limits override или null.
statusНет{ status, issue, source, updatedAt }.
tagsНетTags.
labelsНетLabels.

Ответ: TriggerDraftView.

PATCH /api/triggers/:fullname

Частично изменяет trigger.

Аргументы:

АргументГдеОписание
fullnamePathTrigger fullname.

Тело запроса:

ПолеОбязательноеОписание
setОдин из вариантовОбъект с dotted paths и значениями для установки.
unsetОдин из вариантовМассив dotted paths для удаления.
dryRunНетЕсли true, проверяет patch без сохранения.

Ответ: TriggerPatchResult.

DELETE /api/triggers/:fullname

Удаляет trigger.

Аргументы:

АргументГдеОписание
fullnamePathTrigger fullname.

Тело запроса: нет.

Ответ: OperationResult.

POST /api/triggers/patch

Массово изменяет несколько triggers.

Аргументы: нет.

Тело запроса:

ПолеОбязательноеОписание
itemsДаМассив { fullname, set?, unset? }.
dryRunНетПроверить без сохранения.

Ответ: TriggerBulkPatchResult.

POST /api/triggers/remove

Массово удаляет несколько triggers.

Аргументы: нет.

Тело запроса:

ПолеОбязательноеОписание
fullnamesДаМассив trigger fullnames.
dryRunНетПроверить без удаления.

Ответ: TriggerBulkRemoveResult.

GET /api/triggers/:fullname/draft

Возвращает draft view trigger.

Аргументы:

АргументГдеОписание
fullnamePathTrigger fullname.

Тело запроса: нет.

Ответ: TriggerDraftView.

PUT /api/triggers/:fullname/draft

Сохраняет draft trigger.

Аргументы:

АргументГдеОписание
fullnamePathTrigger fullname.

Тело запроса: такая же структура, как в PUT /api/triggers/:fullname.

Ответ: TriggerDraftView.

POST /api/triggers/:fullname/draft/validate

Проверяет draft trigger без финального сохранения.

Аргументы:

АргументГдеОписание
fullnamePathTrigger fullname.

Тело запроса: такая же структура, как у payload сохранения trigger.

Ответ: TriggerValidationResult.

GET /api/triggers/:fullname/logs

Возвращает агрегированные ошибки delivery и события source pressure для trigger.

Аргументы:

АргументГдеОписание
fullnamePathFullname trigger.
limitQueryОпциональное максимальное число записей.
statusQueryОпциональный фильтр по статусу delivery.
directionQueryОпциональное направление пагинации: before или after.
datetimeQueryISO timestamp, используемый вместе с direction.

Тело запроса: нет.

Ответ содержит данные trigger, статистику subscriptions и нормализованные логи.

POST /api/triggers/:fullname/reset-test-status

Сбрасывает статус тестирования trigger в not_tested.

Аргументы: fullname в path.

Тело запроса: нет.

Ответ: TriggerPatchResult.

POST /api/triggers/preview

Проверяет definitions providers, выполняет опциональную activation и raw/human transforms над переданным input, затем валидирует полученный output. Trigger при этом не сохраняется.

Аргументы: нет.

Тело запроса:

ПолеОбязательноеОписание
providersДаProvider definitions.
activationНетJavaScript activation condition или null.
transformДаJavaScript transform object.
inputДаSource item/input для preview.
inputsНетЗначения trigger inputs.
providersDataНетЗаранее вычисленные provider values для activation и transforms.
outputSchemaНетOutput schema для валидации результата preview.

Ответ: TriggerPreviewResult.

POST /api/triggers/test

Тестирует trigger definition на sample source item.

Аргументы: нет.

Тело запроса:

ПолеОбязательноеОписание
triggerSpecДаSource matching spec.
providersДаProvider definitions.
transformДаJavaScript transform.
outputSchemaДаOutput schema.
activationНетActivation condition.
inputsНетЗначения inputs.
inputОдин из вариантовDirect test input.
testОдин из вариантовTest source/match object.

Ответ: TriggerTestResult.

POST /api/triggers/test-block

Тестирует trigger на конкретном block.

Аргументы: нет.

Тело запроса:

ПолеОбязательноеОписание
triggerSpecДаSource matching spec.
providersДаProvider definitions.
transformДаJavaScript transform.
outputSchemaДаOutput schema.
blockДаНомер block.
itemIndexНетИндекс source item внутри block.
activationНетActivation condition.
filtersSchemaНетFilters schema.
inputsНетЗначения inputs.

Ответ: TriggerTestResult.

POST /api/triggers/providers/test

Тестирует один provider.

Аргументы: нет.

Тело запроса:

ПолеОбязательноеОписание
triggerSpecДаSource matching spec.
providerДаProvider definition.
projectНетProject fullname.
workspaceНетWorkspace fullname.
templateValuesНетTemplate values для provider placeholders.

Ответ: ProviderTestResult.

GET /api/triggers/hypercore/actions

Возвращает каталог HyperCore actions, доступный trigger builder.

Аргументы: нет.

Тело запроса: нет.

Ответ содержит массив actions.

GET /api/triggers/runtime-sources

Возвращает runtime data sources, доступные для trigger builder.

Аргументы: нет.

Тело запроса: нет.

Ответ: RuntimeSource[].

GET /api/template-helpers

Возвращает публичные метаданные helper-функций Handlebars, доступных в defaults trigger и шаблонах actions подписки. Аутентификация не требуется.

Аргументы: нет.

Тело запроса: нет.

Ответ содержит массив handlebars.helpers. У каждой helper-функции есть уникальный name и description; у блочных helpers также указано block: true, а helpers с именованными параметрами содержат массив params с полями name и type.

POST /api/triggers/find-latest-block

Находит latest block/test input для trigger testing.

Аргументы: нет.

Тело запроса: trigger/source-specific search object.

Ответ: LatestBlockResult.

Trigger Spec

triggerSpec описывает source matching.

Поддерживаемые варианты:

ТипОбязательные поляОпциональные поля
evm_logtype, dataSourcecontract, event, abiFragment, topicsCount, dataBytes, testInput
evm_transactiontype, dataSourcetestInput
substrate_eventtype, dataSourcepallet, event, testInput
solana_eventtype, dataSourceprogramId, event, idl, testInput
timertype, intervaltestInput

Provider Definition

У каждого provider есть id, type, опциональный weight, опциональный timeoutMs и опциональный outputSchema.

Поддерживаемые типы providers:

ТипОбязательные поляОсновные опциональные поля
httpid, type, urlmethod, headers, queryParams, body
graphqlid, type, url, queryheaders, variables
rpc with transport: "endpoint"id, type, url, methodheaders, params, body
rpc with transport: "source"id, type, transport, methodparams
substrate_storageid, type, module, entrysource, args, block
evm_readid, type, contract, method, abiFragmentsource, abiContract, args
solana_accountid, type, accountsource, idl, programId, accountName, pda
state_windowid, type, dedupeBy, value, keepLastpartitionBy, valueType, aggregate
javascriptid, type, sourcevariables