- 添加FastAPI应用基础结构,包括主入口、路由和模型定义
- 实现Webhook接收端点(/webhook/{namespace})和健康检查(/health)
- 添加管理后台路由和模板,支持端点、目标、渠道和模板管理
- 包含SQLite数据库模型定义和初始化逻辑
- 添加日志记录和统计服务
- 包含Dockerfile和配置示例文件
- 添加项目文档,包括设计、流程图和验收标准
2.7 KiB
2.7 KiB
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. 实施步骤
- 更新 DB 模型:修改
app/db.py添加新表。 - 实现日志与端点逻辑:
- 更新
app/main.py接入日志记录。 - 创建
app/services/stats.py简单的统计服务。
- 更新
- 开发前端页面:
- 修改
base.html添加状态栏与菜单。 - 创建
endpoints.html和logs.html。
- 修改
- 开发后台路由:在
app/admin.py实现对应视图。 - 验证:
- 创建新 Endpoint
demo_input。 - 发送测试数据,确认日志生成且状态栏更新。
- 验证“日志详情”能清晰展示接收到的 JSON 和分发结果。
- 创建新 Endpoint
此方案在保留现有轻量级架构的同时,补全了运维监控与多入口管理能力。