Skip to content

Westfall-io/windstorm-dwarven

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

114 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Windstorm Dwarven

Windstorm Dwarven is the backend API service for the Windstorm platform.

It provides a FastAPI-based REST interface that exposes Windstorm data and analysis artifacts to the user interface and other platform components.

Windstorm Dwarven does not directly orchestrate workflows. Instead, it serves as the system interface for data produced by the event-driven Windstorm workflow infrastructure.

Windstorm is part of the broader DigitalForge digital engineering ecosystem.


Overview

Windstorm Dwarven provides a backend service responsible for:

  • Serving data generated by automated engineering workflows
  • Providing API access for the Windstorm user interface
  • Managing interactions with the Windstorm database
  • Exposing analysis results and artifact metadata
  • Supporting digital engineering traceability workflows

Architecture

+----------------------+
|  GitHub / Gitea      |
+----------+-----------+
           |
           | Webhooks
           v
+----------------------+
| Argo Events / Sensors|
+----------+-----------+
           |
           | Triggers
           v
+----------------------+
|   Argo Workflows     |
+----------+-----------+
           |
           | Stores Results
           v
+----------------------+
|      PostgreSQL      |
+----------+-----------+
           |
           | API Queries
           v
+----------------------+
|  Windstorm Dwarven   |
|      FastAPI         |
+----------+-----------+
           |
           v
+----------------------+
|   Windstorm Trade    |
|      Vue UI          |
+----------------------+

Technology Stack

Component Technology


Backend Framework FastAPI Language Python API Documentation OpenAPI / Swagger Database PostgreSQL Containerization Docker Workflow Integration Argo Workflows


Development

Prerequisites

  • Python 3.10+
  • pip
  • virtualenv
  • Docker (optional)

Setup Virtual Environment

python -m venv venv
source venv/bin/activate

Install dependencies:

pip install -r requirements.txt

Run Development Server

uvicorn app.main:app --reload

Server:

http://localhost:8000


API Documentation

Swagger UI:

http://localhost:8000/docs

OpenAPI schema:

http://localhost:8000/openapi.json


Database

Example configuration:

DATABASE_URL=postgresql://user:password@postgres:5432/windstorm


Docker

Build container:

docker build -t windstorm-dwarven .

Run locally:

docker run -p 8000:8000 windstorm-dwarven

Relationship to Other Windstorm Components

Component Purpose


windstorm-trade User interface windstorm-dwarven Backend API windstorm-mage Webhook aggregation windspear / windsage Event ingestion windrunner Workflow dispatch windtrader SysML validation tooling


License

Licensed under AGPL-3.0.

About

Windstorm Backend API

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors