From a5489d3c87bc80757eebfd5f94f891fd1c8ce50869c8c9f2fe489a7c778269fe Mon Sep 17 00:00:00 2001 From: larssand Date: Mon, 22 Jun 2026 19:09:25 +0200 Subject: [PATCH] add more streams --- src/fgai/config.py | 6 ++++++ src/fgai/dashboard.py | 28 ++++++++++++++++++++++++- src/fgai/event_context.py | 41 +++++++++++++++++++++++++++++++++++++ src/fgai/llm.py | 13 +++++++----- src/fgai/monitor.py | 14 ++++++++++++- tests/test_event_context.py | 20 ++++++++++++++++++ 6 files changed, 115 insertions(+), 7 deletions(-) create mode 100644 src/fgai/event_context.py create mode 100644 tests/test_event_context.py diff --git a/src/fgai/config.py b/src/fgai/config.py index 2f61e9d..9bc97fc 100644 --- a/src/fgai/config.py +++ b/src/fgai/config.py @@ -9,6 +9,7 @@ DEFAULT_CONFIG: dict[str, object] = { "log_source": "local_syslog", "graylog_mcp_url": "", "graylog_stream": "", + "graylog_streams": [], "graylog_query": "*", "graylog_field_mapping": "", "llm_enabled": False, @@ -46,6 +47,11 @@ class ConfigStore: current[key] = bool(value) elif key == "log_source" and value in {"local_syslog", "graylog_mcp"}: current[key] = value + elif key == "graylog_streams" and isinstance(value, list): + current[key] = [ + {"id": str(item.get("id", "")), "title": str(item.get("title", "")), "enabled": bool(item.get("enabled"))} + for item in value if isinstance(item, dict) and item.get("id") + ] elif isinstance(value, str): current[key] = value.strip() self.path.parent.mkdir(parents=True, exist_ok=True) diff --git a/src/fgai/dashboard.py b/src/fgai/dashboard.py index 2670945..0614ffb 100644 --- a/src/fgai/dashboard.py +++ b/src/fgai/dashboard.py @@ -5,6 +5,7 @@ from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer from pathlib import Path from .config import ConfigStore +from .graylog_mcp import GraylogMcpClient HTML = """ @@ -62,7 +63,7 @@ HTML = """

AI Assessment

LLM assessment disabled.

Anomalies

Recommendations

Block Candidates

Threat Intelligence

Policy Findings

Diagnostics

-

Runtime Configuration

+

Runtime Configuration