Notifications & Triggers

📡 CFM Notifications System

Overview

The CFM Notifications System monitors the availability of network agents and provides customizable alerting when agents go offline or recover. It also integrates with user-triggered unblock request monitoring, helping administrators stay informed about potential abuse or false positives in blocking behavior.

The system is composed of four coordinated components:

  1. Agent Uptime Monitoring Controller

  2. Notifier Configuration Resource

  3. Trigger Mechanism Resource

  4. Unblock Request Monitoring

These components work together to detect agent status changes, define notification methods, and execute appropriate alerting workflows.


1. 🧭 Agent Uptime Monitoring

Component: AgentNotificationController

This controller is responsible for continuously checking the status of registered agents. It does so by comparing each agent's last heartbeat timestamp (last_seen_at) against the current time. If an agent hasn't communicated within a predefined time window (e.g., 60 seconds), it is considered offline.

Key Behaviors


2. 📣 Notifier Configuration

Component: NotifierResource

This resource allows administrators to configure various notification channels, which define how alerts are sent.

Supported Notifier Types (examples):

Each notifier contains:


3. 🎯 Trigger Mechanism

Component: TriggerResource

This module acts as the brain of the notification system, determining when and which notifications should be triggered based on agent status changes.

Core Features


4. 🔓 Unblock Request Monitoring

Integration Point: UnblockController (external module)

This integration captures and processes unblock requests submitted by end users who are temporarily blocked by the system (e.g., via CSF or custom firewall logic).

Features

This feature provides security teams with real-time context on potentially malicious or misbehaving clients.


🔐 Security Considerations

To protect system integrity and minimize attack surface:


⚙️ Workflow Summary

  1. The Agent Uptime Controller routinely checks agent heartbeat timestamps.

  2. If a status change is detected (up or down), it invokes the Trigger Mechanism.

  3. The Trigger Mechanism determines if and which notifications should be sent, based on tag matching and cooldown logic.

  4. Matched Notifiers are executed asynchronously or in queue, depending on system setup.

  5. If a user requests unblocking, an internal event is logged and optionally notifies admins based on thresholds or flags.

Revision #3
Created 5 May 2025 10:14:30 by Dimitris Gkatzigiannis
Updated 5 May 2025 10:36:35 by Dimitris Gkatzigiannis