关于 salla-app-functions-release
用于保存、测试和发布 Salla App Functions 的工作流技能,面向 Salla 应用开发者。它涵盖演示店部署、预览检查、安全审查,以及公开或私有应用的发布步骤。
主要功能
- 01按触发器保存或更新函数
- 02跟踪演示店异步部署
- 03在演示店预览函数
- 04准备公开或私有应用发布
- 05检查源码中的秘密信息和不安全调用
适用场景
- 01将更新后的触发器函数部署到演示店
- 02发布前测试函数
- 03准备供合作伙伴提交的公开应用草稿
- 04经合作伙伴确认后发布私有应用
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sallaapp/ salla-partners-agent-kit --skill salla-app-functions-release安装后在 Claude Code 中输入/salla-app-functions-release确认已加载。
详细介绍
应用函数 — 保存、测试与发布
只有通过干净的验证后才能保存(salla-app-functions-validate)。
保存(创建或更新)
一个应用只有一个函数,以其触发器为键,因此 get / save / delete 都需要
app_id 和 trigger。save 会对该触发器的函数执行插入或更新。
- 保存:
salla_functions action=save、app_id、trigger、content(整个函数 作为字符串)、name。模板的第一行必须保持原样。会返回部署job,并触发向应用演示商店异步部署 —— 轮询salla_functions action=deploy_status、job(由 action=save 返回),直到状态为COMPLETED,然后测试 (salla-app-functions-test)。一次保存即完成部署;没有单独的部署操作 或版本管理。 - 读取:
salla_functions action=get、app_id、trigger→template+types(.d.ts URLs)+ 应用已保存的content(或null)。 - 移除:
salla_functions action=delete、app_id、trigger。
上面的参数名称和 job 结构仅供参考——使用前请通过 salla_functions 确认准确字段。
注意:如果之后更改了发布快照中捕获的应用配置,请重新打开发布流程以刷新快照——参见 salla-publication-consistency。函数部署本身无需重新保存。
发布前测试
使用 salla_functions action=preview 在演示商店上运行——参见
salla-app-functions-test。(手动替代方式:Portal 预览面板 → 选择一个演示商店,输入一个真实记录 ID,点击保存并预览。)预览日志可见,因此不要将机密信息写入日志——下方的发布前扫描会检查这一点。
发布(生产环境)
已保存的函数只有在应用发布后才会到达真实商家商店——重新运行 save 不会发布函数。对于公开应用,Agent 准备发布内容,合作伙伴提交;对于私有应用,Agent 在合作伙伴确认后发布。
- 公开应用: Agent 通过
app_publish action=validate验证发布内容,该操作会验证每个部分并保存为草稿(不会由管理员提交)。验证通过后,将真实的 Portal/publish链接 (替换为真实 ID 的https://portal.salla.partners/apps/{app_id}/publish)交给合作伙伴,让他们审核草稿并点击一次提交。Agent 绝不会由管理员提交——完整的逐步流程 (open→ 对每个部分执行set→validate)由 salla-publication-consistency 负责。 - 私有应用: 使用
salla_private_apps action=publish发布(confirm: true,仅在合作伙伴确认后执行——商家合作伙伴的应用通常会立即上线;无需入驻或上架)→ salla-app-builder → 私有应用。
发布前安全检查。 在提交或发布任何内容之前,扫描已保存的 content
(salla_functions action=get):不得包含硬编码的令牌、机密信息或 API 密钥;不得将 context 或商家个人身份信息(PII)的调试转储写入预览日志;不得进行范围过宽的出站 fetch 调用。令牌/OAuth 处理应放在后端,而非函数中——参见 salla-app-auth;Webhook 签名验证 → salla-webhooks。
检查清单
- 已确认
payload.data(salla-app-functions-design)· 严格模式下tsc检查通过(salla-app-functions-validate)。 - 同步主体在 5 s 总时限内(每次内部异步调用 < 2 s);每个
fetch都有时限。 - 所有路径都调用
Resp.success().setData(...)——为空时传入{}。 - 不使用 npm/不受支持的核心模块;使用
globalThis.crypto;不硬编码密钥/令牌,不记录任何 PII。 - 已使用真实记录 ID 在演示商店中进行预览测试(salla-app-functions-test)。
- 已保存(
action=save);对于公开应用,发布验证已通过 (app_publish action=validate→ draft),且合作伙伴已获得 Portal/publish链接; 对于私有应用,合作伙伴已确认salla_private_apps发布。
关卡:“预览中的执行状态为 success,未超出时限,安全扫描无问题,并且发布验证已通过且合作伙伴已提交(公开应用),或合作伙伴已确认且 salla_private_apps action=publish confirm:true 返回了发布结果(私有应用)?”
警示
| 容易产生的想法 | 错误原因 |
|---|---|
| “预览通过了,所以我要发布私有应用。” | 只有在合作伙伴明确确认且安全扫描无问题后才能发布——商户合作伙伴的私有应用通常会立即上线。 |
“save 成功了,所以商户已经有了新功能。” | 保存的代码只有在应用发布后才会到达真实商店(公开应用:合作伙伴提交;私有应用:salla_private_apps action=publish)。 |
| “我来提交公开应用的发布申请。” | Agent 会验证草稿;合作伙伴会在 Portal 中一键提交,或明确确认 send_publish_request。 |