Data Sources

Real-time monitoring dashboard for all connected log sources with health tracking, auto-discovery, self-healing, and connector management.

Overview

A SOCaaS platform is only as good as the data it ingests. If a log source silently stops sending events, detection coverage degrades and threats go unnoticed. The Data Sources module provides continuous visibility into every connected data source -- its status, event throughput, health percentage, and last event timestamp. It also surfaces auto-discovered sources and maintains a self-healing log that documents automated remediation attempts.

What Was Proposed

What's Built Complete

Architecture

Multi-SIEM Adapter Layer

The Data Sources module operates as the management plane for the multi-SIEM adapter layer. Each SIEM adapter (Sentinel, Splunk, Elastic, Chronicle, QRadar) connects through a standardized connector interface. The frontend polls the onboarding API for source status and health metrics, while the backend's self-healing monitor automatically attempts reconnection for degraded sources.

Frontend Dashboard          API Layer                  SIEM Adapters
+------------------+   +---------------------+   +------------------+
| DataSourcesPage  |-->| /api/v1/onboarding/ |   | Sentinel Adapter |
|  Summary Cards   |   |  datasources        |   | Splunk Adapter   |
|  Source Grid     |   |  datasources/health  |   | Elastic Adapter  |
|  Health Timeline |   |  datasources/discover|   | Chronicle Adapter|
|  Auto-Discovery  |   |  self-healing/log    |   | QRadar Adapter   |
|  Self-Heal Log   |   +---------------------+   +------------------+
+------------------+

Routing

Frontend Route
/data-sources
API Prefix
/api/v1/onboarding/datasources

Prerequisites

Data Model

FieldTypeDescription
idstringUnique source identifier
namestringHuman-readable source name
source_typestringendpoint | cloud | network | identity | email | firewall | siem | dns
connector_typestringsentinel_connector | syslog_cef | api_poll | webhook | file_based | windows_events | cloud_api
statusenumconnected | degraded | disconnected
events_per_hournumberCurrent event throughput
last_eventISO 8601Timestamp of most recent event
health_pctnumberHealth percentage (0-100)

Discovered Source Model

FieldTypeDescription
idstringDiscovered source identifier
namestringDevice/service name with IP
source_typestringDetected source category
discovered_atISO 8601When the source was found

Self-Healing Action Model

FieldTypeDescription
idstringAction identifier
source_namestringAffected source name
actionstringRemediation action description
timestampISO 8601When action was attempted
resultenumsuccess | fail

UI Description

The page header shows a database icon with "Data Sources" title and "Monitor and manage log source connections" subtitle. Two action buttons appear: "Refresh" and "Add Source" (orange CTA).

Summary Cards

Four cards across the top: Total Sources, Connected (green), Degraded/Disconnected (yellow/red split), and Events/Hour (orange, formatted as "50.6k").

Add Source Panel

Clicking "Add Source" reveals a bordered panel with a 4-column grid of connector templates. Each template shows its icon and name. Clicking initiates a connection flow with loading spinner.

Source Grid

A 2-column grid of source cards. Each card displays: source icon, name, connector type, status badge (Connected/Degraded/Disconnected with appropriate colors), and a 3-column metrics row (events/hr, last event, health %). A thin health bar at the bottom is color-coded: green >=80%, yellow >=50%, red below 50%.

Health Timeline

A bar chart showing 24 hourly health data points. Bars are color-coded (green/yellow/red) with hover tooltips. Time labels appear every 6 hours.

Auto-Discovery Panel

Shows pending discovered sources with device name, discovery time, and Approve/Dismiss buttons. Only visible when discovered sources exist.

Self-Healing Log

A list of recent remediation actions with source name, action description, time ago, and success/fail badge.

Source Files

ComponentPath
Frontend Pageplatform/frontend/src/app/data-sources/page.tsx
API Routerplatform/api/app/routers/onboarding.py (shared)
Service Engineplatform/api/app/services/onboarding_engine.py