# abdalluhalwrthan/nafat architecture

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

- Interactive diagram: https://gitdiagram.com/abdalluhalwrthan/nafat
- Repository: https://github.com/abdalluhalwrthan/nafat

## Overview

NAFAT is an interactive CLI for assessing network authentication feasibility. A user supplies targets and ports, selects a diagnostic or audit mode, and receives per-endpoint scan results and TXT/JSON reports. The workflow separates live probing, attack-space estimation, feasibility calculation, and report generation. The README documents these capabilities; source excerpts show their main call paths. The generated reports directory is documented but absent from the supplied tree.

Main entry points: [`NAFAT.py`](https://github.com/abdalluhalwrthan/nafat/blob/main/NAFAT.py) (CLI orchestration), [`config.py`](https://github.com/abdalluhalwrthan/nafat/blob/main/config.py) (Assessment settings), [`scanner.py`](https://github.com/abdalluhalwrthan/nafat/blob/main/scanner.py) (TCP probing), [`calculator.py`](https://github.com/abdalluhalwrthan/nafat/blob/main/calculator.py) (Space and feasibility)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["CLI workflow"]
  node_cli["CLI orchestration<br/>[NAFAT.py]"]
end

subgraph group_assessment["Assessment engine"]
  node_config["Assessment settings<br/>[config.py]"]
  node_scanner["TCP probing<br/>[scanner.py]"]
  node_calculator["Space and feasibility<br/>[calculator.py]"]
end

subgraph group_reporting["Reporting"]
  node_formatter["Report formatting<br/>[report.py]"]
  node_exporter["Report export<br/>[report.py]"]
  node_report_files["TXT and JSON reports"]
end

node_user(("Operator"))
node_target(("Target services"))
node_wordlist["Default wordlist<br/>[AnyWordList.txt]"]

node_user -->|"provides inputs"| node_cli
node_cli -->|"prompts and displays"| node_user
node_cli -->|"reads settings"| node_config
node_cli -->|"scans endpoints"| node_scanner
node_scanner -->|"reads probe settings"| node_config
node_scanner -->|"probes TCP"| node_target
node_scanner -->|"returns scan metrics"| node_cli
node_cli -->|"calculates audit"| node_calculator
node_calculator -->|"reads audit settings"| node_config
node_calculator -->|"counts entries"| node_wordlist
node_cli -->|"formats results"| node_formatter
node_formatter -->|"reads report settings"| node_config
node_cli -->|"saves reports"| node_exporter
node_exporter -->|"reads output path"| node_config
node_exporter -->|"writes files"| node_report_files

click node_cli "https://github.com/abdalluhalwrthan/nafat/blob/main/NAFAT.py"
click node_config "https://github.com/abdalluhalwrthan/nafat/blob/main/config.py"
click node_scanner "https://github.com/abdalluhalwrthan/nafat/blob/main/scanner.py"
click node_wordlist "https://github.com/abdalluhalwrthan/nafat/blob/main/wordlists/AnyWordList.txt"
click node_calculator "https://github.com/abdalluhalwrthan/nafat/blob/main/calculator.py"
click node_formatter "https://github.com/abdalluhalwrthan/nafat/blob/main/report.py"
click node_exporter "https://github.com/abdalluhalwrthan/nafat/blob/main/report.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_cli toneBlue
class node_config,node_scanner,node_calculator toneAmber
class node_formatter,node_exporter,node_report_files toneMint
class node_user,node_target toneIndigo
class node_wordlist toneTeal
```

## Components

### CLI workflow

- [CLI orchestration](https://github.com/abdalluhalwrthan/nafat/blob/main/NAFAT.py): `NAFAT.py`

### Assessment engine

- [Assessment settings](https://github.com/abdalluhalwrthan/nafat/blob/main/config.py): `config.py`
- [TCP probing](https://github.com/abdalluhalwrthan/nafat/blob/main/scanner.py): `scanner.py`
- [Space and feasibility](https://github.com/abdalluhalwrthan/nafat/blob/main/calculator.py): `calculator.py`

### Reporting

- [Report formatting](https://github.com/abdalluhalwrthan/nafat/blob/main/report.py): `report.py`
- [Report export](https://github.com/abdalluhalwrthan/nafat/blob/main/report.py): `report.py`
- **TXT and JSON reports**

### Other components

- **Operator**
- **Target services**
- [Default wordlist](https://github.com/abdalluhalwrthan/nafat/blob/main/wordlists/AnyWordList.txt): `wordlists/AnyWordList.txt`

## Connections

- Operator → CLI orchestration: provides inputs
- CLI orchestration → Operator: prompts and displays
- CLI orchestration → Assessment settings: reads settings
- CLI orchestration → TCP probing: scans endpoints
- TCP probing → Assessment settings: reads probe settings
- TCP probing → Target services: probes TCP
- TCP probing → CLI orchestration: returns scan metrics
- CLI orchestration → Space and feasibility: calculates audit
- Space and feasibility → Assessment settings: reads audit settings
- Space and feasibility → Default wordlist: counts entries
- CLI orchestration → Report formatting: formats results
- Report formatting → Assessment settings: reads report settings
- CLI orchestration → Report export: saves reports
- Report export → Assessment settings: reads output path
- Report export → TXT and JSON reports: writes files
