Development
Guide for contributors and developers working on Sentinel and its ecosystem.
Quick Start
# Clone and build
# Run tests
# Check formatting and lints
Section Overview
| Guide | Description |
|---|---|
| Building from Source | Compile Sentinel and agents from source |
| Development Setup | IDE configuration, recommended tools |
| Code Style | Formatting, naming conventions, best practices |
| Testing | Testing strategy and philosophy |
| Unit Tests | Writing and running unit tests |
| Integration Tests | End-to-end testing with real connections |
| Load Testing | Performance and stress testing |
| Contributing | How to contribute to the project |
| Pull Request Process | Submitting and reviewing PRs |
| Release Process | Versioning and release workflow |
Repository Structure
sentinel/
├── src/
│ ├── main.rs # Entry point
│ ├── config/ # KDL configuration parsing
│ ├── server/ # HTTP server, listeners
│ ├── routing/ # Route matching, upstream selection
│ ├── proxy/ # Request/response proxying
│ ├── agents/ # Agent client, protocol handling
│ ├── health/ # Health checks
│ └── observability/ # Metrics, logging, tracing
├── tests/
│ ├── unit/ # Unit tests
│ └── integration/ # Integration tests
├── benches/ # Benchmarks
└── examples/ # Example configurations
Agent Repositories
Each agent is maintained in its own repository:
| Agent | Repository |
|---|---|
| WAF | sentinel-agent-waf |
| ModSecurity | sentinel-agent-modsec |
| Auth | sentinel-agent-auth |
| Rate Limit | sentinel-agent-ratelimit |
| JavaScript | sentinel-agent-js |
| AI Gateway | sentinel-agent-ai-gateway |
| WebSocket Inspector | sentinel-agent-websocket-inspector |
Agent Protocol
All agents use the shared protocol library:
[]
= "0.1"
See Agent Development for creating custom agents.