Apache Airflow code editor and file manager
Project description
Airflow Code Editor Plugin
A plugin for Apache Airflow that allows you to edit DAGs in browser. It provides a file managing interface within specified directories and it can be used to edit, upload, and download your files. If git support is enabled, the DAGs are stored in a Git repository. You may use it to view Git history, review local changes and commit.
System Requirements
- Airflow Versions
- 1.10.3 or newer
- git Versions (git is not required if git support is disabled)
- 2.0 or newer
Screenshots
Install Instructions
- Install the plugin
pip install airflow-code-editor
- (Optional) Install Black Python code formatter.
pip install black
-
Restart the Airflow Web Server
-
Open Admin - DAGs Code Editor
Config Options
You can edit your airflow.cfg adding any of the following settings in the [code_editor] section. All the settings are optional.
- git_enabled enable git support (default: True). If git is not installed, disable this option.
- git_cmd git command (path)
- git_default_args git arguments added to each call (default: -c color.ui=true)
- git_author_name human-readable name in the author/committer (default logged user first and last names)
- git_author_email email for the author/committer (default: logged user email)
- git_init_repo initialize a git repo in DAGs folder (default: True)
- root_directory root folder (default: Airflow DAGs folder)
- mount_name configure additional file folder name (mount point)
- mount_path configure additional file path
- line_length Python code formatter - max line length (default: 88)
- string_normalization Python code formatter - if true normalize string quotes and prefixes (default: False)
Example:
[code_editor]
git_enabled = True
git_cmd = /usr/bin/git
git_default_args = -c color.ui=true
git_init_repo = False
root_directory = /home/airflow/dags
line_length = 88
string_normalization = False
mount_name = data
mount_path = /home/airflow/data
mount1_name = logs
mount1_path = /home/airflow/logs
Development Instructions
-
Fork the repo
-
Clone it on the local machine
git clone https://github.com/andreax79/airflow-code-editor.git
cd airflow-code-editor
- Create and activate virtualenv
source ./scripts/activate.sh
- Make changes you need. You can start Airflow with this command:
./scripts/airflow.sh
- Run tests
./scripts/tests.sh
- Commit and push changes
git add .
git commit
git push
- Create pull request to the original repo
Links
- Apache Airflow - https://github.com/apache/airflow
- Codemirror, In-browser code editor - https://github.com/codemirror/codemirror
- Git WebUI, A standalone local web based user interface for git repositories - https://github.com/alberthier/git-webui
- Black, The Uncompromising Code Formatter - https://github.com/psf/black
- Vue.js - https://github.com/vuejs/vue
- Vue-Tree, Vue component that implements a TreeView control - https://github.com/grapoza/vue-tree
- Splitpanes - https://github.com/antoniandre/splitpanes
- Axios, Promise based HTTP client for the browser and node.js - https://github.com/axios/axios
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 airflow_code_editor-5.0.0.tar.gz
.
File metadata
- Download URL: airflow_code_editor-5.0.0.tar.gz
- Upload date:
- Size: 1.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.1 requests/2.25.1 setuptools/57.4.0 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.6.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca6eb11677cad6743be99857c41abfdab4495d544d0370003025b85494a7e33c |
|
MD5 | aec7fb15d4d53671dd17fd6c7ce973f8 |
|
BLAKE2b-256 | 4f3a8d2a395fdc00181f2f2d6786357322a381d90de66d460b8671c8501f51cd |
File details
Details for the file airflow_code_editor-5.0.0-py3-none-any.whl
.
File metadata
- Download URL: airflow_code_editor-5.0.0-py3-none-any.whl
- Upload date:
- Size: 1.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.1 requests/2.25.1 setuptools/57.4.0 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.6.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01c8d1b07e89434d2a0ad61dc83a4217229c847f0092226264fb919c5b396dc3 |
|
MD5 | d0ab5af3bcc49798fd329a33ade7b191 |
|
BLAKE2b-256 | dc825d188e6d56abcb7a2a938c1be22de253d99ce5be2e316c7e69083157d9d2 |