Files
hoelee d7fad26d9d feat(n8n): W5 返回每产品 paths[] (Products→Resources alist_path) 支持 footer modal path 展示
- w5-body.js: 每 product 走 Products→Resources mm link 取 alist_path, 复用 effective-grants 的
  '先 fetch 全 Resources 索引 Id→alist_path' 模式 (link API 只返 {Id,name} 不返 alist_path)
- 新增 paths 字段于 purchases[]; 无关联资源返 []
- deploy_w5.mjs: PUT /api/v1/workflows/MNC0BZc1FqCKFwIV 部署脚本
2026-08-28 22:12:29 +08:00

24 lines
873 B
JavaScript

// Deploy regenerated W5 (v30, adds paths) to live n8n via public API.
// Usage: N8N_API_KEY=... node deploy_w5.mjs
import { readFile } from "node:fs/promises";
const N8N = process.env.N8N_BASE || "http://192.168.137.2:5678";
const KEY = process.env.N8N_API_KEY;
if (!KEY) { console.error("N8N_API_KEY env required"); process.exit(1); }
const H = { "X-N8N-API-KEY": KEY, "Content-Type": "application/json" };
const wf = JSON.parse(await readFile("W5-purchase-check.json", "utf-8"));
delete wf.pinData;
delete wf.active;
delete wf.id;
// W5 workflow id (live) = MNC0BZc1FqCKFwIV
const ID = "MNC0BZc1FqCKFwIV";
const r = await fetch(`${N8N}/api/v1/workflows/${ID}`, {
method: "PUT", headers: H, body: JSON.stringify(wf),
});
const txt = await r.text();
console.log("W5 PUT", r.status, txt.slice(0, 300));
if (r.status !== 200) process.exit(1);
console.log("DEPLOY OK");