SuperAPI AI 工具集

enonic-event-manager

编程与开发

查看项目

更新于 10-15 22:10

技能介绍

用途:在 Enonic XP 项目中建立内容生命周期事件的集成,包括出站事件监听(XP 响应内部事件并调用外部系统)、出站 Webhook 配置、入站 Webhook 端点,以及混合模式。

主要能力与用法:先执行 node scripts/find-enonic-targets.mjs . 定位工作区中的 Enonic XP 项目根;若无项目则停止,若多个项目则询问目标;从 gradle.properties 的 appName 或 build.gradle 识别应用 key。出站监听器在应用 main.ts/main.js 中用 lib-event 的 listener() 注册,type 参数匹配 node.pushed、node.created、node.updated、node.deleted 等,回调内按 event.data.nodes[].path 过滤内容树;调用外部端点用 lib-httpClient 的 request(),耗时处理用 lib-task 的 executeFunction() 委派后台任务。出站 Webhook 依据 com.enonic.xp.webhooks.cfg 格式,在 XP_HOME/config 下创建或更新配置,指定目标 URL 与事件类型,目标须用 HTTPS。入站端点创建于 src/main/resources/services/<serviceName>/<serviceName>.ts,导出 post(req),解析 req.body 前限制体积(如 1 MB),校验必填字段、认证头或 HMAC 签名,对字符串字段做 trim、限长、剥离或转义 HTML/脚本、拒绝路径穿越序列(..、/、\),使用字段名白名单,返回 200/400/401/413/500。触发内容变更时在 context run 内经 lib-content 或 lib-node 执行,不得将未净化外部值作为内容名、路径或 key。

限制与安全:严禁在配置或源码中写入真实密钥,仅用占位符(如 REPLACE_WITH_CDN_SECRET),由操作方通过安全部署管道、环境变量或密钥管理工具替换。验证阶段确认监听器注册位置、出站调用使用 HTTPS 并处理网络错误与非 2xx、无真实凭据泄漏、入站载荷已净化并白名单、Webhook 事件类型匹配,并运行工作区构建;事件不触发、投递失败或入站被拒时查阅 troubleshooting 参考。

分类:该技能面向编程与开发流程中的事件与集成搭建,其余细节资料未提供。