v0.3.6
Changed
- Alert dispatch is now rate-limited by default. New
alerts.rate_limit_seconds(default 900 - 15 minutes) is a per-MAC cooldown on external alert channels: once a device has triggered a dispatch, further alerts about it are suppressed until the cooldown elapses, unless a new finding's severity is higher than what was last alerted. This is a behavior change for anyone upgrading - previously every qualifying finding was dispatched every time. Only the external channels are throttled - the CLI table, JSON output, and the database's event history remain complete. Setrate_limit_seconds: 0to restore the old "alert every time" behavior.
Added
- Five new alert channels: Slack, Discord, Microsoft Teams, ntfy, and Twilio SMS (authenticated via HTTP Basic Auth, one message per recipient, body capped at ~480 characters since SMS is billed per segment). All disabled by default, gated by
alerts.min_severity.
Internal
- Added a CI workflow running
pyteston every push/PR across Python 3.11/3.12/3.13. - Fixed a test flake and stale vendor-table documentation.
Full changelog: https://github.com/rosscooney/LanFence/blob/main/CHANGELOG.md