Skip to content

feat: Alert notification system (webhook, email, Slack) #3

Description

@notyorch

Overview

A SIEM without outbound notifications is incomplete. When the detection engine flags a threat, there is currently no mechanism to alert the operator in real time outside of the dashboard UI.

Problem

  • Operators must actively watch the dashboard to catch alerts
  • No integration with existing incident response workflows
  • High-severity detections (e.g. prompt injection, jailbreak) go unnoticed if the dashboard tab is closed

Proposed Solution

Add a notification service to tup-manager that dispatches alerts to one or more channels when a detection event exceeds a severity threshold.

Supported Channels (Phase 1)

Channel Trigger Config
Webhook Any alert ALERT_WEBHOOK_URL env var
Email (SMTP) Severity >= HIGH SMTP_* env vars
Slack Severity >= HIGH SLACK_WEBHOOK_URL env var

Notification Payload Example

{
  "event_id": "uuid",
  "timestamp": "2026-06-24T20:00:00Z",
  "model_id": "meta/llama-3.1-8b-instruct",
  "severity": "HIGH",
  "detection_type": "prompt_injection",
  "confidence": 0.91,
  "summary": "Potential prompt injection detected in user input"
}

Changes Required

  • Add notifications/ module inside tup-manager
  • Implement WebhookNotifier, SlackNotifier, EmailNotifier classes
  • Add ALERT_MIN_SEVERITY env var (default: MEDIUM)
  • Wire notifiers into the detection pipeline post-classification
  • Add notification config to .env.example
  • Add /api/v1/notifications/test endpoint to validate config
  • Document in README

Acceptance Criteria

  • Slack message received within 5s of HIGH severity detection
  • Webhook POST includes full event payload
  • Notifications are non-blocking (async, don't delay detection response)
  • Failed notification logged but does not crash manager

Priority

🟠 Medium — required for real incident response workflows

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions