Expand description
Entity Tracking Module for Per-IP Risk Accumulation
This module provides thread-safe entity tracking for synapse-pingora, enabling per-IP risk scoring, decay, and blocking decisions without requiring a roundtrip to the Node.js risk-server.
§Phase 2 Module (Feature Migration from risk-server)
§Features
- Thread-safe concurrent access via DashMap
- Risk accumulation with time-based decay
- LRU eviction for memory bounds (max 100K entities)
- Rule match history with repeat offender multipliers
- Anomaly tracking for behavioral analysis
§Feature Flags
USE_PINGORA_ENTITIES=true: Enable Pingora entity tracking
§Dual-Running Mode
Both Pingora and risk-server track entities. Headers injected for comparison:
X-Entity-Risk-Pingora: Risk score from PingoraX-Entity-Risk-Node: Risk score from risk-serverX-Entity-Blocked-Pingora: Block decision from Pingora
@see apps/risk-server/src/state.ts (TypeScript reference) @see libsynapse/src/entity.rs (Rust reference)
Structs§
- Block
Decision - Block decision result.
- Entity
Config - Configuration for entity tracking.
- Entity
Manager - Thread-safe entity manager using DashMap.
- Entity
Metrics - Entity store metrics.
- Entity
Snapshot - Snapshot of entity state (for returning across lock boundaries).
- Entity
State - Per-IP entity state.
- Ja4Reputation
Result - Result of JA4 reputation check.
- Risk
Application - Risk application result.
- Rule
Match History - Rule match history for a single rule.