Skip to main content

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.

Build Status PyPI version PyPI Downloads Code style: black

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

File Manager

File Manager

Editor

Editor

Git History

Git History - Tags

Git Workspace

Git Workspace

Install Instructions

  1. Install the plugin
  pip install airflow-code-editor
  1. Install optional dependencies
  1. Restart the Airflow Web Server

  2. Open Admin - DAGs Code Editor

Config Options

You can set options editing the Airflow's configuration file or setting environment variables. You can edit your airflow.cfg adding any of the following settings in the [code_editor] section. All the settings are optional.

  • enabled enable this plugin (default: True).
  • 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)
  • line_length Python code formatter - max line length (default: 88)
  • string_normalization Python code formatter - if true normalize string quotes and prefixes (default: False)
  • mount, mount1, ... configure additional folder (mount point) - format: name=xxx,path=yyy
  • ignored_entries comma-separated list of entries to be excluded from file/directory list (default: .*,__pycache__)
   [code_editor]
   enabled = True
   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,path=/home/airflow/data
   mount1 = name=logs,path=/home/airflow/logs
   mount2 = name=data,path=s3://example

Mount Options:

Example:

You can also set options with the following environment variables:

  • AIRFLOW__CODE_EDITOR__ENABLED
  • AIRFLOW__CODE_EDITOR__GIT_ENABLED
  • AIRFLOW__CODE_EDITOR__GIT_CMD
  • AIRFLOW__CODE_EDITOR__GIT_DEFAULT_ARGS
  • AIRFLOW__CODE_EDITOR__GIT_AUTHOR_NAME
  • AIRFLOW__CODE_EDITOR__GIT_AUTHOR_EMAIL
  • AIRFLOW__CODE_EDITOR__GIT_INIT_REPO
  • AIRFLOW__CODE_EDITOR__ROOT_DIRECTORY
  • AIRFLOW__CODE_EDITOR__LINE_LENGTH
  • AIRFLOW__CODE_EDITOR__STRING_NORMALIZATION
  • AIRFLOW__CODE_EDITOR__MOUNT, AIRFLOW__CODE_EDITOR__MOUNT1, AIRFLOW__CODE_EDITOR__MOUNT2, ...
  • AIRFLOW__CODE_EDITOR__IGNORED_ENTRIES

Example:

   export AIRFLOW__CODE_EDITOR__STRING_NORMALIZATION=True
   export AIRFLOW__CODE_EDITOR__MOUNT='name=data,path=/home/airflow/data'
   export AIRFLOW__CODE_EDITOR__MOUNT1='name=logs,path=/home/airflow/logs'
   export AIRFLOW__CODE_EDITOR__MOUNT2='name=tmp,path=/tmp'

Development Instructions

  1. Fork the repo

  2. Clone it on the local machine

  git clone https://github.com/andreax79/airflow-code-editor.git
  cd airflow-code-editor
  1. Create and activate virtualenv
  source ./scripts/activate.sh
  1. Switch node version
  nvm use
  1. Make changes you need. Build npm package with:
  make npm-build
  1. You can start Airflow webserver or scheduler with these commands:
  make standalone
  1. Run tests
  make test
  1. Commit and push changes
  git add .
  git commit
  git push
  1. Create pull request to the original repo

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

airflow_code_editor-7.2.0.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

airflow_code_editor-7.2.0-py2.py3-none-any.whl (1.8 MB view details)

Uploaded Python 2 Python 3

File details

Details for the file airflow_code_editor-7.2.0.tar.gz.

File metadata

  • Download URL: airflow_code_editor-7.2.0.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for airflow_code_editor-7.2.0.tar.gz
Algorithm Hash digest
SHA256 215f3f53ed3ee46c892413438031e04b364100bdf69bed10fddea6ac008e6cc2
MD5 151dbc1dae66e6645b9ec6d62ed08dfc
BLAKE2b-256 32a30463969d7a674921c8e213babab4d7e886686e3f5a2ec29ad6edcceb7a02

See more details on using hashes here.

File details

Details for the file airflow_code_editor-7.2.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for airflow_code_editor-7.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e90bdb5fce84afaf1fea6b342e1d6c70be6f0cb626f5cc26e32d210fcbc2748a
MD5 5f6cb5400c0919cac4d9ce776020277c
BLAKE2b-256 804dcd0a53a4e67297fe52dc26a76e9da870055836a2c11ddcf0f79f8c2620b1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page