Skip to content

Triggers API ​

Trigger endpoints 用于管理 trigger definitions、drafts、bulk operations 和 test helpers。

GET /api/triggers ​

返回带 optional filters 的 triggers。

Arguments:

ArgumentLocationDescription
projectQueryProject fullname filter.
workspaceQueryWorkspace fullname filter.

Payload: 无。

响应:TriggerView[]。

GET /api/triggers/:fullname ​

返回 trigger。

Arguments:

ArgumentLocationDescription
fullnamePathTrigger fullname.

Payload: 无。

响应:TriggerDraftView。

PUT /api/triggers/:fullname ​

创建或完整保存 trigger。

Arguments:

ArgumentLocationDescription
fullnamePathTrigger fullname. 必须与 payload.fullname 一致。

Payload:

FieldRequiredDescription
name是project 内的 Trigger name。
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否Array of provider definitions.
filtersSchema否Optional filters schema.
outputSchema否Human/raw output schema.
transform否JavaScript transform 或 null。
activation否JavaScript activation condition 或 null。
executionPolicy否Runtime limits override object 或 null。
status否{ status, issue, source, updatedAt }.
tags否Tags.
labels否Labels.

响应:TriggerDraftView。

PATCH /api/triggers/:fullname ​

部分修改 trigger。

Arguments:

ArgumentLocationDescription
fullnamePathTrigger fullname.

Payload:

FieldRequiredDescription
setOne ofObject with dotted paths and values to set.
unsetOne ofArray of dotted paths to remove.
dryRun否If true, validate patch without saving.

响应:TriggerPatchResult。

DELETE /api/triggers/:fullname ​

删除 trigger。

Arguments:

ArgumentLocationDescription
fullnamePathTrigger fullname.

Payload: 无。

响应:OperationResult。

POST /api/triggers/patch ​

对多个 triggers 执行 bulk patch。

Arguments: 无。

Payload:

FieldRequiredDescription
items是Array of { fullname, set?, unset? }.
dryRun否Validate without saving.

响应:TriggerBulkPatchResult。

POST /api/triggers/remove ​

对多个 triggers 执行 bulk remove。

Arguments: 无。

Payload:

FieldRequiredDescription
fullnames是Array of trigger fullnames.
dryRun否Validate without deleting.

响应:TriggerBulkRemoveResult。

GET /api/triggers/:fullname/draft ​

返回 trigger draft view。

Arguments:

ArgumentLocationDescription
fullnamePathTrigger fullname.

Payload: 无。

响应:TriggerDraftView。

PUT /api/triggers/:fullname/draft ​

保存 trigger draft。

Arguments:

ArgumentLocationDescription
fullnamePathTrigger fullname.

Payload: same shape as PUT /api/triggers/:fullname.

响应:TriggerDraftView。

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

验证 trigger draft,但不执行最终保存。

Arguments:

ArgumentLocationDescription
fullnamePathTrigger fullname.

Payload: same shape as trigger save payload.

响应:TriggerValidationResult。

GET /api/triggers/:fullname/logs ​

返回 trigger 的聚合 delivery 失败和 source-pressure 事件。

参数:

参数位置说明
fullnamePathTrigger fullname。
limitQuery可选的最大日志条数。
statusQuery可选的 delivery 状态筛选。
directionQuery可选的分页方向:before 或 after。
datetimeQuery与 direction 一起使用的 ISO 时间。

Payload: 无。

响应包含 trigger 信息、subscription 统计和规范化日志。

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

将 trigger 测试状态重置为 not_tested。

参数:path 中的 fullname。

Payload: 无。

响应:TriggerPatchResult。

POST /api/triggers/preview ​

验证 provider definitions,在给定 input 上运行可选 activation 和 raw/human transforms,并验证结果 output。此操作不会保存 trigger。

Arguments: 无。

Payload:

FieldRequiredDescription
providers是Provider definitions.
activation否JavaScript activation condition 或 null。
transform是JavaScript transform object.
input是Source item/input for preview.
inputs否Trigger input values.
providersData否供 activation 和 transforms 使用的预计算 provider values。
outputSchema否用于验证 preview 结果的 output schema。

响应:TriggerPreviewResult。

POST /api/triggers/test ​

在 sample source item 上测试 trigger definition。

Arguments: 无。

Payload:

FieldRequiredDescription
triggerSpec是Source matching spec.
providers是Provider definitions.
transform是JavaScript transform.
outputSchema是Output schema.
activation否Activation condition.
inputs否Input values.
inputOne ofDirect test input.
testOne ofTest source/match object.

响应:TriggerTestResult。

POST /api/triggers/test-block ​

在指定 block 上测试 trigger。

Arguments: 无。

Payload:

FieldRequiredDescription
triggerSpec是Source matching spec.
providers是Provider definitions.
transform是JavaScript transform.
outputSchema是Output schema.
block是Block number.
itemIndex否Source item index inside block.
activation否Activation condition.
filtersSchema否Filters schema.
inputs否Input values.

响应:TriggerTestResult。

POST /api/triggers/providers/test ​

测试一个 provider。

Arguments: 无。

Payload:

FieldRequiredDescription
triggerSpec是Source matching spec.
provider是Provider definition.
project否Project fullname.
workspace否Workspace fullname.
templateValues否Template values for provider placeholders.

响应:ProviderTestResult。

GET /api/triggers/hypercore/actions ​

返回 trigger builder 可用的 HyperCore action 目录。

参数:无。

Payload: 无。

响应包含 actions 数组。

GET /api/triggers/runtime-sources ​

返回 trigger builder 可用的 runtime data sources。

Arguments: 无。

Payload: 无。

响应:RuntimeSource[]。

GET /api/template-helpers ​

返回 trigger defaults 和订阅 action 模板可用的公开 Handlebars helper 元数据。无需身份验证。

参数:无。

请求体:无。

响应包含 handlebars.helpers 数组。每个 helper 都有唯一的 name 和 description;块 helper 还包含 block: true,带命名选项的 helper 则包含由 name 和 type 组成的 params 数组。

POST /api/triggers/find-latest-block ​

为 trigger testing 查找 latest block/test input。

Arguments: 无。

Payload: trigger/source-specific search object.

响应:LatestBlockResult。

Trigger Spec ​

triggerSpec describes source matching.

Supported variants:

TypeRequired fieldsOptional fields
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 ​

Each provider has id, type, optional weight, optional timeoutMs, and optional outputSchema.

Supported provider types:

TypeRequired fieldsMain optional fields
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