Skip to content

Commit 6425fcb

Browse files
docs: add ROADMAP.md with feature priorities
Document current status, gaps, and planned improvements: - v0.2.0: Response body inspection - v0.3.0: Streaming mode support - v0.4.0: Integration tests - v0.5.0: WebSocket support - v0.6.0: Advanced features (custom rules, body modification) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent d5ab204 commit 6425fcb

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed

ROADMAP.md

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# Roadmap
2+
3+
## Current Status (v0.1.0)
4+
5+
The WAF agent is functional for **request inspection in buffer mode**. It correctly implements the `sentinel-agent-protocol` (v0.1.x) and can detect/block common web attacks in request headers and bodies.
6+
7+
### What Works
8+
9+
- Request header inspection (path, query string, all headers)
10+
- Request body inspection (JSON, form data, all content types)
11+
- SQL injection, XSS, path traversal, command injection detection
12+
- Paranoia levels 1-4 for tuning sensitivity
13+
- Block mode and detect-only mode
14+
- Path exclusions
15+
- Configurable max body size (default 1MB)
16+
17+
### What Doesn't Work
18+
19+
- Response body inspection
20+
- Streaming mode (always buffers full body)
21+
- WebSocket frame inspection
22+
- Progressive/incremental decisions on large bodies
23+
- Body content modification (can only block/allow)
24+
25+
---
26+
27+
## Roadmap
28+
29+
### v0.2.0 - Response Inspection
30+
31+
**Priority: High**
32+
33+
Add response body inspection to detect attacks in server responses (e.g., reflected XSS, error message leakage).
34+
35+
- [ ] Implement `on_response_body_chunk()` handler
36+
- [ ] Add `--response-inspection` flag (default: false for backward compat)
37+
- [ ] Add response-specific detection rules
38+
- [ ] Add tests for response body inspection
39+
40+
### v0.3.0 - Streaming Mode Support
41+
42+
**Priority: High**
43+
44+
Support streaming mode for memory efficiency on large request bodies.
45+
46+
- [ ] Implement incremental body scanning (don't wait for `is_last`)
47+
- [ ] Support `needs_more` flag for progressive decisions
48+
- [ ] Add `--streaming-mode` flag (buffer | stream | hybrid)
49+
- [ ] Optimize memory usage for large bodies
50+
- [ ] Add benchmarks comparing buffer vs streaming performance
51+
52+
### v0.4.0 - Integration Tests
53+
54+
**Priority: High**
55+
56+
Add end-to-end tests with actual Sentinel proxy.
57+
58+
- [ ] Create integration test harness with Sentinel proxy
59+
- [ ] Test all detection rules against live requests
60+
- [ ] Test block/allow decisions propagate correctly
61+
- [ ] Test body streaming modes
62+
- [ ] Add CI workflow for integration tests
63+
64+
### v0.5.0 - WebSocket Support
65+
66+
**Priority: Medium**
67+
68+
Add WebSocket frame inspection for detecting attacks in WebSocket traffic.
69+
70+
- [ ] Implement `on_websocket_frame()` handler
71+
- [ ] Add WebSocket-specific detection rules (if applicable)
72+
- [ ] Add `--websocket-inspection` flag
73+
- [ ] Add tests for WebSocket inspection
74+
75+
### v0.6.0 - Advanced Features
76+
77+
**Priority: Low**
78+
79+
- [ ] Body content modification (sanitize instead of block)
80+
- [ ] Custom rule support (user-defined regex patterns)
81+
- [ ] Rule exclusions by ID
82+
- [ ] JSON/XML-aware parsing for structured body inspection
83+
- [ ] Rate limiting integration (track repeat offenders)
84+
85+
---
86+
87+
## Non-Goals
88+
89+
These are explicitly out of scope:
90+
91+
- **Full OWASP CRS compatibility** - We implement a useful subset, not the full ruleset
92+
- **ModSecurity rule language** - We use native Rust regex, not SecLang
93+
- **Learning mode / ML-based detection** - Keep it simple and deterministic
94+
95+
---
96+
97+
## Compatibility
98+
99+
| Sentinel Version | WAF Agent Version | Status |
100+
|------------------|-------------------|--------|
101+
| 0.1.x | 0.1.x | Supported |
102+
103+
The agent depends on `sentinel-agent-protocol = "0.1"` and should remain compatible with any Sentinel 0.1.x release.
104+
105+
---
106+
107+
## Contributing
108+
109+
When working on new features:
110+
111+
1. Add unit tests for new detection rules
112+
2. Update README.md with new CLI options
113+
3. Update this ROADMAP.md when completing milestones
114+
4. Run `cargo test && cargo clippy && cargo fmt` before committing

0 commit comments

Comments
 (0)