# nowsadmunna/spl-3-sadmc_sheild architecture

> Architecture diagram of the GitHub repository nowsadmunna/spl-3-sadmc_sheild, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nowsadmunna/spl-3-sadmc_sheild
- Repository: https://github.com/nowsadmunna/spl-3-sadmc_sheild

## Overview

SADMC Shield monitors Kubernetes services through an agent, sends metrics to a SaaS backend for persistence and anomaly inference, and can execute thresholded remediation; users inspect results in an authenticated dashboard. The tree also contains a separate federated anomaly-detection research/training codebase. The README is empty, and sampled sources do not establish how that research code connects to the SaaS model or how dashboard data services are wired, so those links are omitted.

Main entry points: [`HelmAndSaas/Dashboard/src/app/app.routes.ts`](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/app.routes.ts) (Dashboard routes), [`HelmAndSaas/Agent/agent/main.py`](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/main.py) (Agent loop), [`HelmAndSaas/Saas/routes/dashboard.routes.js`](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/routes/dashboard.routes.js) (Dashboard API), [`HelmAndSaas/Saas/app.js`](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/app.js) (API application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_agent["Cluster agent"]
  node_agent_loop["Agent loop<br/>[main.py]"]
  node_discovery["Service discovery<br/>[discovery.py]"]
  node_prom_detect["Prometheus detection"]
  node_collector["Metrics collection"]
  node_agent_client["SaaS client"]
  node_remediation["Remediation executor<br/>[executor.py]"]
  node_cooldown["Cooldown tracking<br/>[cooldown.py]"]
end

subgraph group_backend["SaaS backend"]
  node_server["HTTP server<br/>[server.js]"]
  node_app["API application<br/>[app.js]"]
  node_auth_routes["Authentication routes<br/>[auth.routes.js]"]
  node_auth_service["Authentication service<br/>[authService.js]"]
  node_metrics_routes["Metrics ingestion<br/>[metrics.routes.js]"]
  node_cluster_service["Cluster service<br/>[clusterService.js]"]
  node_metrics_service["Metrics service<br/>[metricsService.js]"]
  node_inference_service["Inference service"]
  node_event_service["Anomaly events<br/>[eventService.js]"]
  node_dashboard_routes["Dashboard API"]
  node_dashboard_service["Dashboard queries"]
  node_remediation_routes["Remediation reports"]
  node_websocket["Live events<br/>[wsServer.js]"]
end

subgraph group_dashboard["Web dashboard"]
  node_ui_routes["Dashboard routes<br/>[app.routes.ts]"]
  node_auth_ui["Dashboard authentication<br/>[auth.service.ts]"]
  node_overview["Overview and feeds"]
  node_metrics_ui["Metrics view<br/>[metrics.ts]"]
  node_anomaly_ui["Anomaly feed<br/>[anomaly-feed.ts]"]
  node_remediation_ui["Remediation log<br/>[remediation-log.ts]"]
  node_settings_ui["Settings and setup<br/>[settings.ts]"]
end

subgraph group_ml["Anomaly modeling"]
  node_onnx["ONNX model<br/>[onnxModel.js]"]
  node_research_train["Federated model training<br/>[train.py]"]
  node_research_network["Federated network<br/>[network_fed.py]"]
end

node_cluster(("Kubernetes cluster"))
node_prometheus[("Prometheus")]
node_operator(("Dashboard user"))
node_postgres[("PostgreSQL<br/>[pool.js]")]

node_operator -->|"navigates"| node_ui_routes
node_ui_routes -->|"uses auth"| node_auth_ui
node_ui_routes -->|"routes to"| node_overview
node_ui_routes -->|"routes to"| node_metrics_ui
node_ui_routes -->|"routes to"| node_anomaly_ui
node_ui_routes -->|"routes to"| node_remediation_ui
node_ui_routes -->|"routes to"| node_settings_ui
node_agent_loop -->|"detects"| node_prom_detect
node_agent_loop -->|"discovers"| node_discovery
node_agent_loop -->|"collects"| node_collector
node_agent_loop -->|"registers and sends"| node_agent_client
node_discovery -->|"discovers services"| node_cluster
node_prom_detect -->|"detects endpoint"| node_prometheus
node_collector -->|"reads metrics"| node_prometheus
node_agent_client -->|"sends API requests"| node_server
node_server -->|"serves"| node_app
node_app -->|"mounts"| node_auth_routes
node_app -->|"mounts"| node_metrics_routes
node_app -->|"mounts"| node_dashboard_routes
node_app -->|"mounts"| node_remediation_routes
node_auth_routes -->|"calls"| node_auth_service
node_auth_service -->|"queries"| node_postgres
node_metrics_routes -->|"calls"| node_cluster_service
node_metrics_routes -->|"calls"| node_metrics_service
node_metrics_routes -->|"predicts with"| node_inference_service
node_metrics_routes -->|"records anomalies"| node_event_service
node_cluster_service -->|"queries"| node_postgres
node_metrics_service -->|"writes metrics"| node_postgres
node_event_service -->|"writes events"| node_postgres
node_inference_service -->|"loads and predicts"| node_onnx
node_dashboard_routes -->|"calls"| node_dashboard_service
node_dashboard_service -->|"queries"| node_postgres
node_agent_client -->|"reports outcomes"| node_remediation_routes
node_agent_loop -->|"checks and records"| node_cooldown
node_agent_loop -->|"executes actions"| node_remediation
node_operator -->|"registers or logs in"| node_auth_routes
node_auth_ui -->|"requests auth"| node_auth_routes
node_overview -->|"requests dashboard data"| node_dashboard_routes
node_metrics_ui -->|"requests metrics"| node_dashboard_routes
node_anomaly_ui -->|"requests anomalies"| node_dashboard_routes
node_remediation_ui -->|"requests remediation history"| node_dashboard_routes
node_server -->|"attaches event server"| node_websocket

click node_agent_loop "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/main.py"
click node_discovery "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/discovery.py"
click node_prom_detect "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/prometheus_detector.py"
click node_collector "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/metrics_collector.py"
click node_agent_client "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/inference_client.py"
click node_remediation "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/remediation/executor.py"
click node_cooldown "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/remediation/cooldown.py"
click node_server "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/server.js"
click node_app "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/app.js"
click node_auth_routes "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/routes/auth.routes.js"
click node_auth_service "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/services/authService.js"
click node_metrics_routes "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/routes/metrics.routes.js"
click node_cluster_service "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/services/clusterService.js"
click node_metrics_service "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/services/metricsService.js"
click node_inference_service "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/services/inferenceService.js"
click node_event_service "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/services/eventService.js"
click node_dashboard_routes "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/routes/dashboard.routes.js"
click node_dashboard_service "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/services/dashboardService.js"
click node_remediation_routes "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/routes/remediation.routes.js"
click node_postgres "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/db/pool.js"
click node_onnx "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/inference/onnxModel.js"
click node_research_train "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/SADMC-MT-FF-FL/code/train.py"
click node_research_network "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/SADMC-MT-FF-FL/code/network_fed.py"
click node_ui_routes "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/app.routes.ts"
click node_auth_ui "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/core/auth.service.ts"
click node_overview "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/pages/dashboard-overview/dashboard-overview.ts"
click node_metrics_ui "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/pages/metrics/metrics.ts"
click node_anomaly_ui "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/pages/anomaly-feed/anomaly-feed.ts"
click node_remediation_ui "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/pages/remediation-log/remediation-log.ts"
click node_settings_ui "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/pages/settings/settings.ts"
click node_websocket "https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/ws/wsServer.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_agent_loop,node_discovery,node_prom_detect,node_collector,node_agent_client,node_remediation,node_cooldown,node_operator toneBlue
class node_server,node_app,node_auth_routes,node_auth_service,node_metrics_routes,node_cluster_service,node_metrics_service,node_inference_service,node_event_service,node_dashboard_routes,node_dashboard_service,node_remediation_routes,node_websocket,node_prometheus,node_postgres toneAmber
class node_ui_routes,node_auth_ui,node_overview,node_metrics_ui,node_anomaly_ui,node_remediation_ui,node_settings_ui toneMint
class node_onnx,node_research_train,node_research_network toneRose
class node_cluster toneIndigo
```

## Components

### Cluster agent

- [Agent loop](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/main.py): `HelmAndSaas/Agent/agent/main.py`
- [Service discovery](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/discovery.py): `HelmAndSaas/Agent/agent/discovery.py`
- [Prometheus detection](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/prometheus_detector.py): `HelmAndSaas/Agent/agent/prometheus_detector.py`
- [Metrics collection](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/metrics_collector.py): `HelmAndSaas/Agent/agent/metrics_collector.py`
- [SaaS client](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/inference_client.py): `HelmAndSaas/Agent/agent/inference_client.py`
- [Remediation executor](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/remediation/executor.py): `HelmAndSaas/Agent/agent/remediation/executor.py`
- [Cooldown tracking](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Agent/agent/remediation/cooldown.py): `HelmAndSaas/Agent/agent/remediation/cooldown.py`

### SaaS backend

- [HTTP server](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/server.js): `HelmAndSaas/Saas/server.js`
- [API application](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/app.js): `HelmAndSaas/Saas/app.js`
- [Authentication routes](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/routes/auth.routes.js): `HelmAndSaas/Saas/routes/auth.routes.js`
- [Authentication service](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/services/authService.js): `HelmAndSaas/Saas/services/authService.js`
- [Metrics ingestion](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/routes/metrics.routes.js): `HelmAndSaas/Saas/routes/metrics.routes.js`
- [Cluster service](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/services/clusterService.js): `HelmAndSaas/Saas/services/clusterService.js`
- [Metrics service](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/services/metricsService.js): `HelmAndSaas/Saas/services/metricsService.js`
- [Inference service](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/services/inferenceService.js): `HelmAndSaas/Saas/services/inferenceService.js`
- [Anomaly events](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/services/eventService.js): `HelmAndSaas/Saas/services/eventService.js`
- [Dashboard API](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/routes/dashboard.routes.js): `HelmAndSaas/Saas/routes/dashboard.routes.js`
- [Dashboard queries](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/services/dashboardService.js): `HelmAndSaas/Saas/services/dashboardService.js`
- [Remediation reports](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/routes/remediation.routes.js): `HelmAndSaas/Saas/routes/remediation.routes.js`
- [Live events](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/ws/wsServer.js): `HelmAndSaas/Saas/ws/wsServer.js`

### Web dashboard

- [Dashboard routes](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/app.routes.ts): `HelmAndSaas/Dashboard/src/app/app.routes.ts`
- [Dashboard authentication](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/core/auth.service.ts): `HelmAndSaas/Dashboard/src/app/core/auth.service.ts`
- [Overview and feeds](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/pages/dashboard-overview/dashboard-overview.ts): `HelmAndSaas/Dashboard/src/app/pages/dashboard-overview/dashboard-overview.ts`
- [Metrics view](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/pages/metrics/metrics.ts): `HelmAndSaas/Dashboard/src/app/pages/metrics/metrics.ts`
- [Anomaly feed](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/pages/anomaly-feed/anomaly-feed.ts): `HelmAndSaas/Dashboard/src/app/pages/anomaly-feed/anomaly-feed.ts`
- [Remediation log](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/pages/remediation-log/remediation-log.ts): `HelmAndSaas/Dashboard/src/app/pages/remediation-log/remediation-log.ts`
- [Settings and setup](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Dashboard/src/app/pages/settings/settings.ts): `HelmAndSaas/Dashboard/src/app/pages/settings/settings.ts`

### Anomaly modeling

- [ONNX model](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/inference/onnxModel.js): `HelmAndSaas/Saas/inference/onnxModel.js`
- [Federated model training](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/SADMC-MT-FF-FL/code/train.py): `SADMC-MT-FF-FL/code/train.py`
- [Federated network](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/SADMC-MT-FF-FL/code/network_fed.py): `SADMC-MT-FF-FL/code/network_fed.py`

### Other components

- **Kubernetes cluster**
- **Prometheus**
- **Dashboard user**
- [PostgreSQL](https://github.com/nowsadmunna/spl-3-sadmc_sheild/blob/main/HelmAndSaas/Saas/db/pool.js): `HelmAndSaas/Saas/db/pool.js`

## Connections

- Dashboard user → Dashboard routes: navigates
- Dashboard routes → Dashboard authentication: uses auth
- Dashboard routes → Overview and feeds: routes to
- Dashboard routes → Metrics view: routes to
- Dashboard routes → Anomaly feed: routes to
- Dashboard routes → Remediation log: routes to
- Dashboard routes → Settings and setup: routes to
- Agent loop → Prometheus detection: detects
- Agent loop → Service discovery: discovers
- Agent loop → Metrics collection: collects
- Agent loop → SaaS client: registers and sends
- Service discovery → Kubernetes cluster: discovers services
- Prometheus detection → Prometheus: detects endpoint
- Metrics collection → Prometheus: reads metrics
- SaaS client → HTTP server: sends API requests
- HTTP server → API application: serves
- API application → Authentication routes: mounts
- API application → Metrics ingestion: mounts
- API application → Dashboard API: mounts
- API application → Remediation reports: mounts
- Authentication routes → Authentication service: calls
- Authentication service → PostgreSQL: queries
- Metrics ingestion → Cluster service: calls
- Metrics ingestion → Metrics service: calls
- Metrics ingestion → Inference service: predicts with
- Metrics ingestion → Anomaly events: records anomalies
- Cluster service → PostgreSQL: queries
- Metrics service → PostgreSQL: writes metrics
- Anomaly events → PostgreSQL: writes events
- Inference service → ONNX model: loads and predicts
- Dashboard API → Dashboard queries: calls
- Dashboard queries → PostgreSQL: queries
- SaaS client → Remediation reports: reports outcomes
- Agent loop → Cooldown tracking: checks and records
- Agent loop → Remediation executor: executes actions
- Dashboard user → Authentication routes: registers or logs in
- Dashboard authentication → Authentication routes: requests auth
- Overview and feeds → Dashboard API: requests dashboard data
- Metrics view → Dashboard API: requests metrics
- Anomaly feed → Dashboard API: requests anomalies
- Remediation log → Dashboard API: requests remediation history
- HTTP server → Live events: attaches event server
