WebhockTransfer/docs/webhook-relay/ALIGNMENT_webhook-relay.md
houhuan 2bc7460f1f feat: 初始化Webhook中继系统项目
- 添加FastAPI应用基础结构,包括主入口、路由和模型定义
- 实现Webhook接收端点(/webhook/{namespace})和健康检查(/health)
- 添加管理后台路由和模板,支持端点、目标、渠道和模板管理
- 包含SQLite数据库模型定义和初始化逻辑
- 添加日志记录和统计服务
- 包含Dockerfile和配置示例文件
- 添加项目文档,包括设计、流程图和验收标准
2025-12-21 18:43:12 +08:00

2.3 KiB
Raw Permalink Blame History

任务名称

Webhook中继与通知系统Docker化

背景与目标

  • 统一接收外部Webhook按规则路由到目标端点并生成通知消息推送至飞书/企业微信。
  • 基于配置可扩展支持新增目标、remark映射与事件模板。

业务范围

  • 接收JSON负载至少包含 remarkevent_define_notrans_amttrans_order_info.cash_resp_desc、可选 actual_ref_amt
  • 路由策略:按 remark 映射至一个或多个目标Webhook若无匹配使用 default_targets
  • 通知策略:按 event_define_no 模板生成文本,支持多渠道并发推送。

技术范围

  • Python 3.12、FastAPI、httpx
  • Docker 容器化SQLite 持久化,模型定义见 app/db.py
  • 管理后台 /admin 维护端点、规则、动作、模板与通知渠道
  • 结构化日志;失败重试(在转发逻辑中可扩展);请求与分发记录持久化

输入与输出

  • 输入:POST /webhook/{namespace} JSON
  • 输出200 返回路由与通知结果结构

验收标准

  • 能正确解析示例 JSON 并生成消息,包含商户名、支付方式、金额、状态与日期,例如:【某商户】支付宝 收款 5.50 元状态成功日期20251220
  • remark=imcgcd03 时转发至配置第3个目标remark=imcgcd02 时至第2个目标
  • 同时推送至飞书与企业微信(若配置存在多个机器人则全部发送)
  • 失败记录与重试可配置(次数与退避)

部署与运行方式(概要)

  • 运行模式:
    • 作为独立 FastAPI 服务运行,暴露 POST /webhook/{namespace}/admin 管理界面
    • 通过 Docker 镜像部署到服务器
  • 最低运行环境:
    • Python 3.12 或兼容的 Docker 运行时
    • 对外开放的 HTTP 端口(默认 8080
  • 配置与数据:
    • 数据库:默认 sqlite:///./config/data.db,可通过环境变量 DB_PATH 调整
    • 规则、模板、渠道均通过 Web 管理后台写入数据库,无需修改代码或 YAML

边界与不做事项

  • 不实现目标端点的认证协议默认匿名POST可通过配置扩展签名
  • 不提供长期持久幂等存储,默认进程内短期去重

风险与约束

  • 目标Webhook不可达导致延迟通过重试与超时保护
  • 通知渠道限流;并发可控与错误日志