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级数据处理, 上游代理, 事件处理, 事件驱动架构, 云计算, 企业级应用, 信号摄取, 信号检测平台, 可扩展性, 后端开发, 告警系统, 安全运维, 平台工程, 微服务基础, 整洁架构, 时间线生成, 模块化单体, 欺诈检测, 网络安全, 规则引擎, 请求拦截, 隐私保护, 领域驱动设计