blob: 0b4fd2e362e245b587ada54e5a26891b986dcb07 [file] [log] [blame]
.. Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
.. http://www.apache.org/licenses/LICENSE-2.0
.. Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
.. _howto/connection:dbt-cloud:
Connecting to dbt Cloud
=======================
After installing the dbt Cloud provider in your Airflow environment, the corresponding connection type of
``dbt_cloud`` will be made available. The following describes how to configure an API token and optionally
provide an Account ID and/or a Tenant name for your dbt Cloud connection.
Default Connection ID
~~~~~~~~~~~~~~~~~~~~~
All hooks and operators related to dbt Cloud use ``dbt_cloud_default`` by default.
Authenticating to the dbt Cloud API
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To interact with the dbt Cloud API in Airflow, either a
`User API Token <https://docs.getdbt.com/docs/dbt-cloud/dbt-cloud-api/user-tokens>`__ or a
`Service Account API Token <https://docs.getdbt.com/docs/dbt-cloud/dbt-cloud-api/service-tokens>`__ is
required.
Configuring the connection
~~~~~~~~~~~~~~~~~~~~~~~~~~
Password (required)
The API token to use when authenticating to the dbt Cloud API.
If using the Connection form in the Airflow UI, the token can also be stored in the "API Token" field.
Login (optional)
The Account ID to be used as the default Account ID for dbt Cloud operators or
:class:`~airflow.providers.dbt.cloud.hooks.dbt.DbtCloudHook` methods. If an Account ID is provided in the
connection, you are not required to pass ``account_id`` to operators or hook methods. The ``account_id``
value will be retrieved from the Airflow connection instead. If needed, the ``account_id`` can still be
explicitly passed to an operator or hook method as an override the default value configured in the
connection.
If using the Connection form in the Airflow UI, the Account ID can also be stored in the "Account ID"
field.
.. note::
If an Account ID is not provided in an Airflow connection, ``account_id`` *must* be explicitly passed to
an operator or hook method.
Schema (optional)
The Tenant name for your dbt Cloud environment (i.e. https://my-tenant.getdbt.com). This is particularly
useful when using a single-tenant dbt Cloud instance. If a Tenant name is not provided, "cloud"
will be used as the default value (i.e. https://cloud.getdbt.com) assuming a multi-tenant instance.
When specifying the connection as an environment variable, you should specify it following the standard syntax
of a database connection. Note that all components of the URI should be URL-encoded.
For example, to add a connection with the connection ID of "dbt_cloud_default":
When specifying an Account ID:
.. code-block:: bash
export AIRFLOW_CONN_DBT_CLOUD_DEFAULT='dbt-cloud://account_id:api_token@'
When *not* specifying an Account ID:
.. code-block:: bash
export AIRFLOW_CONN_DBT_CLOUD_DEFAULT='dbt-cloud://:api_token@'
When specifying Tenant name:
.. code-block:: bash
export AIRFLOW_CONN_DBT_CLOUD_DEFAULT='dbt-cloud://:api_token@:/my-tenant'
You can refer to the documentation on
:ref:`creating connections via environment variables <environment_variables_secrets_backend>` for more
information.