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

2.7 KiB
Raw Blame History

Webhook中继系统 - 增强功能实施计划

1. 核心变更:日志审计与多端点管理

为了满足多Webhook接收管理、系统状态监控及日志审计需求将进行以下数据库与逻辑扩展

1.1 数据库模型扩展 (app/db.py)

  • WebhookEndpoint管理接收端点Namespace
    • 字段:namespace (唯一标识), description (备注), created_at, is_active
  • RequestLog:记录入站请求。
    • 字段:id, namespace, remark, event_no, raw_body (JSON), received_at, status (success/error)。
  • DeliveryLog:记录出站转发与推送结果。
    • 字段:request_id (FK), target_name (目标/渠道名), type (relay/notify), status, response_summary, created_at

1.2 业务逻辑增强 (app/main.py)

  • 端点校验POST /webhook/{namespace} 将校验 namespace 是否在 WebhookEndpoint 表中注册(未注册的可选拒绝或标记为匿名)。
  • 日志持久化请求处理完成后将入站数据与出站结果routed/notified异步写入 SQLite 数据库。
  • 状态统计:内存记录系统启动时间,实时计算运行耗时;从 DB 统计今日接收量。

2. Admin后台功能升级

2.1 界面改造 (templates/admin/*.html)

  • 顶部状态栏 (base.html):增加系统运行状态指示器(运行时间、今日请求数、最新一条日志时间)。
  • 端点管理 (endpoints.html):新增页面,支持创建、启用/禁用接收端点Namespace
  • 日志审计 (logs.html)
    • 请求列表:按时间倒序展示,显示 namespace, remark, event。
    • 详情视图:点击查看完整 JSON 负载及对应的所有分发记录(目标+渠道)。
    • 清理功能:一键清空历史日志。

2.2 后台逻辑 (app/admin.py)

  • 新增 /admin/endpoints 路由CRUD 操作。
  • 新增 /admin/logs 路由:分页查询日志。
  • 新增 /admin/stats 接口(或模板上下文):提供状态栏数据。

3. 实施步骤

  1. 更新 DB 模型:修改 app/db.py 添加新表。
  2. 实现日志与端点逻辑
    • 更新 app/main.py 接入日志记录。
    • 创建 app/services/stats.py 简单的统计服务。
  3. 开发前端页面
    • 修改 base.html 添加状态栏与菜单。
    • 创建 endpoints.htmllogs.html
  4. 开发后台路由:在 app/admin.py 实现对应视图。
  5. 验证
    • 创建新 Endpoint demo_input
    • 发送测试数据,确认日志生成且状态栏更新。
    • 验证“日志详情”能清晰展示接收到的 JSON 和分发结果。

此方案在保留现有轻量级架构的同时,补全了运维监控与多入口管理能力。