@faiber/faiber-流量
被键入的"流"定义,图表验证,事件执行,目录同步,活性触发发现,运行细节和集成元数据.
npm install @faiber/faiber-flow
import { FaiberClient, MemoryTokenProvider } from '@faiber/sdk-core';
import { FlowApi } from '@faiber/faiber-flow';
const client = new FaiberClient('flow', {
domains: { flow: process.env.FAIBER_FLOW_URL! },
tokenProvider: new MemoryTokenProvider(),
axios: { withCredentials: true, timeout: 15_000 },
});
const api = new FlowApi(client);
const created = await api.flows.create({
name: 'Checkout completed',
trigger_key: 'event.checkout.completed',
enabled: false,
});
const validation = await api.validate(created.data.data.id);
const registry = await api.activeTriggers({ service: 'ledger' });
const runs = await api.runs.list({ limit: 20 });
// Run detail includes flattened run fields, nullable context and ordered steps.
if (runs.data.data[0]) {
const detail = await api.runs.show(runs.data.data[0].id);
console.log(detail.data.data.status, detail.data.data.steps);
}
所有18个挂载的HTTP操作均可调用 api.operations,并列出出口投入、查询和答复。 方便方法包括: flows, (中文(简体) ), runs, (中文(简体) ), validate, (中文(简体) ), triggers, (中文(简体) ), actions, (中文(简体) ), activeTriggers, (中文(简体) ), syncCatalog, (中文(简体) ), importFlows, (中文(简体) ), emitEvent 财务报告和审定财务报表 integration。所有电话保留完整的 Axios 响应、状态、信头和请求ID。 成功数据被包裹为 {status: 'success', message: 'ok', data}列表是该信封内的数组; Flow不提供页码信封。 运行 limit 默认为 50 且没有应用程序夹.
流程创建用途 name, (中文(简体) ), trigger_key选项 slug, (中文(简体) ), enabled 财务报告和审定财务报表 graph; 启用默认错误,省略的图表创建了单一的触发节点. 一个图有 nodes 财务报告和审定财务报表 edges编辑器位置、节点数据、边缘数据、下游有效载荷和历史执行背景都是故意的JSON值,因为服务存储可扩展的JSON文件。 PUT更新是部分的;无效并省略了字段保留了已存在的值. 图形或触发改变版本的增量。 删除返回一个包含 {deleted: true}。 。 。 .
importFlows 接受流程条目、事件桥和桥群。 使用 dry_run: true 以验证和报告交易回滚后的拟议修改。 正常的进口通过正常的弹片增高;相同的复读报告条目不变. 导入桥启用了真实的默认, 不同于直接创建 . version 财务报告和审定财务报表 source 被接受的元数据,目前被后端忽略.
emitEvent(eventKey, json) 接受任何 JSON 值,包括无效。 事件密钥必须包含1–200个 ASCII 字母,数字,点,下划线或连字符,没有前导/后导/双点. 反应是 HTTP 200 与 {accepted: true, event_id, trigger_key}. 个人流量执行失败仍可产生可接受的反应;检查后进行。 每一次重复的事件呼吁都会产生新的事件并可以重复下游的行动. 登记册通知前的变异持续存在,因此,通知错误可随承诺的变化而发生。 复试前调和相. Catalog 同步返回计数和每次服务失败, 甚至在 HTTP 200 下; 它不返回一个 synced 布尔.
配置 a TokenProvider 用于熊鼠授权,或 withCredentials 用于安全的 Http 只有饼干会话。 偏好饼干或内出类比;持久浏览器存储是一种明确的安全取舍. 每个SDK呼叫都使用共享 FaiberClient。宣布的路由权限为 flow:read/create/update/delete, (中文(简体) ), flow_run:read, (中文(简体) ), catalog:sync,以及 flow:execute; 导入同时声明创建和更新。 事件明确显示检查 flow:execute 或者说 * 内 AuthContext其他操作人员没有当地许可/所有人/租户检查。 流程安装了导入的全球认证提取,外部依赖性被固定在 291c81a67bc302d667fb807da2af3240598bee52 在生产清单 和坚定的锁文件。 检查共享的境内流离失所者源登记许可元数据,并信任网关身份信头,并进行回溯;在网关执行身份和权限。 仅发送证书并不能建立后端授权执行.
Axios 选项、信头、适配器、拦截器、超时和 AbortSignal 取消被接受为最后论据。 应用程序错误使用 {error: string}:验证400,缺失UUID记录404,重复的sults 409,持久性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性 保留轴出错 response.status 和原始错误正文。 无效的保存图返回 HTTP 200 与 valid: false 财务报告和审定财务报表 errors。 。 。 .
const controller = new AbortController();
try {
await api.emitEvent('checkout.completed', { total: 1200 }, { signal: controller.signal });
} catch (error) {
// Inspect the Axios error response; check current runs before retrying execution.
}
使用 @faiber/faiber-ts-sdk 用于一个客户端配置中的多个 Faiber 服务.