# allu555/enterprise-security-scanner architecture

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

- Interactive diagram: https://gitdiagram.com/allu555/enterprise-security-scanner
- Repository: https://github.com/allu555/enterprise-security-scanner

## Overview

Enterprise Security Scanner Pro is a Streamlit web-application security scanner. Users authenticate, submit a target for scanning, review findings, and access saved scan history and reports; administrators manage users and system settings. The README documents crawling, web vulnerability checks, reconnaissance, AI assistance, dashboards, and exports. Several capabilities are described in the README but their implementation and wiring are not fully visible in the sampled source, so those links are limited to documented relationships.

Main entry points: [`security_scanner_integrated.py`](https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py) (Scan runtime), [`database.py`](https://github.com/allu555/enterprise-security-scanner/blob/main/database.py) (Database operations), [`admin.py`](https://github.com/allu555/enterprise-security-scanner/blob/main/admin.py) (Admin dashboard), [`auth.py`](https://github.com/allu555/enterprise-security-scanner/blob/main/auth.py) (Authentication and authorization)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Scanner workflow"]
  node_streamlit_app["Streamlit application"]
  node_scan_runtime["Scan runtime"]
end

subgraph group_security["Security analysis"]
  node_crawler["Web crawler"]
  node_web_checks["Web vulnerability checks"]
  node_header_tls["Headers and TLS"]
  node_recon["Network reconnaissance"]
  node_nuclei["Nuclei integration"]
  node_ollama["AI assistant"]
end

subgraph group_identity["Identity and administration"]
  node_auth["Authentication and authorization<br/>[auth.py]"]
  node_admin_ui["Admin dashboard<br/>[admin.py]"]
  node_db_access["Database operations<br/>[database.py]"]
  node_sqlite[("SQLite database")]
end

subgraph group_insights["Results and insights"]
  node_history["Scan history<br/>[database.py]"]
  node_reporting["Dashboards and exports"]
end

node_user(("Scanner user"))
node_admin_actor(("Administrator"))
node_target_app(("Target web application"))
node_ollama_service(("Ollama service"))

node_user -->|"uses"| node_streamlit_app
node_admin_actor -->|"manages"| node_admin_ui
node_streamlit_app -->|"checks access"| node_auth
node_streamlit_app -->|"starts scans"| node_scan_runtime
node_scan_runtime -->|"discovers URLs"| node_crawler
node_scan_runtime -->|"tests vulnerabilities"| node_web_checks
node_scan_runtime -->|"checks configuration"| node_header_tls
node_scan_runtime -->|"enumerates network"| node_recon
node_scan_runtime -.->|"runs templates"| node_nuclei
node_crawler -->|"requests pages"| node_target_app
node_web_checks -->|"sends test requests"| node_target_app
node_header_tls -->|"inspects responses"| node_target_app
node_recon -->|"probes services"| node_target_app
node_nuclei -.->|"scans target"| node_target_app
node_ollama -.->|"requests analysis"| node_ollama_service
node_admin_ui -->|"checks role"| node_auth
node_auth -->|"reads and updates users"| node_db_access
node_admin_ui -->|"manages records"| node_db_access
node_streamlit_app -->|"initializes database"| node_db_access
node_db_access -->|"reads and writes"| node_sqlite
node_scan_runtime -->|"records scans"| node_history
node_history -->|"uses storage"| node_db_access
node_reporting -->|"loads scan records"| node_history
node_scan_runtime -->|"presents results"| node_reporting

click node_streamlit_app "https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py"
click node_scan_runtime "https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py"
click node_crawler "https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py"
click node_web_checks "https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py"
click node_header_tls "https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py"
click node_recon "https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py"
click node_nuclei "https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py"
click node_ollama "https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py"
click node_auth "https://github.com/allu555/enterprise-security-scanner/blob/main/auth.py"
click node_admin_ui "https://github.com/allu555/enterprise-security-scanner/blob/main/admin.py"
click node_db_access "https://github.com/allu555/enterprise-security-scanner/blob/main/database.py"
click node_history "https://github.com/allu555/enterprise-security-scanner/blob/main/database.py"
click node_reporting "https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.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_streamlit_app,node_scan_runtime,node_user toneBlue
class node_crawler,node_web_checks,node_header_tls,node_recon,node_nuclei,node_ollama toneAmber
class node_auth,node_admin_ui,node_db_access,node_sqlite toneMint
class node_history,node_reporting toneRose
class node_admin_actor,node_target_app,node_ollama_service toneIndigo
```

## Components

### Scanner workflow

- [Streamlit application](https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py): `security_scanner_integrated.py`
- [Scan runtime](https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py): `security_scanner_integrated.py`

### Security analysis

- [Web crawler](https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py): `security_scanner_integrated.py`
- [Web vulnerability checks](https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py): `security_scanner_integrated.py`
- [Headers and TLS](https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py): `security_scanner_integrated.py`
- [Network reconnaissance](https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py): `security_scanner_integrated.py`
- [Nuclei integration](https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py): `security_scanner_integrated.py`
- [AI assistant](https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py): `security_scanner_integrated.py`

### Identity and administration

- [Authentication and authorization](https://github.com/allu555/enterprise-security-scanner/blob/main/auth.py): `auth.py`
- [Admin dashboard](https://github.com/allu555/enterprise-security-scanner/blob/main/admin.py): `admin.py`
- [Database operations](https://github.com/allu555/enterprise-security-scanner/blob/main/database.py): `database.py`
- **SQLite database**

### Results and insights

- [Scan history](https://github.com/allu555/enterprise-security-scanner/blob/main/database.py): `database.py`
- [Dashboards and exports](https://github.com/allu555/enterprise-security-scanner/blob/main/security_scanner_integrated.py): `security_scanner_integrated.py`

### Other components

- **Scanner user**
- **Administrator**
- **Target web application**
- **Ollama service**

## Connections

- Scanner user → Streamlit application: uses
- Administrator → Admin dashboard: manages
- Streamlit application → Authentication and authorization: checks access
- Streamlit application → Scan runtime: starts scans
- Scan runtime → Web crawler: discovers URLs
- Scan runtime → Web vulnerability checks: tests vulnerabilities
- Scan runtime → Headers and TLS: checks configuration
- Scan runtime → Network reconnaissance: enumerates network
- Scan runtime → Nuclei integration: runs templates
- Web crawler → Target web application: requests pages
- Web vulnerability checks → Target web application: sends test requests
- Headers and TLS → Target web application: inspects responses
- Network reconnaissance → Target web application: probes services
- Nuclei integration → Target web application: scans target
- AI assistant → Ollama service: requests analysis
- Admin dashboard → Authentication and authorization: checks role
- Authentication and authorization → Database operations: reads and updates users
- Admin dashboard → Database operations: manages records
- Streamlit application → Database operations: initializes database
- Database operations → SQLite database: reads and writes
- Scan runtime → Scan history: records scans
- Scan history → Database operations: uses storage
- Dashboards and exports → Scan history: loads scan records
- Scan runtime → Dashboards and exports: presents results
