All Projects → teamclairvoyant → airflow-user-management-plugin

teamclairvoyant / airflow-user-management-plugin

Licence: Apache-2.0 License
A plugin for Apache Airflow that allows you to manage the users that can login

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to airflow-user-management-plugin

airflow-code-editor
A plugin for Apache Airflow that allows you to edit DAGs in browser
Stars: ✭ 195 (+1400%)
Mutual labels:  airflow, airflow-plugin, apache-airflow
pandora-plugin
Plugin offering views, operators, sensors, and more developed at Pandora Media.
Stars: ✭ 25 (+92.31%)
Mutual labels:  airflow-plugin, apache-airflow
fairflow
Functional Airflow DAG definitions.
Stars: ✭ 38 (+192.31%)
Mutual labels:  airflow, apache-airflow
airflow-boilerplate
A complete development environment setup for working with Airflow
Stars: ✭ 94 (+623.08%)
Mutual labels:  airflow, apache-airflow
Awesome Apache Airflow
Curated list of resources about Apache Airflow
Stars: ✭ 2,755 (+21092.31%)
Mutual labels:  airflow, apache-airflow
kedro-airflow
Kedro-Airflow makes it easy to deploy Kedro projects to Airflow.
Stars: ✭ 121 (+830.77%)
Mutual labels:  airflow, airflow-plugin
kirby-membership
Simple Membership plugin for Kirby CMS
Stars: ✭ 27 (+107.69%)
Mutual labels:  users, user-management
Appy Backend
A user system to bootstrap your app.
Stars: ✭ 96 (+638.46%)
Mutual labels:  users, user-management
browser-acl
Simple acceess control (ACL) library for the browser inspired by Laravel's guards and policies.
Stars: ✭ 36 (+176.92%)
Mutual labels:  users, user-management
airflow multi dagrun
triggering a DAG run multiple times
Stars: ✭ 74 (+469.23%)
Mutual labels:  airflow, airflow-plugin
openverse-catalog
Identifies and collects data on cc-licensed content across web crawl data and public apis.
Stars: ✭ 27 (+107.69%)
Mutual labels:  airflow, apache-airflow
Airflow
Apache Airflow - A platform to programmatically author, schedule, and monitor workflows
Stars: ✭ 24,101 (+185292.31%)
Mutual labels:  airflow, apache-airflow
Laravel Auth
Laravel 8 with user authentication, registration with email confirmation, social media authentication, password recovery, and captcha protection. Uses offical [Bootstrap 4](http://getbootstrap.com). This also makes full use of Controllers for the routes, templates for the views, and makes use of middleware for routing. The project can be stood u…
Stars: ✭ 2,692 (+20607.69%)
Mutual labels:  users, user-management
django-user-management
User management model mixins and api views.
Stars: ✭ 56 (+330.77%)
Mutual labels:  users, user-management
Userfrosting
🍩 Modern PHP user login and management framework++.
Stars: ✭ 1,547 (+11800%)
Mutual labels:  users, user-management
airflow-client-python
Apache Airflow - OpenApi Client for Python
Stars: ✭ 172 (+1223.08%)
Mutual labels:  airflow, apache-airflow
Kratos
Next-gen identity server (think Auth0, Okta, Firebase) with Ory-hardened authentication, MFA, FIDO2, profile management, identity schemas, social sign in, registration, account recovery, and IoT auth. Golang, headless, API-only - without templating or theming headaches.
Stars: ✭ 4,684 (+35930.77%)
Mutual labels:  users, user-management
dbt-cloud-plugin
DBT Cloud Plugin for Airflow
Stars: ✭ 35 (+169.23%)
Mutual labels:  airflow, airflow-plugin
viewflow
Viewflow is an Airflow-based framework that allows data scientists to create data models without writing Airflow code.
Stars: ✭ 110 (+746.15%)
Mutual labels:  airflow, apache-airflow
airflow-prometheus-exporter
Export Airflow metrics (from mysql) in prometheus format
Stars: ✭ 25 (+92.31%)
Mutual labels:  airflow, apache-airflow

airflow-user-management-plugin

Description

A plugin to Apache Airflow (Documentation: https://airflow.apache.org/, Source Code: https://github.com/apache/airflow) to provide an interface where you can add a PasswordUser to Airflow and manage

RBAC Support

If you are using the Airflow versions 1.10.x and higher then this plugin is useful only when RBAC feature is disabled. You can check the rbac setting in airflow.cfg config file under webserver category. When RBAC feature is enabled you can manage users directly from the Security menu provided by Airflow UI.

Note: Once you enable the RBAC support, it will create new set of Database Tables. So, you need to manually migrate your existing users from users table to the new table ab_users. While migrating you need to specify the role for each user. Please check Create User for more details.

How do Deploy

  1. Copy the user_management_plugin.py file into the Airflow Plugins directory

    • The Airflow Plugins Directory is defined in the airflow.cfg file as the variable "plugins_folder"

    • The Airflow Plugins Directory is, by default, ${AIRFLOW_HOME}/plugins

    • You may have to create the Airflow Plugins Directory folder as it is not created by default

    • quick way of doing this:

        $ cd {AIRFLOW_PLUGINS_FOLDER}
        $ wget https://raw.githubusercontent.com/teamclairvoyant/airflow-user-management-plugin/master/plugins/user_management_plugin.py
  2. Restart the Airflow Services

  3. Your done!

How to Use

Once you've restarted the Web Application, you should now see a new Tab: Admin -> User Management. From here, you can create new users and update or delete existing ones.

Configuration

Note: superuser flag in the create/edit user form will be effective only from version >= 2.0

####Known issues

  • Issue: When you run the plugin with SQLAlchemy versions >= 1.2.x on Airflow versions < 1.10.x then you might run into the following AttributeError issue

      [2019-03-19 11:07:52,979] {user_management_plugin.py:71} INFO - UserManagementModelView.create_model(form=<flask_admin.contrib.sqla.form.PasswordUserForm object at 0x7fbf3362af90>)
      [2019-03-19 11:07:52,979] {user_management_plugin.py:82} ERROR - Failed to create record.
      Traceback (most recent call last):
       File "/home/dillip/airflow/plugins/user_management_plugin.py", line 75, in create_model
         form.populate_obj(model)
       File "/home/dillip/.local/lib/python2.7/site-packages/wtforms/form.py", line 96, in populate_obj
         field.populate_obj(obj, name)
       File "/home/dillip/.local/lib/python2.7/site-packages/wtforms/fields/core.py", line 330, in populate_obj
         setattr(obj, name, self.data)
       File "/home/dillip/.local/lib/python2.7/site-packages/sqlalchemy/ext/hybrid.py", line 899, in __set__
         raise AttributeError("can't set attribute")
      AttributeError: can't set attribute 
    

    Resolution: Please use SQLAlchemy versions <= 1.1.18 to resolve the issue.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].