mcpField
S
salla-app-functions-design

salla-app-functions-design

github.com/sallaapp开发278 次安装4 天前更新
代码仓库

关于 salla-app-functions-design

salla-app-functions-design 是用于在实现前选择 Salla 应用函数触发器和执行类型的开发 Skill。它指导核实事件契约,并区分阻塞式同步操作与异步事件及其超时限制。

主要功能

  1. 01查看并核实触发器定义
  2. 02确认事件载荷字段
  3. 03选择同步或异步执行
  4. 04了解超时预算
  5. 05将安全工作交由相关 Skill

适用场景

  1. 01为 Salla 应用函数选择触发器
  2. 02使用事件字段前核对载荷
  3. 03判断操作是否应阻塞流程
  4. 04按执行超时限制规划实现

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sallaapp/salla-partners-agent-kit --skill salla-app-functions-design

安装后在 Claude Code 中输入/salla-app-functions-design确认已加载。

附带文件references/event-contexts.md

详细介绍

App Functions — 设计触发器与执行类型

编写代码之前,先决定运行_什么_以及_何时_运行。

第 1 步 — 确认事件约定

以文档为依据的事件目录——按商家与客户分组的所有触发器、其同步/异步类型,以及文档中 payload.data 的结构——位于 references/event-contexts.md。使用它选择触发器并查看上下文结构;切勿臆测负载。

权威来源:salla_functions action=list_triggers(无需 app_id),用于获取实时触发器名称和类别;salla_functions action=get,用于获取触发器的权威 .d.ts。客户事件文档提供的负载仅供示例;依赖字段名称之前,请通过 action=get 或架构文档确认。

检查点:“你是否已确认此事件的 payload.data 字段名称?”

第 2 步 — 选择执行类型

类型时机会阻塞用户吗?超时返回值的影响
异步事件操作之后否30 s即发即弃:会记录日志,不会影响流程。
同步操作操作之前是总计 5 s阻塞式:可以修改参数,或拒绝/阻止操作。
  • 同步操作正是 merchant_actions 类别——shipment.creating 和 shipment.cancelling(请通过 salla_functions action=list_triggers 确认类别,而非根据动词形式判断)。它们会在生命周期完成之前拦截流程:出错会取消操作,成功则可以修改其数据。shipment.creating 是文档中的同步示例,返回的是 Shipment((context: Shipments): Promise<Shipment>),而不是普通的 Resp——它会设置运单号/标签。构建器机制 → salla-app-functions-handler。
  • 异步事件(例如 order.created、product.added)会在带外运行;返回有效的成功/错误结果,以便将其记录到日志中。
超时预算
类型总超时每次内部异步调用
同步硬性限制 5 s,目标 < 500 ms< 2 s,使用 AbortController 限定时长
异步30 s使用 AbortController 限定时长

同步操作期间商家会被阻塞,因此应以 < 500 ms 为目标,并将 5 s 视为上限。为每次 fetch/等待中的 I/O 设置时限,可避免某个上游响应缓慢导致超出预算(AbortController 机制 → salla-app-functions-handler)。超时会阻塞(同步)或丢弃(异步)此次运行。

检查点:“已决定使用同步还是异步,并了解超时预算了吗?”

安全性与数据交接

如果处理器会接触令牌、商家身份验证或出站调用,请将其分流处理:令牌存储/OAuth/商家访问令牌 → salla-app-auth;Webhook 签名验证与幂等性 → salla-webhooks。完整交接清单 → references/event-contexts.md。

下一步:使用 salla-app-functions-handler 编写实现。

评论

支持 Markdown