No project description provided
Project description
Windmill
Drag'n'drop web app to manage and create Airflow DAGs. The goal is to have a Web UI that can generate YML Dag Definitions, integrating with custom operators and potentially existing DAGs. YML DAGs can then be synced to a remote repo
- Front end is built using Typescript React
- Back end is built using Flask on Python 3.6+
MVP Required Features
Front-End Features
- Dynamic Operators
- Menu Dropdowns
- Load Operators from App
- Format operator display into classes
- Search functionality for operators
- Basic operator level properties
- Implement DAG level properties
- New DAG Functionality
- Parameter Tooltips
- Render arbitrary viewport windows for New/Save/Load etc
- Overwrite/Save prompt on New
- DAG renaming and save functionality
- Open dag from menu
- Check if file already exists on rename
- Prompt save if there are nodes on open
- Fix loss of state on refresh bug
- Icons
- Put File details in File Browser
- Pull PORT from Flask host
- Add a last saved time to NavBar
Back-End Features
- Generate Operator Lists
- CLI to start Web and Front End
- Generate DAG Spec
- CLI to create new windmill project
- CLI to start windmill from a windmill project
- Implement windmill-dev start
- Save/Load Windmill Files functionality
- Validate incoming WMLs (is there a need for this?)
- Get default values
- Pull parameters from parent classes
- [?] Dedupe multi import operators - nothing preventing this but underlying issue is fixed
- Get WML owner and last-modified details during wml list
- Allow custom operators
- Add defaults to CLI --help commands
- Strategy for Python Opjects (e.g. callables) - maybe import statement?
- Backport existing Python DAGs to WMLs
- Allow YML updates to propogate to WMLs
- Allow user specified Airflow Version - isolate to docker or something so we can run 2.7 if we want?
MVP Usage Pattern
To run as a user:
- Install with
pip install airflow-windmill
- Run
windmill init
to create a local Windmill project - Run
windmill run
from this folder to run the app locally
To run as a dev:
- Clone from git
- Run
poetry install
- ?Run
windmill-dev install-node-depts
- Run
windmill-dev start
to start a flask server and use parcel to serve frontend
Future Usage Patterns
- Auto-sync for windmill project to git
Getting Started
This package can be installed and run using Pip:
pip install windmill-airflow
Deployment
# Run NPM build
cd windmill/http/app/
npm run-script build
# Update git ...
cd ../../../
# Poetry build
poetry build
poetry publish
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file windmill-airflow-0.0.2.tar.gz
.
File metadata
- Download URL: windmill-airflow-0.0.2.tar.gz
- Upload date:
- Size: 1.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.0b1 CPython/3.6.9 Linux/4.4.0-18362-Microsoft
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3eda1c10d4022791235b30780843bb6468342c92ce374fc7530f4d677d89d200 |
|
MD5 | 5819d5d4810f7f83466d4581a89a9369 |
|
BLAKE2b-256 | 51ba1fefdd5f3d3be306bec01ccbe8fa963e097738f75efba87b7949d20657d6 |
File details
Details for the file windmill_airflow-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: windmill_airflow-0.0.2-py3-none-any.whl
- Upload date:
- Size: 1.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.0b1 CPython/3.6.9 Linux/4.4.0-18362-Microsoft
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d60e5d6b00a5bf2e3496707835f401468b6e22b0cedd76cc3604fe3a39405b2 |
|
MD5 | 19378566cd2e62419f54b6e5627c64ae |
|
BLAKE2b-256 | be8fcfc037c1332f6dd4faefd5a0a5d3cb2766fd0263797ae7d9ccececdfed2d |