Plugin layout
A plugin is a directory underplugins/{deploy,alert}/<name>/ with two files:
manifest.yaml
Metadata plus aconfig_schema. Each field becomes a form input in the UI:
secret fields are stored as given but masked (••••••••) when read back.
plugin.py
The class must be namedPlugin and is constructed with the saved config
dict (available as self.config). Subclass AlertPlugin or DeployPlugin from
thumper.plugins.base.
- Alert plugin
- Deploy plugin
Implement See Alert integrations for the
full
alert(event) - deliver the event, raise on failure. The router
logs a failure and keeps going, so one bad plugin never drops the alert.event dict. The base class also provides a test() that sends a
clearly-labeled synthetic event through your real send path.PluginError for expected failures (missing config, unreachable target);
the API surfaces the message.