SuperAPI AI 工具集

enonic-webhook-integrator

通用与其它

查看项目

更新于 10-15 23:56

技能介绍

用途:在 Enonic XP 项目中设置内容生命周期事件监听器、webhook 配置及外部系统集成。

主要能力:定位工作区中的 Enonic XP 项目根目录:node scripts/find-enonic-targets.mjs .;从 gradle.properties(appName)或 build.gradle 识别应用键。区分四类任务:出站事件监听、出站 webhook 配置、入站 webhook 端点、混合模式。

使用方式:出站监听器用 lib-event 的 listener() 注册在 main.ts/main.js,type 参数匹配 node.pushed、node.created、node.updated、node.deleted 等事件,回调中检查 event.data.nodes[].path 过滤;调用外部端点用 lib-httpClient 的 request(),重活交给 lib-task 的 executeFunction()。出站 webhook 写 XP_HOME/config/com.enonic.xp.webhooks.cfg,仅用 HTTPS,配置只放占位符,真实密钥由运维经安全渠道注入。入站端点建在 src/main/resources/services/<serviceName>/<serviceName>.ts,导出 post(req),先限制体积(如 1 MB)再解析,校验必填字段、认证头或 HMAC 签名,对字符串做修剪、限长、去 HTML/脚本、拒绝路径穿越(..、/、\),用字段白名单而非原始对象调内容 API,返回 200/400/401/413/500。内容操作用 lib-content 或 lib-node 并在 context run 内执行。

验证与排错:重跑 find-enonic-targets.mjs,确认监听器注册位置、HTTPS 与错误处理、无真实密钥、入站已校验白名单、事件类型匹配、构建通过。事件不触发、投递失败或入站被拒时读 references/troubleshooting.md。无项目、出站失败、入站 404、后台任务静默失败对应各自的排查步骤。

限制:未提供具体收费、平台版本及效果数据。