# backendarchitectx/networksecurity architecture

> Architecture diagram of the GitHub repository backendarchitectx/networksecurity, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/backendarchitectx/networksecurity
- Repository: https://github.com/backendarchitectx/networksecurity

## Overview

Network Security Decision Platform serves versioned threat scoring and manages durable, fenced retraining. Clients submit predictions to the API, which validates and bounds requests before calling the model runtime; administrators submit durable jobs that a separate worker claims, trains, and may promote. Training proceeds through ingestion, validation, transformation, and model selection before staging and fenced promotion. The README documents key reliability capabilities; unsampled modules are represented only where their role or connections are documented or indexed.

Main entry points: [`networksecurity/pipeline/training_pipeline.py`](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/pipeline/training_pipeline.py) (Training orchestrator), [`networksecurity/api/app.py`](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/api/app.py) (HTTP API), [`networksecurity/services/training_worker.py`](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/services/training_worker.py) (Training worker), [`networksecurity/services/model_runtime.py`](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/services/model_runtime.py) (Model runtime)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_serving["Serving plane"]
  node_api["HTTP API<br/>[app.py]"]
  node_admission["Request admission<br/>[middleware.py]"]
  node_contracts["API contracts<br/>[contracts.py]"]
  node_runtime["Model runtime<br/>[model_runtime.py]"]
end

subgraph group_control["Training control"]
  node_jobs[("Training job store<br/>[training_jobs.py]")]
  node_worker["Training worker<br/>[training_worker.py]"]
  node_jobdb[("SQLite job database")]
end

subgraph group_training["Training workflow"]
  node_pipeline["Training orchestrator"]
  node_ingestion["Data ingestion<br/>[data_ingestion.py]"]
  node_validation["Data validation<br/>[data_validation.py]"]
  node_transformation["Data transformation"]
  node_trainer["Model selection<br/>[model_trainer.py]"]
end

subgraph group_models["Model lifecycle"]
  node_registry[("Immutable model registry<br/>[model_registry.py]")]
  node_schema["Schema registry<br/>[schema_registry.py]"]
end

subgraph group_foundation["Shared foundations"]
  node_artifacts["Training artifacts<br/>[artifact_entity.py]"]
  node_settings["Runtime settings<br/>[runtime.py]"]
end

node_client(("Prediction client"))
node_admin(("Administrator"))
node_metrics(("Prometheus metrics"))
node_mongo[("MongoDB source")]
node_s3[("S3 mirror")]

node_client -->|"submits predictions"| node_api
node_admin -->|"submits jobs"| node_api
node_api -->|"admits requests"| node_admission
node_api -->|"uses contracts"| node_contracts
node_api -->|"requests inference"| node_runtime
node_api -->|"submits and reads jobs"| node_jobs
node_api -->|"exports metrics"| node_metrics
node_jobs -->|"persists jobs"| node_jobdb
node_worker -->|"claims and updates"| node_jobs
node_worker -->|"runs training"| node_pipeline
node_worker -->|"checks fence"| node_registry
node_mongo -->|"provides records"| node_ingestion
node_pipeline -->|"starts ingestion"| node_ingestion
node_pipeline -->|"starts validation"| node_validation
node_pipeline -->|"transforms data"| node_transformation
node_pipeline -->|"selects model"| node_trainer
node_pipeline -->|"stages and promotes"| node_registry
node_pipeline -->|"loads schema"| node_schema
node_pipeline -.->|"mirrors after promotion"| node_s3
node_runtime -->|"loads model bundles"| node_registry
node_runtime -->|"checks compatibility"| node_schema
node_api -->|"configures service"| node_settings
node_worker -->|"configures worker"| node_settings
node_pipeline -->|"passes stage results"| node_artifacts

click node_api "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/api/app.py"
click node_admission "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/api/middleware.py"
click node_contracts "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/api/contracts.py"
click node_runtime "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/services/model_runtime.py"
click node_jobs "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/services/training_jobs.py"
click node_worker "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/services/training_worker.py"
click node_pipeline "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/pipeline/training_pipeline.py"
click node_ingestion "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/components/data_ingestion.py"
click node_validation "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/components/data_validation.py"
click node_transformation "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/components/data_transformation.py"
click node_trainer "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/components/model_trainer.py"
click node_artifacts "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/entity/artifact_entity.py"
click node_registry "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/services/model_registry.py"
click node_schema "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/services/schema_registry.py"
click node_settings "https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/config/runtime.py"

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_api,node_admission,node_contracts,node_runtime,node_client toneBlue
class node_jobs,node_worker,node_jobdb,node_mongo,node_s3 toneAmber
class node_pipeline,node_ingestion,node_validation,node_transformation,node_trainer toneMint
class node_registry,node_schema toneRose
class node_artifacts,node_settings,node_admin,node_metrics toneIndigo
```

## Components

### Serving plane

- [HTTP API](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/api/app.py): `networksecurity/api/app.py`
- [Request admission](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/api/middleware.py): `networksecurity/api/middleware.py`
- [API contracts](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/api/contracts.py): `networksecurity/api/contracts.py`
- [Model runtime](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/services/model_runtime.py): `networksecurity/services/model_runtime.py`

### Training control

- [Training job store](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/services/training_jobs.py): `networksecurity/services/training_jobs.py`
- [Training worker](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/services/training_worker.py): `networksecurity/services/training_worker.py`
- **SQLite job database**

### Training workflow

- [Training orchestrator](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/pipeline/training_pipeline.py): `networksecurity/pipeline/training_pipeline.py`
- [Data ingestion](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/components/data_ingestion.py): `networksecurity/components/data_ingestion.py`
- [Data validation](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/components/data_validation.py): `networksecurity/components/data_validation.py`
- [Data transformation](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/components/data_transformation.py): `networksecurity/components/data_transformation.py`
- [Model selection](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/components/model_trainer.py): `networksecurity/components/model_trainer.py`

### Model lifecycle

- [Immutable model registry](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/services/model_registry.py): `networksecurity/services/model_registry.py`
- [Schema registry](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/services/schema_registry.py): `networksecurity/services/schema_registry.py`

### Shared foundations

- [Training artifacts](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/entity/artifact_entity.py): `networksecurity/entity/artifact_entity.py`
- [Runtime settings](https://github.com/backendarchitectx/networksecurity/blob/main/networksecurity/config/runtime.py): `networksecurity/config/runtime.py`

### Other components

- **Prediction client**
- **Administrator**
- **Prometheus metrics**
- **MongoDB source**
- **S3 mirror**

## Connections

- Prediction client → HTTP API: submits predictions (evidence: `README.md`)
- Administrator → HTTP API: submits jobs (evidence: `README.md`)
- HTTP API → Request admission: admits requests (evidence: `networksecurity/api/app.py`)
- HTTP API → API contracts: uses contracts (evidence: `networksecurity/api/app.py`)
- HTTP API → Model runtime: requests inference (evidence: `networksecurity/api/app.py`)
- HTTP API → Training job store: submits and reads jobs (evidence: `networksecurity/api/app.py`)
- HTTP API → Prometheus metrics: exports metrics (evidence: `README.md`)
- Training job store → SQLite job database: persists jobs (evidence: `networksecurity/services/training_jobs.py`)
- Training worker → Training job store: claims and updates (evidence: `networksecurity/services/training_worker.py`)
- Training worker → Training orchestrator: runs training (evidence: `networksecurity/services/training_worker.py`)
- Training worker → Immutable model registry: checks fence (evidence: `networksecurity/services/training_worker.py`)
- MongoDB source → Data ingestion: provides records (evidence: `networksecurity/components/data_ingestion.py`)
- Training orchestrator → Data ingestion: starts ingestion (evidence: `networksecurity/pipeline/training_pipeline.py`)
- Training orchestrator → Data validation: starts validation (evidence: `networksecurity/pipeline/training_pipeline.py`)
- Training orchestrator → Data transformation: transforms data (evidence: `README.md`)
- Training orchestrator → Model selection: selects model (evidence: `README.md`)
- Training orchestrator → Immutable model registry: stages and promotes (evidence: `networksecurity/pipeline/training_pipeline.py`)
- Training orchestrator → Schema registry: loads schema (evidence: `networksecurity/pipeline/training_pipeline.py`)
- Training orchestrator → S3 mirror: mirrors after promotion (evidence: `networksecurity/pipeline/training_pipeline.py`)
- Model runtime → Immutable model registry: loads model bundles (evidence: `networksecurity/services/model_runtime.py`)
- Model runtime → Schema registry: checks compatibility (evidence: `networksecurity/services/model_runtime.py`)
- HTTP API → Runtime settings: configures service (evidence: `networksecurity/api/app.py`)
- Training worker → Runtime settings: configures worker (evidence: `networksecurity/services/training_worker.py`)
- Training orchestrator → Training artifacts: passes stage results (evidence: `networksecurity/pipeline/training_pipeline.py`)
