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

49 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 任务名称
Webhook中继与通知系统Docker化
## 背景与目标
- 统一接收外部Webhook按规则路由到目标端点并生成通知消息推送至飞书/企业微信。
- 基于配置可扩展支持新增目标、remark映射与事件模板。
## 业务范围
- 接收JSON负载至少包含 `remark`、`event_define_no`、`trans_amt`、`trans_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不可达导致延迟通过重试与超时保护
- 通知渠道限流;并发可控与错误日志