# mizcausevic-dev/skyforge architecture

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

- Interactive diagram: https://gitdiagram.com/mizcausevic-dev/skyforge
- Repository: https://github.com/mizcausevic-dev/skyforge

## Overview

SkyForge is a FastAPI airspace-governance control plane. Requests for fleet and event data flow through the API into service calculations over the sample airspace dataset; operator pages use the same service to present command, replay, incident, and API-summary views. The service computes vehicle risk and status, event provenance, and aggregate summaries. Source excerpts establish these calls and the file-backed data source; external integrations and live operational dispatch are not shown.

Main entry points: [`app/render.py`](https://github.com/mizcausevic-dev/skyforge/blob/main/app/render.py) (Page Rendering), [`app/main.py`](https://github.com/mizcausevic-dev/skyforge/blob/main/app/main.py) (FastAPI Routes), [`app/services/skyforge_service.py`](https://github.com/mizcausevic-dev/skyforge/blob/main/app/services/skyforge_service.py) (Summary & Sample), [`app/data/sample_airspace.json`](https://github.com/mizcausevic-dev/skyforge/blob/main/app/data/sample_airspace.json) (Sample Airspace)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API Runtime"]
  node_api_app["FastAPI Routes<br/>[main.py]"]
  node_api_results["API Responses<br/>[main.py]"]
end

subgraph group_governance["Governance Data"]
  node_risk_status["Risk &amp; Status"]
  node_event_provenance["Event Provenance"]
  node_summary_sample["Summary &amp; Sample"]
  node_airspace_data["Sample Airspace"]
end

subgraph group_surfaces["Operator Surfaces"]
  node_proof_render["Page Rendering<br/>[render.py]"]
  node_command_view["Airspace Command<br/>[render.py]"]
  node_replay_view["Event Replay<br/>[render.py]"]
  node_incident_view["Incident Board<br/>[render.py]"]
  node_api_summary_view["API Summary<br/>[render.py]"]
end

node_operator(("Operations User"))
node_consumer(("API Consumer"))

node_operator -->|"requests pages"| node_api_app
node_consumer -->|"requests data"| node_api_app
node_api_app -->|"renders pages"| node_proof_render
node_proof_render -->|"requests fleet data"| node_risk_status
node_proof_render -->|"requests event data"| node_event_provenance
node_proof_render -->|"requests summaries"| node_summary_sample
node_api_app -->|"requests vehicle data"| node_risk_status
node_api_app -->|"requests event data"| node_event_provenance
node_api_app -->|"requests summaries"| node_summary_sample
node_risk_status -->|"reads"| node_airspace_data
node_event_provenance -->|"reads"| node_airspace_data
node_summary_sample -->|"reads"| node_airspace_data
node_summary_sample -->|"calls vehicle calculation"| node_risk_status
node_summary_sample -->|"calls event calculation"| node_event_provenance
node_proof_render -->|"renders"| node_command_view
node_proof_render -->|"renders"| node_replay_view
node_proof_render -->|"renders"| node_incident_view
node_proof_render -->|"renders"| node_api_summary_view
node_api_app -->|"returns JSON"| node_api_results
node_api_results -->|"provides data"| node_consumer
node_command_view -->|"presents fleet state"| node_operator
node_replay_view -->|"presents event chains"| node_operator
node_incident_view -->|"presents risk states"| node_operator
node_api_summary_view -->|"presents sample payload"| node_operator

click node_api_app "https://github.com/mizcausevic-dev/skyforge/blob/main/app/main.py"
click node_proof_render "https://github.com/mizcausevic-dev/skyforge/blob/main/app/render.py"
click node_risk_status "https://github.com/mizcausevic-dev/skyforge/blob/main/app/services/skyforge_service.py"
click node_event_provenance "https://github.com/mizcausevic-dev/skyforge/blob/main/app/services/skyforge_service.py"
click node_summary_sample "https://github.com/mizcausevic-dev/skyforge/blob/main/app/services/skyforge_service.py"
click node_airspace_data "https://github.com/mizcausevic-dev/skyforge/blob/main/app/data/sample_airspace.json"
click node_command_view "https://github.com/mizcausevic-dev/skyforge/blob/main/app/render.py"
click node_replay_view "https://github.com/mizcausevic-dev/skyforge/blob/main/app/render.py"
click node_incident_view "https://github.com/mizcausevic-dev/skyforge/blob/main/app/render.py"
click node_api_summary_view "https://github.com/mizcausevic-dev/skyforge/blob/main/app/render.py"
click node_api_results "https://github.com/mizcausevic-dev/skyforge/blob/main/app/main.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_app,node_api_results,node_operator toneBlue
class node_risk_status,node_event_provenance,node_summary_sample,node_airspace_data toneAmber
class node_proof_render,node_command_view,node_replay_view,node_incident_view,node_api_summary_view,node_consumer toneMint
```

## Components

### API Runtime

- [FastAPI Routes](https://github.com/mizcausevic-dev/skyforge/blob/main/app/main.py): `app/main.py`
- [API Responses](https://github.com/mizcausevic-dev/skyforge/blob/main/app/main.py): `app/main.py`

### Governance Data

- [Risk & Status](https://github.com/mizcausevic-dev/skyforge/blob/main/app/services/skyforge_service.py): `app/services/skyforge_service.py`
- [Event Provenance](https://github.com/mizcausevic-dev/skyforge/blob/main/app/services/skyforge_service.py): `app/services/skyforge_service.py`
- [Summary & Sample](https://github.com/mizcausevic-dev/skyforge/blob/main/app/services/skyforge_service.py): `app/services/skyforge_service.py`
- [Sample Airspace](https://github.com/mizcausevic-dev/skyforge/blob/main/app/data/sample_airspace.json): `app/data/sample_airspace.json`

### Operator Surfaces

- [Page Rendering](https://github.com/mizcausevic-dev/skyforge/blob/main/app/render.py): `app/render.py`
- [Airspace Command](https://github.com/mizcausevic-dev/skyforge/blob/main/app/render.py): `app/render.py`
- [Event Replay](https://github.com/mizcausevic-dev/skyforge/blob/main/app/render.py): `app/render.py`
- [Incident Board](https://github.com/mizcausevic-dev/skyforge/blob/main/app/render.py): `app/render.py`
- [API Summary](https://github.com/mizcausevic-dev/skyforge/blob/main/app/render.py): `app/render.py`

### Other components

- **Operations User**
- **API Consumer**

## Connections

- Operations User → FastAPI Routes: requests pages
- API Consumer → FastAPI Routes: requests data
- FastAPI Routes → Page Rendering: renders pages
- Page Rendering → Risk & Status: requests fleet data
- Page Rendering → Event Provenance: requests event data
- Page Rendering → Summary & Sample: requests summaries
- FastAPI Routes → Risk & Status: requests vehicle data
- FastAPI Routes → Event Provenance: requests event data
- FastAPI Routes → Summary & Sample: requests summaries
- Risk & Status → Sample Airspace: reads
- Event Provenance → Sample Airspace: reads
- Summary & Sample → Sample Airspace: reads
- Summary & Sample → Risk & Status: calls vehicle calculation
- Summary & Sample → Event Provenance: calls event calculation
- Page Rendering → Airspace Command: renders
- Page Rendering → Event Replay: renders
- Page Rendering → Incident Board: renders
- Page Rendering → API Summary: renders
- FastAPI Routes → API Responses: returns JSON
- API Responses → API Consumer: provides data
- Airspace Command → Operations User: presents fleet state
- Event Replay → Operations User: presents event chains
- Incident Board → Operations User: presents risk states
- API Summary → Operations User: presents sample payload
