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
windmill-airflow-0.0.2.tar.gz
(1.5 MB
view hashes)
Built Distribution
Close
Hashes for windmill_airflow-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d60e5d6b00a5bf2e3496707835f401468b6e22b0cedd76cc3604fe3a39405b2 |
|
MD5 | 19378566cd2e62419f54b6e5627c64ae |
|
BLAKE2b-256 | be8fcfc037c1332f6dd4faefd5a0a5d3cb2766fd0263797ae7d9ccececdfed2d |