lourosscs50/SignalForge
GitHub: lourosscs50/SignalForge
基于整洁架构的事件驱动信号检测平台,提供规则评估和实时告警能力。
Stars: 0 | Forks: 0
# SignalForge
SignalForge 是一个面向平台的信号检测系统,旨在接收事件,根据可配置的规则对其进行评估,并实时生成可操作的警报。
SignalForge 采用整洁架构(Clean Architecture)和模块化单体(Modular Monolith)方法构建,强调清晰的边界、可测试性和长期的可扩展性。
## 🚀 概述
SignalForge 为构建实时检测和监控系统提供了基础。它接收信号,应用基于规则的评估,并在满足条件时产生警报。
该项目是专注于 **平台工程(Platform Engineering)** 而不仅仅是应用程序开发的更广泛生态系统的一部分。
## 🧱 架构
SignalForge 遵循 **整洁架构(Clean Architecture)**,严格分离关注点:
src/
├── SignalForge.Api # HTTP 层(端点,中间件)
├── SignalForge.Application # 用例和编排
├── SignalForge.Domain # 核心业务实体
├── SignalForge.Contracts # DTO 和请求/响应模型
└── SignalForge.Infrastructure # 实现(认证,持久化,服务)
tests/
├── SignalForge.Api.Tests
├── SignalForge.Application.Tests
├── SignalForge.Domain.Tests
└── SignalForge.Architecture.Tests
### 核心原则
- **API 层不包含领域逻辑**
- **Application 层编排行为**
- **Domain 层保持框架无关**
- **Infrastructure 层实现外部关注点**
- **层之间严格边界**
## 🔐 认证
SignalForge 使用 **JWT (JSON Web Token)** 认证:
- `/auth/register` → 创建用户并返回 token
- `/auth/login` → 验证用户并返回 token
- `/me` → 当前用户的受保护端点
- `/signals` → 受保护的信号访问
安全性通过以下方式强制执行:
- Bearer token 验证
- 一致的签名和验证配置
- 覆盖认证流程的集成测试
## 📡 核心能力
### 1. 信号接收
- 通过 API 接收传入信号
- 存储信号以供处理
- 为未来的流式/基于事件的扩展而设计
### 2. 基于规则的评估(第 2 阶段)
- 根据可配置的规则评估信号
- 可扩展的评估器策略(计划中)
- 支持未来的规则类型:
- 相等(Equality)
- 阈值(Threshold)
- 模式匹配(Pattern matching)
- 时间规则(Temporal rules)
### 3. 警报生成
- 当规则匹配信号时创建警报
- 警报链接回以下两者:
- 信号
- 规则
## 🧪 测试
SignalForge 是以 **测试驱动(Test-Driven)** 的规范构建的。
### 测试类型
- **API 测试**
- 认证流程
- 受保护端点
- **Application 测试**
- 用例验证
- **Domain 测试**
- 核心逻辑完整性
- **Architecture 测试**
- 强制执行层边界
### 运行测试
```
dotnet test tests/SignalForge.Api.Tests/SignalForge.Api.Tests.csproj
dotnet test tests/SignalForge.Application.Tests/SignalForge.Application.Tests.csproj
⚙️ Getting Started
Prerequisites
.NET 10 SDK
Docker (optional, for future database integration)
Run API
dotnet run --project src/SignalForge.Api
Run Tests
dotnet test
📁 Project Structure Highlights
Domain
Signal
Rule
Alert
User
Application
IngestSignal
ListSignals
CreateRule
RegisterUser
LoginUser
GetCurrentUser
Infrastructure
JWT authentication
Password hashing
In-memory persistence (for testing)
Dependency injection wiring
🧠 Design Philosophy
SignalForge is built with a platform mindset:
Prioritize extensibility over shortcuts
Build foundations before features
Enforce architectural boundaries early
Validate behavior through tests, not assumptions
🔮 Roadmap
Phase 1 (Completed)
Clean Architecture foundation
JWT authentication
Signal ingestion
Basic alert flow
Integration testing
Phase 2 (In Progress)
Rule evaluation engine
Strategy-based rule evaluators
Alert enrichment
Expanded test coverage
Future
PostgreSQL persistence
Event streaming integration
Multi-tenant support
Real-time processing pipelines
📄 License
Apache License 2.0
👤 Author
Lou Carron
GitHub: https://github.com/lourosscs50
portfolio: https://www.loucarron.dev
💬 Final Note
SignalForge is not just an API — it is a foundation for building real-time detection systems.
```
标签:DevSecOps, JWT 认证, PB级数据处理, 上游代理, 事件处理, 事件驱动架构, 云计算, 企业级应用, 信号摄取, 信号检测平台, 可扩展性, 后端开发, 告警系统, 安全运维, 平台工程, 微服务基础, 整洁架构, 时间线生成, 模块化单体, 欺诈检测, 网络安全, 规则引擎, 请求拦截, 隐私保护, 领域驱动设计