Summary

Adds an SNMP trap provider for Keep (closes #2112).

Because SNMP traps use UDP, the integration bridges them to Keep via HTTP: configure your SNMP trap daemon (snmptrapd, snmptt, or a custom script) to forward trap data as JSON to the Keep webhook URL.

Features

  • Webhook-only provider — no credentials required, zero external library dependencies
  • SNMPv1 generic trap normalisation — all 7 trap types (0-6) mapped to severity + status
  • Explicit severity field — critical/error/warning/info/ok/clear
  • Keyword heuristic fallback — scans trapname/description for severity keywords
  • Status inference — linkUp/coldStart → RESOLVED; linkDown → FIRING
  • Stable fingerprinting — 16-char SHA-1 of source_ip + enterprise + specific_trap for dedup
  • Varbind passthrough — all OID-value pairs stored on AlertDto

Changes

File Description
keep/providers/snmp_provider/snmp_provider.py Full implementation
tests/providers/snmp_provider/test_snmp_provider.py 55 unit tests
docs/providers/documentation/snmp-provider.mdx MDX documentation
docs/mint.json Navigation entry

Test coverage (55 tests)

  • _compute_fingerprint: stability, uniqueness, length
  • _severity_from_keywords: 10 patterns + None/empty edge cases
  • _parse_severity: explicit field, generic_trap 0-6, keyword fallback
  • _parse_status: explicit values, linkUp/linkDown heuristic
  • _format_alert: full/minimal/empty payloads, 15+ trap scenarios
  • Provider class attributes

/claim #2112

Claim

Total prize pool $200
Total paid $0
Status Pending
Submitted March 29, 2026
Last updated March 29, 2026

Contributors

WI

Wilson Xu

@chengyixu

100%

Sponsors

KE

Keep (YC W23)

@keephq

$200