跳到正文
Indiana
控制台
文档
章节目录 / Funnel 服务端编排

Funnel 服务端编排

发送自定义回执,读取节点结果,接入签名 HTTPS 任务与持久重试。

SDK 0.0.1更新于

发送业务回执与读取结果

npm @tinkerlandai/indiana-sdk@0.0.1 提供 createFunnelOrchestrationClient,使用当前 App/环境的后端 Secret Key,并授予 sessions:create 与 funnels:run。先在 Funnel 等待节点声明自定义事件名称及数据字段,然后发布。宿主必须校验业务事件和运行归属;普通浏览器不能发送回执,自定义回执不能声明付款成功。

回执可提前到达;同 eventId、同数据重试幂等,改写数据冲突。每个 Run/等待节点接收一条回执,超时或运行结束后拒绝新回执。条件与后续任务用 nodeId.field 引用已消费结果;未执行或未消费时字段保持缺失。

server/funnel-receipts.ts · fragmentTypeScript
import { createFunnelOrchestrationClient } from "@tinkerlandai/indiana-sdk/server"; const orchestration = createFunnelOrchestrationClient({  baseUrl: process.env.GROOVE_BASE_URL!,  apiKey: process.env.GROOVE_SECRET_KEY!,  scope: { projectId: process.env.GROOVE_PROJECT_ID!, environment: "sandbox" },});// Save eventId and this complete input with your verified business event.const receipt = await orchestration.signal({  runId: verifiedRunId,  nodeId: "offer_receipt",  eventName: "offer_used",  eventId: retainedEventId,  data: { used: true },});const { results } = await orchestration.readResults(verifiedRunId);// accepted acknowledges receipt; results appear only after node consumption.

外部 HTTPS 任务与重试

在外部任务节点绑定当前 Sandbox 已启用的通知端点,声明 taskKey、输入映射和输出类型。接收器验证 X-Grow-Signature:HMAC-SHA256(timestamp + '.' + 原始请求体),并检查时间窗口及 X-Grow-Key-Id;不要先解析再重新序列化签名正文。按 eventId(Action Receipt ID)去重,允许至少一次投递。

成功响应为 { outcome: 'success', data: { ...声明字段 } };failure 是业务失败。429、5xx 和暂时传输错误按冻结预算重试,普通 4xx、类型错误不重试。输入、Receipt ID、期限和已用次数在恢复时保持不变。当前支持串行任务及回执等待,不提供 parallel/join;外部调用限 Sandbox,要求公开 HTTPS 443、不重定向,任务数据最多 8 KiB/20 字段。