# r-s0n/ars0n-framework architecture

> Architecture diagram of the GitHub repository r-s0n/ars0n-framework, 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/r-s0n/ars0n-framework
- Repository: https://github.com/r-s0n/ars0n-framework

## Overview

Ars0n Framework is a bug-bounty reconnaissance and application/cloud security testing framework, paired with a web UI for managing targets and reviewing findings. The documented Wildfire workflow starts from GUI-selected root domains, prioritizes older scan data, then runs chosen submodules; the GUI also manages FQDN records through an API backed by MongoDB. The toolkit service launches Wildfire and exposes scan status. The tree and excerpts support these boundaries, but do not show the internal call graph among most toolkit modules, so those links are omitted.

Main entry points: [`client/src/App.js`](https://github.com/r-s0n/ars0n-framework/blob/main/client/src/App.js) (Web application), [`server/controllers/Controller.js`](https://github.com/r-s0n/ars0n-framework/blob/main/server/controllers/Controller.js) (Request controller), [`toolkit/wildfire.py`](https://github.com/r-s0n/ars0n-framework/blob/main/toolkit/wildfire.py) (Wildfire runner), [`client/src/Views/Fqdn.js`](https://github.com/r-s0n/ars0n-framework/blob/main/client/src/Views/Fqdn.js) (Target view)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Target management UI"]
  node_webapp["Web application<br/>[App.js]"]
  node_targetview["Target view<br/>[Fqdn.js]"]
  node_dashboard["Findings dashboard<br/>[Dashboard.js]"]
  node_reconui["Recon interface<br/>[Recon.js]"]
  node_enumui["Enumeration interface<br/>[Enumeration.js]"]
  node_cveui["CVE testing interface<br/>[CveTesting.js]"]
end

subgraph group_api["Data API"]
  node_express["Express server<br/>[server.js]"]
  node_routes["API routes<br/>[Routes.js]"]
  node_controller["Request controller<br/>[Controller.js]"]
  node_fqdnstore[("FQDN records<br/>[fqdn.model.js]")]
  node_urlstore[("URL records<br/>[url.model.js]")]
  node_cvestore[("CVE records<br/>[cve.model.js]")]
  node_logstore[("Scan logs<br/>[log.model.js]")]
end

subgraph group_orchestration["Scan orchestration"]
  node_toolservice["Toolkit service<br/>[toolkit-service.py]"]
  node_wildfire["Wildfire runner<br/>[wildfire.py]"]
  node_scanstate["Scan status<br/>[toolkit-service.py]"]
end

subgraph group_recon["Reconnaissance"]
  node_reconmods["Domain discovery"]
  node_cloudmods["Cloud discovery"]
  node_consolidator["Result consolidation<br/>[clear_sky.py]"]
end

subgraph group_testing["Security testing"]
  node_nucleimods["Nuclei scan modules"]
  node_manualtests["Web test modules"]
end

node_researcher(("Researcher"))
node_burp["Burp Suite API"]

node_researcher -->|"manages targets"| node_webapp
node_webapp -->|"selects target"| node_targetview
node_webapp -->|"requests records"| node_express
node_express -->|"dispatches"| node_routes
node_routes -->|"invokes handlers"| node_controller
node_controller -->|"reads/writes"| node_fqdnstore
node_controller -->|"reads/writes"| node_urlstore
node_controller -->|"reads/writes"| node_cvestore
node_controller -->|"reads/writes"| node_logstore
node_webapp -->|"starts Wildfire"| node_toolservice
node_toolservice -->|"runs script"| node_wildfire
node_toolservice -->|"updates status"| node_scanstate
node_webapp -->|"polls status"| node_toolservice
node_wildfire -.->|"runs selected modules"| node_reconmods
node_wildfire -.->|"runs selected modules"| node_cloudmods
node_webapp -->|"displays findings"| node_targetview
node_targetview -->|"shows summary"| node_dashboard
node_targetview -->|"opens recon"| node_reconui
node_targetview -->|"opens enumeration"| node_enumui
node_targetview -->|"opens CVE testing"| node_cveui
node_controller -.->|"starts scans"| node_burp
node_wildfire -.-> node_consolidator
node_wildfire -.-> node_nucleimods
node_wildfire -.-> node_manualtests

click node_webapp "https://github.com/r-s0n/ars0n-framework/blob/main/client/src/App.js"
click node_targetview "https://github.com/r-s0n/ars0n-framework/blob/main/client/src/Views/Fqdn.js"
click node_dashboard "https://github.com/r-s0n/ars0n-framework/blob/main/client/src/Components/Dashboard.js"
click node_reconui "https://github.com/r-s0n/ars0n-framework/blob/main/client/src/Components/Recon.js"
click node_enumui "https://github.com/r-s0n/ars0n-framework/blob/main/client/src/Components/Enumeration.js"
click node_cveui "https://github.com/r-s0n/ars0n-framework/blob/main/client/src/Components/CveTesting.js"
click node_express "https://github.com/r-s0n/ars0n-framework/blob/main/server/server.js"
click node_routes "https://github.com/r-s0n/ars0n-framework/blob/main/server/routes/Routes.js"
click node_controller "https://github.com/r-s0n/ars0n-framework/blob/main/server/controllers/Controller.js"
click node_fqdnstore "https://github.com/r-s0n/ars0n-framework/blob/main/server/models/fqdn.model.js"
click node_urlstore "https://github.com/r-s0n/ars0n-framework/blob/main/server/models/url.model.js"
click node_cvestore "https://github.com/r-s0n/ars0n-framework/blob/main/server/models/cve.model.js"
click node_logstore "https://github.com/r-s0n/ars0n-framework/blob/main/server/models/log.model.js"
click node_toolservice "https://github.com/r-s0n/ars0n-framework/blob/main/toolkit/toolkit-service.py"
click node_wildfire "https://github.com/r-s0n/ars0n-framework/blob/main/toolkit/wildfire.py"
click node_scanstate "https://github.com/r-s0n/ars0n-framework/blob/main/toolkit/toolkit-service.py"
click node_reconmods "https://github.com/r-s0n/ars0n-framework/tree/main/toolkit/toolkit"
click node_cloudmods "https://github.com/r-s0n/ars0n-framework/tree/main/toolkit/toolkit"
click node_consolidator "https://github.com/r-s0n/ars0n-framework/blob/main/toolkit/toolkit/clear_sky.py"
click node_nucleimods "https://github.com/r-s0n/ars0n-framework/tree/main/toolkit/toolkit"
click node_manualtests "https://github.com/r-s0n/ars0n-framework/tree/main/client/src/Components/SubComponents"

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_webapp,node_targetview,node_dashboard,node_reconui,node_enumui,node_cveui toneBlue
class node_express,node_routes,node_controller,node_fqdnstore,node_urlstore,node_cvestore,node_logstore toneAmber
class node_toolservice,node_wildfire,node_scanstate,node_burp toneMint
class node_reconmods,node_cloudmods,node_consolidator toneRose
class node_nucleimods,node_manualtests,node_researcher toneIndigo
```

## Components

### Target management UI

- [Web application](https://github.com/r-s0n/ars0n-framework/blob/main/client/src/App.js): `client/src/App.js`
- [Target view](https://github.com/r-s0n/ars0n-framework/blob/main/client/src/Views/Fqdn.js): `client/src/Views/Fqdn.js`
- [Findings dashboard](https://github.com/r-s0n/ars0n-framework/blob/main/client/src/Components/Dashboard.js): `client/src/Components/Dashboard.js`
- [Recon interface](https://github.com/r-s0n/ars0n-framework/blob/main/client/src/Components/Recon.js): `client/src/Components/Recon.js`
- [Enumeration interface](https://github.com/r-s0n/ars0n-framework/blob/main/client/src/Components/Enumeration.js): `client/src/Components/Enumeration.js`
- [CVE testing interface](https://github.com/r-s0n/ars0n-framework/blob/main/client/src/Components/CveTesting.js): `client/src/Components/CveTesting.js`

### Data API

- [Express server](https://github.com/r-s0n/ars0n-framework/blob/main/server/server.js): `server/server.js`
- [API routes](https://github.com/r-s0n/ars0n-framework/blob/main/server/routes/Routes.js): `server/routes/Routes.js`
- [Request controller](https://github.com/r-s0n/ars0n-framework/blob/main/server/controllers/Controller.js): `server/controllers/Controller.js`
- [FQDN records](https://github.com/r-s0n/ars0n-framework/blob/main/server/models/fqdn.model.js): `server/models/fqdn.model.js`
- [URL records](https://github.com/r-s0n/ars0n-framework/blob/main/server/models/url.model.js): `server/models/url.model.js`
- [CVE records](https://github.com/r-s0n/ars0n-framework/blob/main/server/models/cve.model.js): `server/models/cve.model.js`
- [Scan logs](https://github.com/r-s0n/ars0n-framework/blob/main/server/models/log.model.js): `server/models/log.model.js`

### Scan orchestration

- [Toolkit service](https://github.com/r-s0n/ars0n-framework/blob/main/toolkit/toolkit-service.py): `toolkit/toolkit-service.py`
- [Wildfire runner](https://github.com/r-s0n/ars0n-framework/blob/main/toolkit/wildfire.py): `toolkit/wildfire.py`
- [Scan status](https://github.com/r-s0n/ars0n-framework/blob/main/toolkit/toolkit-service.py): `toolkit/toolkit-service.py`

### Reconnaissance

- [Domain discovery](https://github.com/r-s0n/ars0n-framework/tree/main/toolkit/toolkit): `toolkit/toolkit`
- [Cloud discovery](https://github.com/r-s0n/ars0n-framework/tree/main/toolkit/toolkit): `toolkit/toolkit`
- [Result consolidation](https://github.com/r-s0n/ars0n-framework/blob/main/toolkit/toolkit/clear_sky.py): `toolkit/toolkit/clear_sky.py`

### Security testing

- [Nuclei scan modules](https://github.com/r-s0n/ars0n-framework/tree/main/toolkit/toolkit): `toolkit/toolkit`
- [Web test modules](https://github.com/r-s0n/ars0n-framework/tree/main/client/src/Components/SubComponents): `client/src/Components/SubComponents`

### Other components

- **Researcher**
- **Burp Suite API**

## Connections

- Researcher → Web application: manages targets
- Web application → Target view: selects target
- Web application → Express server: requests records
- Express server → API routes: dispatches
- API routes → Request controller: invokes handlers
- Request controller → FQDN records: reads/writes
- Request controller → URL records: reads/writes
- Request controller → CVE records: reads/writes
- Request controller → Scan logs: reads/writes
- Web application → Toolkit service: starts Wildfire
- Toolkit service → Wildfire runner: runs script
- Toolkit service → Scan status: updates status
- Web application → Toolkit service: polls status
- Wildfire runner → Domain discovery: runs selected modules
- Wildfire runner → Cloud discovery: runs selected modules
- Web application → Target view: displays findings
- Target view → Findings dashboard: shows summary
- Target view → Recon interface: opens recon
- Target view → Enumeration interface: opens enumeration
- Target view → CVE testing interface: opens CVE testing
- Request controller → Burp Suite API: starts scans
- Wildfire runner → Result consolidation
- Wildfire runner → Nuclei scan modules
- Wildfire runner → Web test modules
