Skip to content

Add Flowtriq notification plugin#925

Open
jacob-masse wants to merge 1 commit into
Checkmk:masterfrom
jacob-masse:add-flowtriq-notification-plugin
Open

Add Flowtriq notification plugin#925
jacob-masse wants to merge 1 commit into
Checkmk:masterfrom
jacob-masse:add-flowtriq-notification-plugin

Conversation

@jacob-masse

Copy link
Copy Markdown

Summary

  • Add a new notification plugin for Flowtriq, a DDoS detection and traffic analytics platform
  • The plugin POSTs alert payloads (JSON) to a configurable webhook URL with optional API key authentication via X-API-Key header
  • Follows the same patterns as existing webhook-based plugins (Slack, VictorOps, PagerDuty)

What's included

Plugin logic (cmk/notification_plugins/flowtriq.py):

  • Builds a JSON payload with source, host, host_address, service, state, output, notification_type, and optional Checkmk url
  • Sends via post_request with optional X-API-Key header
  • Accepts 200, 201, and 202 as success status codes

Entry point script (notifications/flowtriq.py):

  • Standard notification script entry point following existing patterns

WATO GUI form (cmk/gui/wato/_notification_parameter/_flowtriq.py):

  • Webhook URL (explicit or from password store)
  • Optional API key (stored securely via Checkmk password handling)
  • SSL verification toggle, proxy, and URL prefix settings

Type definitions (cmk/utils/notify_types.py):

  • FlowtriqPluginModel, FlowtriqPluginName, FlowtriqNotify
  • Added to KnownPluginParameters, BuiltInPluginNames, NotifyPluginParamsDict unions

Tests:

  • Unit tests covering service notification, host notification, and recovery scenarios
  • Updated test_registry, test_configuration_entity, and test_binaries expected plugin lists

Build:

  • Added to Bazel BUILD notification_scripts pkg_files renames

Test plan

  • Unit tests pass for test_flowtriq.py (message construction for service, host, and recovery notifications)
  • Notification parameter registry test includes flowtriq
  • Configuration entity readable name resolves to "Flowtriq parameter"
  • Integration binary smoke test exits with expected KeyError.*NOTIF when run without env vars
  • End-to-end: configure Flowtriq notification in WATO, trigger a test notification, verify JSON payload arrives at webhook endpoint

Add a notification plugin for Flowtriq (https://flowtriq.com), a DDoS
detection and traffic analytics platform.

The plugin POSTs alert payloads to a configurable webhook URL with an
optional API key (sent as X-API-Key header). The JSON payload includes
source, host, host_address, service, state, output, notification_type,
and an optional Checkmk URL for linking back to the monitored object.

New files:
- cmk/notification_plugins/flowtriq.py (plugin logic)
- notifications/flowtriq.py (entry point script)
- cmk/gui/wato/_notification_parameter/_flowtriq.py (WATO GUI form)
- tests/test_flowtriq.py (unit tests)

Updated:
- registration.py (GUI parameter registration)
- notify_types.py (FlowtriqPluginModel type definitions)
- BUILD (Bazel packaging)
- test_registry.py, test_configuration_entity.py, test_binaries.py
@github-actions

Copy link
Copy Markdown


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA or my organization already has a signed CLA.


You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

@jacob-masse

Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA or my organization already has a signed CLA.

@jacob-masse

Copy link
Copy Markdown
Author

recheck

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants