This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/airflow.git
commit be75dcd39cd10264048c86e74110365bd5daf8b7 Author: Jarek Potiuk <ja...@potiuk.com> AuthorDate: Sat Aug 21 12:12:39 2021 +0200 Update description about the new ``connection-types`` provider meta-data The ``hook-class-names`` provider's meta-data property has been deprecated and is now replaced by ``connection-types`` property. This documents the change. --- airflow/providers/airbyte/provider.yaml | 2 +- airflow/providers/alibaba/provider.yaml | 2 +- airflow/providers/amazon/provider.yaml | 2 +- airflow/providers/apache/cassandra/provider.yaml | 2 +- airflow/providers/apache/drill/provider.yaml | 2 +- airflow/providers/apache/druid/provider.yaml | 2 +- airflow/providers/apache/hdfs/provider.yaml | 2 +- airflow/providers/apache/hive/provider.yaml | 2 +- airflow/providers/apache/livy/provider.yaml | 2 +- airflow/providers/apache/pig/provider.yaml | 2 +- airflow/providers/apache/spark/provider.yaml | 2 +- airflow/providers/apache/sqoop/provider.yaml | 2 +- airflow/providers/asana/provider.yaml | 2 +- airflow/providers/cloudant/provider.yaml | 2 +- airflow/providers/cncf/kubernetes/provider.yaml | 2 +- airflow/providers/databricks/provider.yaml | 2 +- airflow/providers/dingding/provider.yaml | 2 +- airflow/providers/discord/provider.yaml | 2 +- airflow/providers/docker/provider.yaml | 2 +- airflow/providers/elasticsearch/provider.yaml | 2 +- airflow/providers/exasol/provider.yaml | 2 +- airflow/providers/facebook/provider.yaml | 2 +- airflow/providers/ftp/provider.yaml | 2 +- airflow/providers/google/provider.yaml | 2 +- airflow/providers/grpc/provider.yaml | 2 +- airflow/providers/hashicorp/provider.yaml | 2 +- airflow/providers/http/provider.yaml | 2 +- airflow/providers/imap/provider.yaml | 2 +- airflow/providers/jdbc/provider.yaml | 2 +- airflow/providers/jenkins/provider.yaml | 2 +- airflow/providers/jira/provider.yaml | 2 +- airflow/providers/microsoft/azure/provider.yaml | 2 +- airflow/providers/microsoft/mssql/provider.yaml | 2 +- airflow/providers/mongo/provider.yaml | 2 +- airflow/providers/mysql/provider.yaml | 2 +- airflow/providers/neo4j/provider.yaml | 2 +- airflow/providers/odbc/provider.yaml | 2 +- airflow/providers/opsgenie/provider.yaml | 2 +- airflow/providers/oracle/provider.yaml | 2 +- airflow/providers/postgres/provider.yaml | 2 +- airflow/providers/presto/provider.yaml | 2 +- airflow/providers/qubole/provider.yaml | 2 +- airflow/providers/redis/provider.yaml | 2 +- airflow/providers/salesforce/provider.yaml | 2 +- airflow/providers/samba/provider.yaml | 2 +- airflow/providers/segment/provider.yaml | 2 +- airflow/providers/sftp/provider.yaml | 2 +- airflow/providers/slack/provider.yaml | 2 +- airflow/providers/snowflake/provider.yaml | 2 +- airflow/providers/sqlite/provider.yaml | 2 +- airflow/providers/ssh/provider.yaml | 2 +- airflow/providers/tableau/provider.yaml | 2 +- airflow/providers/trino/provider.yaml | 2 +- airflow/providers/vertica/provider.yaml | 2 +- airflow/providers/yandex/provider.yaml | 2 +- .../howto/create-update-providers.rst | 17 ++++++++++++++--- docs/apache-airflow-providers/index.rst | 17 +++++++++++++---- docs/apache-airflow/howto/connection.rst | 12 ++++++++++-- 58 files changed, 92 insertions(+), 64 deletions(-) diff --git a/airflow/providers/airbyte/provider.yaml b/airflow/providers/airbyte/provider.yaml index e082e66..4d2778d 100644 --- a/airflow/providers/airbyte/provider.yaml +++ b/airflow/providers/airbyte/provider.yaml @@ -52,7 +52,7 @@ sensors: python-modules: - airflow.providers.airbyte.sensors.airbyte -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.airbyte.hooks.airbyte.AirbyteHook connection-types: diff --git a/airflow/providers/alibaba/provider.yaml b/airflow/providers/alibaba/provider.yaml index 14fe683..ed82dff 100644 --- a/airflow/providers/alibaba/provider.yaml +++ b/airflow/providers/alibaba/provider.yaml @@ -50,7 +50,7 @@ hooks: python-modules: - airflow.providers.alibaba.cloud.hooks.oss -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.alibaba.cloud.hooks.oss.OSSHook connection-types: diff --git a/airflow/providers/amazon/provider.yaml b/airflow/providers/amazon/provider.yaml index 56b6621..b82caf8 100644 --- a/airflow/providers/amazon/provider.yaml +++ b/airflow/providers/amazon/provider.yaml @@ -410,7 +410,7 @@ transfers: how-to-guide: /docs/apache-airflow-providers-amazon/operators/salesforce_to_s3.rst python-module: airflow.providers.amazon.aws.transfers.salesforce_to_s3 -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.amazon.aws.hooks.s3.S3Hook - airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook - airflow.providers.amazon.aws.hooks.emr.EmrHook diff --git a/airflow/providers/apache/cassandra/provider.yaml b/airflow/providers/apache/cassandra/provider.yaml index 9e6bcef..61fcfe7 100644 --- a/airflow/providers/apache/cassandra/provider.yaml +++ b/airflow/providers/apache/cassandra/provider.yaml @@ -48,7 +48,7 @@ hooks: python-modules: - airflow.providers.apache.cassandra.hooks.cassandra -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.apache.cassandra.hooks.cassandra.CassandraHook connection-types: diff --git a/airflow/providers/apache/drill/provider.yaml b/airflow/providers/apache/drill/provider.yaml index 213a509..2bfac05 100644 --- a/airflow/providers/apache/drill/provider.yaml +++ b/airflow/providers/apache/drill/provider.yaml @@ -45,7 +45,7 @@ hooks: python-modules: - airflow.providers.apache.drill.hooks.drill -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.apache.drill.hooks.drill.DrillHook connection-types: diff --git a/airflow/providers/apache/druid/provider.yaml b/airflow/providers/apache/druid/provider.yaml index 9ec4af7..7492e9a 100644 --- a/airflow/providers/apache/druid/provider.yaml +++ b/airflow/providers/apache/druid/provider.yaml @@ -48,7 +48,7 @@ hooks: python-modules: - airflow.providers.apache.druid.hooks.druid -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.apache.druid.hooks.druid.DruidDbApiHook connection-types: diff --git a/airflow/providers/apache/hdfs/provider.yaml b/airflow/providers/apache/hdfs/provider.yaml index 87a0820..8228916 100644 --- a/airflow/providers/apache/hdfs/provider.yaml +++ b/airflow/providers/apache/hdfs/provider.yaml @@ -58,7 +58,7 @@ hooks: python-modules: - airflow.providers.apache.hdfs.hooks.webhdfs -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.apache.hdfs.hooks.hdfs.HDFSHook connection-types: diff --git a/airflow/providers/apache/hive/provider.yaml b/airflow/providers/apache/hive/provider.yaml index f8610f5..8b7673d 100644 --- a/airflow/providers/apache/hive/provider.yaml +++ b/airflow/providers/apache/hive/provider.yaml @@ -79,7 +79,7 @@ transfers: target-integration-name: Apache Hive python-module: airflow.providers.apache.hive.transfers.mssql_to_hive -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.apache.hive.hooks.hive.HiveCliHook - airflow.providers.apache.hive.hooks.hive.HiveServer2Hook - airflow.providers.apache.hive.hooks.hive.HiveMetastoreHook diff --git a/airflow/providers/apache/livy/provider.yaml b/airflow/providers/apache/livy/provider.yaml index 28e4d73..2ed65c1 100644 --- a/airflow/providers/apache/livy/provider.yaml +++ b/airflow/providers/apache/livy/provider.yaml @@ -51,7 +51,7 @@ hooks: python-modules: - airflow.providers.apache.livy.hooks.livy -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.apache.livy.hooks.livy.LivyHook connection-types: diff --git a/airflow/providers/apache/pig/provider.yaml b/airflow/providers/apache/pig/provider.yaml index e513176..364588a 100644 --- a/airflow/providers/apache/pig/provider.yaml +++ b/airflow/providers/apache/pig/provider.yaml @@ -45,7 +45,7 @@ hooks: python-modules: - airflow.providers.apache.pig.hooks.pig -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.apache.pig.hooks.pig.PigCliHook connection-types: diff --git a/airflow/providers/apache/spark/provider.yaml b/airflow/providers/apache/spark/provider.yaml index 7964c6b..9f212d4 100644 --- a/airflow/providers/apache/spark/provider.yaml +++ b/airflow/providers/apache/spark/provider.yaml @@ -54,7 +54,7 @@ hooks: - airflow.providers.apache.spark.hooks.spark_sql - airflow.providers.apache.spark.hooks.spark_submit -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.apache.spark.hooks.spark_jdbc.SparkJDBCHook - airflow.providers.apache.spark.hooks.spark_sql.SparkSqlHook - airflow.providers.apache.spark.hooks.spark_submit.SparkSubmitHook diff --git a/airflow/providers/apache/sqoop/provider.yaml b/airflow/providers/apache/sqoop/provider.yaml index bf34cdb..7eb40af 100644 --- a/airflow/providers/apache/sqoop/provider.yaml +++ b/airflow/providers/apache/sqoop/provider.yaml @@ -46,7 +46,7 @@ hooks: python-modules: - airflow.providers.apache.sqoop.hooks.sqoop -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.apache.sqoop.hooks.sqoop.SqoopHook connection-types: diff --git a/airflow/providers/asana/provider.yaml b/airflow/providers/asana/provider.yaml index bbd9d33..d3a31e7 100644 --- a/airflow/providers/asana/provider.yaml +++ b/airflow/providers/asana/provider.yaml @@ -44,7 +44,7 @@ hooks: python-modules: - airflow.providers.asana.hooks.asana -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.asana.hooks.asana.AsanaHook connection-types: diff --git a/airflow/providers/cloudant/provider.yaml b/airflow/providers/cloudant/provider.yaml index 82e40b5..7834024 100644 --- a/airflow/providers/cloudant/provider.yaml +++ b/airflow/providers/cloudant/provider.yaml @@ -40,7 +40,7 @@ hooks: python-modules: - airflow.providers.cloudant.hooks.cloudant -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.cloudant.hooks.cloudant.CloudantHook connection-types: diff --git a/airflow/providers/cncf/kubernetes/provider.yaml b/airflow/providers/cncf/kubernetes/provider.yaml index 242d256..957f7db 100644 --- a/airflow/providers/cncf/kubernetes/provider.yaml +++ b/airflow/providers/cncf/kubernetes/provider.yaml @@ -61,7 +61,7 @@ hooks: python-modules: - airflow.providers.cncf.kubernetes.hooks.kubernetes -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.cncf.kubernetes.hooks.kubernetes.KubernetesHook connection-types: diff --git a/airflow/providers/databricks/provider.yaml b/airflow/providers/databricks/provider.yaml index 64f2a1f..3ce4f2f 100644 --- a/airflow/providers/databricks/provider.yaml +++ b/airflow/providers/databricks/provider.yaml @@ -46,7 +46,7 @@ hooks: python-modules: - airflow.providers.databricks.hooks.databricks -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.databricks.hooks.databricks.DatabricksHook connection-types: diff --git a/airflow/providers/dingding/provider.yaml b/airflow/providers/dingding/provider.yaml index 20743a0..b130d8b 100644 --- a/airflow/providers/dingding/provider.yaml +++ b/airflow/providers/dingding/provider.yaml @@ -48,7 +48,7 @@ hooks: python-modules: - airflow.providers.dingding.hooks.dingding -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.dingding.hooks.dingding.DingdingHook connection-types: diff --git a/airflow/providers/discord/provider.yaml b/airflow/providers/discord/provider.yaml index e9f6b0a..c1c7c7f 100644 --- a/airflow/providers/discord/provider.yaml +++ b/airflow/providers/discord/provider.yaml @@ -45,7 +45,7 @@ hooks: python-modules: - airflow.providers.discord.hooks.discord_webhook -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.discord.hooks.discord_webhook.DiscordWebhookHook connection-types: diff --git a/airflow/providers/docker/provider.yaml b/airflow/providers/docker/provider.yaml index 91fcd96..b8956d8 100644 --- a/airflow/providers/docker/provider.yaml +++ b/airflow/providers/docker/provider.yaml @@ -56,7 +56,7 @@ hooks: python-modules: - airflow.providers.docker.hooks.docker -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.docker.hooks.docker.DockerHook connection-types: diff --git a/airflow/providers/elasticsearch/provider.yaml b/airflow/providers/elasticsearch/provider.yaml index 8a8134d..b24bdbe 100644 --- a/airflow/providers/elasticsearch/provider.yaml +++ b/airflow/providers/elasticsearch/provider.yaml @@ -44,7 +44,7 @@ hooks: python-modules: - airflow.providers.elasticsearch.hooks.elasticsearch -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.elasticsearch.hooks.elasticsearch.ElasticsearchHook connection-types: diff --git a/airflow/providers/exasol/provider.yaml b/airflow/providers/exasol/provider.yaml index e92747f..552a459 100644 --- a/airflow/providers/exasol/provider.yaml +++ b/airflow/providers/exasol/provider.yaml @@ -46,7 +46,7 @@ hooks: python-modules: - airflow.providers.exasol.hooks.exasol -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.exasol.hooks.exasol.ExasolHook connection-types: diff --git a/airflow/providers/facebook/provider.yaml b/airflow/providers/facebook/provider.yaml index 2f6943f..30f18f4 100644 --- a/airflow/providers/facebook/provider.yaml +++ b/airflow/providers/facebook/provider.yaml @@ -41,7 +41,7 @@ hooks: python-modules: - airflow.providers.facebook.ads.hooks.ads -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.facebook.ads.hooks.ads.FacebookAdsReportingHook connection-types: diff --git a/airflow/providers/ftp/provider.yaml b/airflow/providers/ftp/provider.yaml index 85bb289..bffb7de 100644 --- a/airflow/providers/ftp/provider.yaml +++ b/airflow/providers/ftp/provider.yaml @@ -43,7 +43,7 @@ hooks: python-modules: - airflow.providers.ftp.hooks.ftp -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.ftp.hooks.ftp.FTPHook connection-types: diff --git a/airflow/providers/google/provider.yaml b/airflow/providers/google/provider.yaml index 2b978d9..288f63b 100644 --- a/airflow/providers/google/provider.yaml +++ b/airflow/providers/google/provider.yaml @@ -738,7 +738,7 @@ transfers: target-integration-name: Google Cloud Storage (GCS) python-module: airflow.providers.google.ads.transfers.ads_to_gcs -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.google.common.hooks.base_google.GoogleBaseHook - airflow.providers.google.cloud.hooks.dataprep.GoogleDataprepHook - airflow.providers.google.cloud.hooks.cloud_sql.CloudSQLHook diff --git a/airflow/providers/grpc/provider.yaml b/airflow/providers/grpc/provider.yaml index e9b1294..366a6f7 100644 --- a/airflow/providers/grpc/provider.yaml +++ b/airflow/providers/grpc/provider.yaml @@ -45,7 +45,7 @@ hooks: python-modules: - airflow.providers.grpc.hooks.grpc -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.grpc.hooks.grpc.GrpcHook connection-types: diff --git a/airflow/providers/hashicorp/provider.yaml b/airflow/providers/hashicorp/provider.yaml index 6d022e7..44eb4a7 100644 --- a/airflow/providers/hashicorp/provider.yaml +++ b/airflow/providers/hashicorp/provider.yaml @@ -41,7 +41,7 @@ hooks: python-modules: - airflow.providers.hashicorp.hooks.vault -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.hashicorp.hooks.vault.VaultHook connection-types: diff --git a/airflow/providers/http/provider.yaml b/airflow/providers/http/provider.yaml index cc3c081..3c3918b 100644 --- a/airflow/providers/http/provider.yaml +++ b/airflow/providers/http/provider.yaml @@ -52,7 +52,7 @@ hooks: python-modules: - airflow.providers.http.hooks.http -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.http.hooks.http.HttpHook connection-types: diff --git a/airflow/providers/imap/provider.yaml b/airflow/providers/imap/provider.yaml index 3cd6217..e567602 100644 --- a/airflow/providers/imap/provider.yaml +++ b/airflow/providers/imap/provider.yaml @@ -42,7 +42,7 @@ hooks: python-modules: - airflow.providers.imap.hooks.imap -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.imap.hooks.imap.ImapHook connection-types: diff --git a/airflow/providers/jdbc/provider.yaml b/airflow/providers/jdbc/provider.yaml index d4e4e62..2e87ceb 100644 --- a/airflow/providers/jdbc/provider.yaml +++ b/airflow/providers/jdbc/provider.yaml @@ -46,7 +46,7 @@ hooks: python-modules: - airflow.providers.jdbc.hooks.jdbc -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.jdbc.hooks.jdbc.JdbcHook connection-types: diff --git a/airflow/providers/jenkins/provider.yaml b/airflow/providers/jenkins/provider.yaml index d4d480c..05ce6bd 100644 --- a/airflow/providers/jenkins/provider.yaml +++ b/airflow/providers/jenkins/provider.yaml @@ -46,7 +46,7 @@ hooks: python-modules: - airflow.providers.jenkins.hooks.jenkins -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.jenkins.hooks.jenkins.JenkinsHook connection-types: diff --git a/airflow/providers/jira/provider.yaml b/airflow/providers/jira/provider.yaml index a7073cc..4dd4276 100644 --- a/airflow/providers/jira/provider.yaml +++ b/airflow/providers/jira/provider.yaml @@ -51,7 +51,7 @@ hooks: python-modules: - airflow.providers.jira.hooks.jira -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.jira.hooks.jira.JiraHook connection-types: diff --git a/airflow/providers/microsoft/azure/provider.yaml b/airflow/providers/microsoft/azure/provider.yaml index 6547641..230eb4a 100644 --- a/airflow/providers/microsoft/azure/provider.yaml +++ b/airflow/providers/microsoft/azure/provider.yaml @@ -153,7 +153,7 @@ transfers: how-to-guide: /docs/apache-airflow-providers-microsoft-azure/operators/azure_blob_to_gcs.rst python-module: airflow.providers.microsoft.azure.transfers.azure_blob_to_gcs -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.microsoft.azure.hooks.base_azure.AzureBaseHook - airflow.providers.microsoft.azure.hooks.adx.AzureDataExplorerHook - airflow.providers.microsoft.azure.hooks.azure_batch.AzureBatchHook diff --git a/airflow/providers/microsoft/mssql/provider.yaml b/airflow/providers/microsoft/mssql/provider.yaml index fc8cfc9..0b1414e 100644 --- a/airflow/providers/microsoft/mssql/provider.yaml +++ b/airflow/providers/microsoft/mssql/provider.yaml @@ -46,7 +46,7 @@ hooks: python-modules: - airflow.providers.microsoft.mssql.hooks.mssql -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.microsoft.mssql.hooks.mssql.MsSqlHook connection-types: diff --git a/airflow/providers/mongo/provider.yaml b/airflow/providers/mongo/provider.yaml index 3d83d37..682317c 100644 --- a/airflow/providers/mongo/provider.yaml +++ b/airflow/providers/mongo/provider.yaml @@ -44,7 +44,7 @@ hooks: python-modules: - airflow.providers.mongo.hooks.mongo -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.mongo.hooks.mongo.MongoHook connection-types: diff --git a/airflow/providers/mysql/provider.yaml b/airflow/providers/mysql/provider.yaml index cd5be3a..cb719a9 100644 --- a/airflow/providers/mysql/provider.yaml +++ b/airflow/providers/mysql/provider.yaml @@ -65,7 +65,7 @@ transfers: target-integration-name: MySQL python-module: airflow.providers.mysql.transfers.trino_to_mysql -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.mysql.hooks.mysql.MySqlHook connection-types: diff --git a/airflow/providers/neo4j/provider.yaml b/airflow/providers/neo4j/provider.yaml index a3416f5..d62489e 100644 --- a/airflow/providers/neo4j/provider.yaml +++ b/airflow/providers/neo4j/provider.yaml @@ -46,7 +46,7 @@ hooks: python-modules: - airflow.providers.neo4j.hooks.neo4j -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.neo4j.hooks.neo4j.Neo4jHook connection-types: diff --git a/airflow/providers/odbc/provider.yaml b/airflow/providers/odbc/provider.yaml index 84fcf93..e3cfaa6 100644 --- a/airflow/providers/odbc/provider.yaml +++ b/airflow/providers/odbc/provider.yaml @@ -40,7 +40,7 @@ hooks: python-modules: - airflow.providers.odbc.hooks.odbc -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.odbc.hooks.odbc.OdbcHook connection-types: diff --git a/airflow/providers/opsgenie/provider.yaml b/airflow/providers/opsgenie/provider.yaml index 313f5ac..8693ae9 100644 --- a/airflow/providers/opsgenie/provider.yaml +++ b/airflow/providers/opsgenie/provider.yaml @@ -46,7 +46,7 @@ hooks: python-modules: - airflow.providers.opsgenie.hooks.opsgenie_alert -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.opsgenie.hooks.opsgenie_alert.OpsgenieAlertHook connection-types: diff --git a/airflow/providers/oracle/provider.yaml b/airflow/providers/oracle/provider.yaml index 8452f7a..02bb455 100644 --- a/airflow/providers/oracle/provider.yaml +++ b/airflow/providers/oracle/provider.yaml @@ -51,7 +51,7 @@ transfers: target-integration-name: Oracle python-module: airflow.providers.oracle.transfers.oracle_to_oracle -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.oracle.hooks.oracle.OracleHook connection-types: diff --git a/airflow/providers/postgres/provider.yaml b/airflow/providers/postgres/provider.yaml index b320a77..2a33635 100644 --- a/airflow/providers/postgres/provider.yaml +++ b/airflow/providers/postgres/provider.yaml @@ -49,7 +49,7 @@ hooks: python-modules: - airflow.providers.postgres.hooks.postgres -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.postgres.hooks.postgres.PostgresHook connection-types: diff --git a/airflow/providers/presto/provider.yaml b/airflow/providers/presto/provider.yaml index 891a68b..26b7981 100644 --- a/airflow/providers/presto/provider.yaml +++ b/airflow/providers/presto/provider.yaml @@ -41,7 +41,7 @@ hooks: python-modules: - airflow.providers.presto.hooks.presto -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.presto.hooks.presto.PrestoHook connection-types: diff --git a/airflow/providers/qubole/provider.yaml b/airflow/providers/qubole/provider.yaml index e5b86fc..2246b39 100644 --- a/airflow/providers/qubole/provider.yaml +++ b/airflow/providers/qubole/provider.yaml @@ -53,7 +53,7 @@ hooks: - airflow.providers.qubole.hooks.qubole - airflow.providers.qubole.hooks.qubole_check -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.qubole.hooks.qubole.QuboleHook connection-types: diff --git a/airflow/providers/redis/provider.yaml b/airflow/providers/redis/provider.yaml index 96b103e..965db20 100644 --- a/airflow/providers/redis/provider.yaml +++ b/airflow/providers/redis/provider.yaml @@ -51,7 +51,7 @@ hooks: python-modules: - airflow.providers.redis.hooks.redis -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.redis.hooks.redis.RedisHook connection-types: diff --git a/airflow/providers/salesforce/provider.yaml b/airflow/providers/salesforce/provider.yaml index e99beb9..650f9f2 100644 --- a/airflow/providers/salesforce/provider.yaml +++ b/airflow/providers/salesforce/provider.yaml @@ -55,7 +55,7 @@ hooks: python-modules: - airflow.providers.salesforce.hooks.salesforce -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.salesforce.hooks.salesforce.SalesforceHook connection-types: diff --git a/airflow/providers/samba/provider.yaml b/airflow/providers/samba/provider.yaml index c02987b..af50853 100644 --- a/airflow/providers/samba/provider.yaml +++ b/airflow/providers/samba/provider.yaml @@ -40,7 +40,7 @@ hooks: python-modules: - airflow.providers.samba.hooks.samba -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.samba.hooks.samba.SambaHook connection-types: diff --git a/airflow/providers/segment/provider.yaml b/airflow/providers/segment/provider.yaml index 6432f6f..fa9bb4a 100644 --- a/airflow/providers/segment/provider.yaml +++ b/airflow/providers/segment/provider.yaml @@ -45,7 +45,7 @@ hooks: python-modules: - airflow.providers.segment.hooks.segment -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.segment.hooks.segment.SegmentHook connection-types: diff --git a/airflow/providers/sftp/provider.yaml b/airflow/providers/sftp/provider.yaml index 7e44b6b..6540b82 100644 --- a/airflow/providers/sftp/provider.yaml +++ b/airflow/providers/sftp/provider.yaml @@ -54,7 +54,7 @@ hooks: python-modules: - airflow.providers.sftp.hooks.sftp -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.sftp.hooks.sftp.SFTPHook connection-types: diff --git a/airflow/providers/slack/provider.yaml b/airflow/providers/slack/provider.yaml index 7c3f5d6..9742ce7 100644 --- a/airflow/providers/slack/provider.yaml +++ b/airflow/providers/slack/provider.yaml @@ -48,7 +48,7 @@ hooks: - airflow.providers.slack.hooks.slack - airflow.providers.slack.hooks.slack_webhook -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.slack.hooks.slack_webhook.SlackWebhookHook connection-types: diff --git a/airflow/providers/snowflake/provider.yaml b/airflow/providers/snowflake/provider.yaml index e100ae5..7ac22e1 100644 --- a/airflow/providers/snowflake/provider.yaml +++ b/airflow/providers/snowflake/provider.yaml @@ -61,7 +61,7 @@ transfers: python-module: airflow.providers.snowflake.transfers.snowflake_to_slack how-to-guide: /docs/apache-airflow-providers-snowflake/operators/snowflake_to_slack.rst -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.snowflake.hooks.snowflake.SnowflakeHook connection-types: diff --git a/airflow/providers/sqlite/provider.yaml b/airflow/providers/sqlite/provider.yaml index 5374973..e169a72 100644 --- a/airflow/providers/sqlite/provider.yaml +++ b/airflow/providers/sqlite/provider.yaml @@ -46,7 +46,7 @@ hooks: python-modules: - airflow.providers.sqlite.hooks.sqlite -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.sqlite.hooks.sqlite.SqliteHook connection-types: diff --git a/airflow/providers/ssh/provider.yaml b/airflow/providers/ssh/provider.yaml index 3ba53eb..ab76d2b 100644 --- a/airflow/providers/ssh/provider.yaml +++ b/airflow/providers/ssh/provider.yaml @@ -48,7 +48,7 @@ hooks: python-modules: - airflow.providers.ssh.hooks.ssh -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.ssh.hooks.ssh.SSHHook connection-types: diff --git a/airflow/providers/tableau/provider.yaml b/airflow/providers/tableau/provider.yaml index 6902ec8..949286e 100644 --- a/airflow/providers/tableau/provider.yaml +++ b/airflow/providers/tableau/provider.yaml @@ -53,7 +53,7 @@ hooks: python-modules: - airflow.providers.tableau.hooks.tableau -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.tableau.hooks.tableau.TableauHook connection-types: diff --git a/airflow/providers/trino/provider.yaml b/airflow/providers/trino/provider.yaml index a5fcbfc..5ec1723 100644 --- a/airflow/providers/trino/provider.yaml +++ b/airflow/providers/trino/provider.yaml @@ -39,7 +39,7 @@ hooks: python-modules: - airflow.providers.trino.hooks.trino -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.trino.hooks.trino.TrinoHook connection-types: diff --git a/airflow/providers/vertica/provider.yaml b/airflow/providers/vertica/provider.yaml index 21951c7..288f877 100644 --- a/airflow/providers/vertica/provider.yaml +++ b/airflow/providers/vertica/provider.yaml @@ -45,7 +45,7 @@ hooks: python-modules: - airflow.providers.vertica.hooks.vertica -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.vertica.hooks.vertica.VerticaHook connection-types: diff --git a/airflow/providers/yandex/provider.yaml b/airflow/providers/yandex/provider.yaml index 69c2ea9..c2fd261 100644 --- a/airflow/providers/yandex/provider.yaml +++ b/airflow/providers/yandex/provider.yaml @@ -55,7 +55,7 @@ hooks: python-modules: - airflow.providers.yandex.hooks.yandexcloud_dataproc -hook-class-names: +hook-class-names: # deprecated - to be removed after providers add dependency on Airflow 2.2.0+ - airflow.providers.yandex.hooks.yandex.YandexCloudBaseHook connection-types: diff --git a/docs/apache-airflow-providers/howto/create-update-providers.rst b/docs/apache-airflow-providers/howto/create-update-providers.rst index 68fc8b6..7f9cb61 100644 --- a/docs/apache-airflow-providers/howto/create-update-providers.rst +++ b/docs/apache-airflow-providers/howto/create-update-providers.rst @@ -279,11 +279,22 @@ In the ``airflow/providers/<NEW_PROVIDER>/provider.yaml`` add information of you python-modules: - airflow.providers.<NEW_PROVIDER>.sensors.<NEW_PROVIDER> - hook-class-names: + connection-types: + - hook-class-name: airflow.providers.<NEW_PROVIDER>.hooks.<NEW_PROVIDER>.NewProviderHook + - connection-type: provider-connection-type + + hook-class-names: # deprecated in Airflow 2.2.0 - airflow.providers.<NEW_PROVIDER>.hooks.<NEW_PROVIDER>.NewProviderHook -You only need to add ``hook-class-names`` in case you have some hooks that have customized UI behavior. -For more information see `Custom connection types <http://airflow.apache.org/docs/apache-airflow/stable/howto/connection.html#custom-connection-types>`_ +.. note:: Defining your own connection types + + You only need to add ``connection-types`` in case you have some hooks that have customized UI behavior. However + it is only supported for Airflow 2.2.0. If your providers are also targeting Airflow below 2.2.0 you should + provide the deprecated ``hook-class-names`` array. The ``connection-types`` array allows for optimization + of importing of individual connections and while Airflow 2.2.0 is able to handle both definition, the + ``connection-types`` is recommended. + + For more information see `Custom connection types <http://airflow.apache.org/docs/apache-airflow/stable/howto/connection.html#custom-connection-types>`_ After changing and creating these files you can build the documentation locally. The two commands below will diff --git a/docs/apache-airflow-providers/index.rst b/docs/apache-airflow-providers/index.rst index 71c5132..99ac4b7 100644 --- a/docs/apache-airflow-providers/index.rst +++ b/docs/apache-airflow-providers/index.rst @@ -143,9 +143,17 @@ Exposing customized functionality to the Airflow's core: capability. See :doc:`apache-airflow:howto/define_extra_link` for description of how to add extra link capability to the operators of yours. -* ``hook-class-names`` - this field should contain the list of all hook class names that provide - custom connection types with custom extra fields and field behaviour. See - :doc:`apache-airflow:howto/connection` for more details. +* ``connection-types`` - this field should contain the list of all connection types together with hook + class names implementing those custom connection types (providing custom extra fields and + custom field behaviour). This field is available as of Airflow 2.2.0 and it replaces deprecated + ``hook-class-names``. See :doc:`apache-airflow:howto/connection` for more details + +* ``hook-class-names`` (deprecated) - this field should contain the list of all hook class names that provide + custom connection types with custom extra fields and field behaviour. The ``hook-class-names`` array + is deprecated as of Airflow 2.2.0 (for optimization reasons) and will be removed in Airflow 3. If your + providers are targeting Airflow 2.2.0+ you do not have to include the ``hook-class-names`` array, if + you want to also target earlier versions of Airflow 2, you should include both ``hook-class-names`` and + ``connection-types`` arrays. See :doc:`apache-airflow:howto/connection` for more details. When your providers are installed you can query the installed providers and their capabilities with the @@ -209,7 +217,8 @@ Creating your own providers **When I write my own provider, do I need to do anything special to make it available to others?** You do not need to do anything special besides creating the ``apache_airflow_provider`` entry point -returning properly formatted meta-data (dictionary with ``extra-links`` and ``hook-class-names`` fields). +returning properly formatted meta-data - dictionary with ``extra-links`` and ``connection-types`` fields +(and deprecated ``hook-class-names`` field if you are also targeting versions of Airflow before 2.2.0). Anyone who runs airflow in an environment that has your Python package installed will be able to use the package as a provider package. diff --git a/docs/apache-airflow/howto/connection.rst b/docs/apache-airflow/howto/connection.rst index 63dd054..d95766b 100644 --- a/docs/apache-airflow/howto/connection.rst +++ b/docs/apache-airflow/howto/connection.rst @@ -401,8 +401,8 @@ custom Hook should not derive from this class, this class is a dummy example to regarding about class fields and methods that your Hook might define. Another good example is :py:class:`~airflow.providers.jdbc.hooks.jdbc.JdbcHook`. -By implementing those methods in your hooks and exposing them via ``hook-class-names`` array in -the provider meta-data you can customize Airflow by: +By implementing those methods in your hooks and exposing them via ``connection-types`` array (and +deprecated ``hook-class-names``) in the provider meta-data, you can customize Airflow by: * Adding custom connection types * Adding automated Hook creation from the connection type @@ -411,3 +411,11 @@ the provider meta-data you can customize Airflow by: * Adding placeholders showing examples of how fields should be formatted You can read more about details how to add custom provider packages in the :doc:`apache-airflow-providers:index` + +.. note:: Deprecated ``hook-class-names`` + + Prior to Airflow 2.2.0, the connections in providers have been exposed via ``hook-class-names`` array + in provider's meta-data, this however has proven to be not well optimized for using individual hooks + in workers and the ``hook-class-names`` array is now replaced by ``connection-types`` array. Until + provider supports Airflow below 2.2.0, both ``connection-types`` and ``hook-class-names`` should be + present. Automated checks during CI build will verify consistency of those two arrays.