# Public Lists - Known Limitations (v2.0.0)

## CIDR Range Matching

**Current Status**: MVP with exact IP matching
**Impact**: CIDR ranges (e.g., Spamhaus /24 blocks) are stored but not yet matched against detections

### Details:
- `public_blacklist_ips.cidr_range` field exists and is populated by parsers
- Detections currently use **exact IP matching only**
- Whitelist entries with CIDR notation not expanded

### Future Iteration:
Requires PostgreSQL INET/CIDR column types and query optimizations:
1. Add dedicated `inet` columns to `public_blacklist_ips` and `whitelist`
2. Rewrite merge logic with CIDR containment operators (`<<=`, `>>=`)
3. Index optimization for network range queries

### Workaround (Production):
Most critical single IPs are still caught. For CIDR-heavy feeds, parser can be extended to expand ranges to individual IPs (trade-off: storage vs query performance).

---

## Integration Status

✅ **Working**:
- Fetcher syncs every 10 minutes (systemd timer)
- Manual whitelist > Public whitelist > Blacklist priority
- Automatic cleanup of invalid detections

⚠️ **Manual Sync**:
- UI manual sync triggers by resetting `lastAttempt` timestamp
- Actual sync occurs on next fetcher cycle (max 10 min delay)
- For immediate sync: `sudo systemctl start ids-list-fetcher.service`

---

## Performance Notes

- Bulk SQL operations avoid O(N) per-IP queries
- Tested with 186M+ network_logs records
- Query optimization ongoing for CIDR expansion

---

**Version**: 2.0.0 MVP  
**Date**: 2025-11-26  
**Next Iteration**: Full CIDR matching support
