ashb closed pull request #3917: [AIRFLOW-3086] Add extras group for google auth
to setup.py.
URL: https://github.com/apache/incubator-airflow/pull/3917
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/docs/installation.rst b/docs/installation.rst
index 3db48e45dd..bb1365ff00 100644
--- a/docs/installation.rst
+++ b/docs/installation.rst
@@ -41,71 +41,75 @@ these extra dependencies.
Here's the list of the subpackages and what they enable:
-+---------------+----------------------------------------------+-------------------------------------------------+
-| subpackage | install command | enables
|
-+===============+==============================================+=================================================+
-| all | ``pip install apache-airflow[all]`` | All Airflow
features known to man |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| all_dbs | ``pip install apache-airflow[all_dbs]`` | All databases
integrations |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| async | ``pip install apache-airflow[async]`` | Async worker
classes for Gunicorn |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| celery | ``pip install apache-airflow[celery]`` |
CeleryExecutor |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| cloudant | ``pip install apache-airflow[cloudant]`` | Cloudant hook
|
-+---------------+----------------------------------------------+-------------------------------------------------+
-| crypto | ``pip install apache-airflow[crypto]`` | Encrypt
connection passwords in metadata db |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| devel | ``pip install apache-airflow[devel]`` | Minimum dev
tools requirements |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| devel_hadoop | ``pip install apache-airflow[devel_hadoop]`` | Airflow +
dependencies on the Hadoop stack |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| druid | ``pip install apache-airflow[druid]`` | Druid related
operators & hooks |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| gcp_api | ``pip install apache-airflow[gcp_api]`` | Google Cloud
Platform hooks and operators |
-| | | (using
``google-api-python-client``) |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| hdfs | ``pip install apache-airflow[hdfs]`` | HDFS hooks
and operators |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| hive | ``pip install apache-airflow[hive]`` | All Hive
related operators |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| jdbc | ``pip install apache-airflow[jdbc]`` | JDBC hooks
and operators |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| kerberos | ``pip install apache-airflow[kerberos]`` | Kerberos
integration for Kerberized Hadoop |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| ldap | ``pip install apache-airflow[ldap]`` | LDAP
authentication for users |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| mssql | ``pip install apache-airflow[mssql]`` | Microsoft SQL
Server operators and hook, |
-| | | support as an
Airflow backend |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| mysql | ``pip install apache-airflow[mysql]`` | MySQL
operators and hook, support as an Airflow |
-| | | backend. The
version of MySQL server has to be |
-| | | 5.6.4+. The
exact version upper bound depends |
-| | | on version of
``mysqlclient`` package. For |
-| | | example,
``mysqlclient`` 1.3.12 can only be |
-| | | used with
MySQL server 5.6.4 through 5.7. |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| password | ``pip install apache-airflow[password]`` | Password
authentication for users |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| postgres | ``pip install apache-airflow[postgres]`` | PostgreSQL
operators and hook, support as an |
-| | | Airflow
backend |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| qds | ``pip install apache-airflow[qds]`` | Enable QDS
(Qubole Data Service) support |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| rabbitmq | ``pip install apache-airflow[rabbitmq]`` | RabbitMQ
support as a Celery backend |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| redis | ``pip install apache-airflow[redis]`` | Redis hooks
and sensors |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| s3 | ``pip install apache-airflow[s3]`` |
``S3KeySensor``, ``S3PrefixSensor`` |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| samba | ``pip install apache-airflow[samba]`` |
``Hive2SambaOperator`` |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| slack | ``pip install apache-airflow[slack]`` |
``SlackAPIPostOperator`` |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| ssh | ``pip install apache-airflow[ssh]`` | SSH hooks and
Operator |
-+---------------+----------------------------------------------+-------------------------------------------------+
-| vertica | ``pip install apache-airflow[vertica]`` | Vertica hook
support as an Airflow backend |
-+---------------+----------------------------------------------+-------------------------------------------------+
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| subpackage | install command |
enables |
++=====================+===================================================+=================================================+
+| all | ``pip install apache-airflow[all]`` |
All Airflow features known to man |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| all_dbs | ``pip install apache-airflow[all_dbs]`` |
All databases integrations |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| async | ``pip install apache-airflow[async]`` |
Async worker classes for Gunicorn |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| celery | ``pip install apache-airflow[celery]`` |
CeleryExecutor |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| cloudant | ``pip install apache-airflow[cloudant]`` |
Cloudant hook |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| crypto | ``pip install apache-airflow[crypto]`` |
Encrypt connection passwords in metadata db |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| devel | ``pip install apache-airflow[devel]`` |
Minimum dev tools requirements |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| devel_hadoop | ``pip install apache-airflow[devel_hadoop]`` |
Airflow + dependencies on the Hadoop stack |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| druid | ``pip install apache-airflow[druid]`` |
Druid related operators & hooks |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| gcp_api | ``pip install apache-airflow[gcp_api]`` |
Google Cloud Platform hooks and operators |
+| | |
(using ``google-api-python-client``) |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| github_enterprise | ``pip install apache-airflow[github_enterprise]`` |
Github Enterprise auth backend |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| google_auth | ``pip install apache-airflow[google_auth]`` |
Google auth backend |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| hdfs | ``pip install apache-airflow[hdfs]`` |
HDFS hooks and operators |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| hive | ``pip install apache-airflow[hive]`` |
All Hive related operators |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| jdbc | ``pip install apache-airflow[jdbc]`` |
JDBC hooks and operators |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| kerberos | ``pip install apache-airflow[kerberos]`` |
Kerberos integration for Kerberized Hadoop |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| ldap | ``pip install apache-airflow[ldap]`` |
LDAP authentication for users |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| mssql | ``pip install apache-airflow[mssql]`` |
Microsoft SQL Server operators and hook, |
+| | |
support as an Airflow backend |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| mysql | ``pip install apache-airflow[mysql]`` |
MySQL operators and hook, support as an Airflow |
+| | |
backend. The version of MySQL server has to be |
+| | |
5.6.4+. The exact version upper bound depends |
+| | | on
version of ``mysqlclient`` package. For |
+| | |
example, ``mysqlclient`` 1.3.12 can only be |
+| | |
used with MySQL server 5.6.4 through 5.7. |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| password | ``pip install apache-airflow[password]`` |
Password authentication for users |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| postgres | ``pip install apache-airflow[postgres]`` |
PostgreSQL operators and hook, support as an |
+| | |
Airflow backend |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| qds | ``pip install apache-airflow[qds]`` |
Enable QDS (Qubole Data Service) support |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| rabbitmq | ``pip install apache-airflow[rabbitmq]`` |
RabbitMQ support as a Celery backend |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| redis | ``pip install apache-airflow[redis]`` |
Redis hooks and sensors |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| s3 | ``pip install apache-airflow[s3]`` |
``S3KeySensor``, ``S3PrefixSensor`` |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| samba | ``pip install apache-airflow[samba]`` |
``Hive2SambaOperator`` |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| slack | ``pip install apache-airflow[slack]`` |
``SlackAPIPostOperator`` |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| ssh | ``pip install apache-airflow[ssh]`` |
SSH hooks and Operator |
++---------------------+---------------------------------------------------+-------------------------------------------------+
+| vertica | ``pip install apache-airflow[vertica]`` |
Vertica hook support as an Airflow backend |
++---------------------+---------------------------------------------------+-------------------------------------------------+
Initiating Airflow Database
'''''''''''''''''''''''''''
diff --git a/docs/security.rst b/docs/security.rst
index 23f7cc0303..b5d5c6a7bd 100644
--- a/docs/security.rst
+++ b/docs/security.rst
@@ -231,6 +231,12 @@ and in your DAG, when initializing the HiveOperator,
specify:
run_as_owner=True
+To use kerberos authentication, you must install Airflow with the `kerberos`
extras group:
+
+.. code-block:: base
+
+ pip install airflow[kerberos]
+
OAuth Authentication
--------------------
@@ -258,6 +264,12 @@ to only members of those teams.
.. note:: If you do not specify a team whitelist, anyone with a valid account
on
your GHE installation will be able to login to Airflow.
+To use GHE authentication, you must install Airflow with the
`github_enterprise` extras group:
+
+.. code-block:: base
+
+ pip install airflow[github_enterprise]
+
Setting up GHE Authentication
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -300,6 +312,12 @@ login, separated with a comma, to only members of those
domains.
oauth_callback_route = /oauth2callback
domain = "example1.com,example2.com"
+To use Google authentication, you must install Airflow with the `google_auth`
extras group:
+
+.. code-block:: base
+
+ pip install airflow[google_auth]
+
Setting up Google Authentication
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/setup.py b/setup.py
index eded3c4e50..76f55ab01b 100644
--- a/setup.py
+++ b/setup.py
@@ -192,6 +192,7 @@ def write_version(filename=os.path.join(*['airflow',
'pandas-gbq'
]
github_enterprise = ['Flask-OAuthlib>=0.9.1']
+google_auth = ['Flask-OAuthlib>=0.9.1']
hdfs = ['snakebite>=2.7.8']
hive = [
'hmsclient>=0.1.0',
@@ -358,6 +359,7 @@ def do_setup():
'emr': emr,
'gcp_api': gcp_api,
'github_enterprise': github_enterprise,
+ 'google_auth': google_auth,
'hdfs': hdfs,
'hive': hive,
'jdbc': jdbc,
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services