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

48 lines
2.7 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中继系统 - 增强功能实施计划
## 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.html``logs.html`
4. **开发后台路由**:在 `app/admin.py` 实现对应视图。
5. **验证**
- 创建新 Endpoint `demo_input`
- 发送测试数据,确认日志生成且状态栏更新。
- 验证“日志详情”能清晰展示接收到的 JSON 和分发结果。
此方案在保留现有轻量级架构的同时,补全了运维监控与多入口管理能力。