diff --git a/docs/website/docs/dlt-ecosystem/destinations/snowflake.md b/docs/website/docs/dlt-ecosystem/destinations/snowflake.md index 16d579ee29..5efc31dde8 100644 --- a/docs/website/docs/dlt-ecosystem/destinations/snowflake.md +++ b/docs/website/docs/dlt-ecosystem/destinations/snowflake.md @@ -66,7 +66,7 @@ Now you can use the user named `LOADER` to access database `DLT_DATA` and log in You can also decrease the suspend time for your warehouse to 1 minute (**Admin**/**Warehouses** in Snowflake UI) ### Authentication types -Snowflake destination accepts two authentication type +Snowflake destination accepts three authentication types - password authentication - [key pair authentication](https://docs.snowflake.com/en/user-guide/key-pair-auth) @@ -95,6 +95,17 @@ If you pass a passphrase in the connection string, please url encode it. destination.snowflake.credentials="snowflake://loader:@kgiotue-wn98412/dlt_data?private_key=&private_key_passphrase=" ``` +In **external authentication** you can use oauth provider like Okta or external browser to authenticate. You pass your authenticator and refresh token as below: +```toml +[destination.snowflake.credentials] +database = "dlt_data" +username = "loader" +authenticator="..." +token="..." +``` +or in connection string as query parameters. +Refer to Snowflake [OAuth](https://docs.snowflake.com/en/user-guide/oauth-intro) for more details. + ## Write disposition All write dispositions are supported diff --git a/poetry.lock b/poetry.lock index 15c257b607..159b81f9fa 100644 --- a/poetry.lock +++ b/poetry.lock @@ -30,7 +30,7 @@ name = "agate" version = "1.6.3" description = "A data analysis library that is optimized for humans instead of machines." category = "main" -optional = true +optional = false python-versions = "*" [package.dependencies] @@ -1428,7 +1428,7 @@ name = "dbt-core" version = "1.5.6" description = "With dbt, data analysts and engineers can build analytics the way engineers build applications." category = "main" -optional = true +optional = false python-versions = ">=3.7.2" [package.dependencies] @@ -1460,7 +1460,7 @@ name = "dbt-duckdb" version = "1.5.2" description = "The duckdb adapter plugin for dbt (data build tool)" category = "main" -optional = true +optional = false python-versions = "*" [package.dependencies] @@ -1475,7 +1475,7 @@ name = "dbt-extractor" version = "0.4.1" description = "A tool to analyze and extract information from Jinja used in dbt projects." category = "main" -optional = true +optional = false python-versions = ">=3.6.1" [[package]] @@ -1661,7 +1661,7 @@ name = "duckdb" version = "0.9.1" description = "DuckDB embedded database" category = "main" -optional = true +optional = false python-versions = ">=3.7.0" [[package]] @@ -2012,7 +2012,7 @@ name = "future" version = "0.18.3" description = "Clean single-source support for Python 3 and 2" category = "main" -optional = true +optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" [[package]] @@ -2406,7 +2406,7 @@ name = "hologram" version = "0.0.16" description = "JSON schema generation from dataclasses" category = "main" -optional = true +optional = false python-versions = "*" [package.dependencies] @@ -2533,7 +2533,7 @@ name = "isodate" version = "0.6.1" description = "An ISO 8601 date/time/duration parser and formatter" category = "main" -optional = true +optional = false python-versions = "*" [package.dependencies] @@ -2686,7 +2686,7 @@ name = "leather" version = "0.3.4" description = "Python charting for 80% of humans." category = "main" -optional = true +optional = false python-versions = "*" [package.dependencies] @@ -2748,7 +2748,7 @@ name = "logbook" version = "1.5.3" description = "A logging replacement for Python" category = "main" -optional = true +optional = false python-versions = "*" [package.extras] @@ -2900,7 +2900,7 @@ name = "mashumaro" version = "3.6" description = "Fast serialization library on top of dataclasses" category = "main" -optional = true +optional = false python-versions = ">=3.7" [package.dependencies] @@ -2950,7 +2950,7 @@ name = "minimal-snowplow-tracker" version = "0.0.2" description = "A minimal snowplow event tracker for Python. Add analytics to your Python and Django apps, webapps and games" category = "main" -optional = true +optional = false python-versions = "*" [package.dependencies] @@ -3001,7 +3001,7 @@ name = "msgpack" version = "1.0.5" description = "MessagePack serializer" category = "main" -optional = true +optional = false python-versions = "*" [[package]] @@ -3099,7 +3099,7 @@ name = "networkx" version = "2.8.8" description = "Python package for creating and manipulating graphs and networks" category = "main" -optional = true +optional = false python-versions = ">=3.8" [package.extras] @@ -3324,7 +3324,7 @@ name = "parsedatetime" version = "2.4" description = "Parse human-readable date/time text." category = "main" -optional = true +optional = false python-versions = "*" [package.dependencies] @@ -3875,7 +3875,7 @@ name = "pytimeparse" version = "1.1.8" description = "Time expression parser" category = "main" -optional = true +optional = false python-versions = "*" [[package]] @@ -4861,7 +4861,7 @@ weaviate = ["weaviate-client"] [metadata] lock-version = "1.1" python-versions = ">=3.8.1,<4.0" -content-hash = "7d5b9bfb96bfd08e2b6843df885a3ff605abe603250db78e35350e18bc933a64" +content-hash = "8afa9a4b0b11ff48506bd5424b6e64a181ff52955dcce41e1bc43c63738c4062" [metadata.files] about-time = [ diff --git a/pyproject.toml b/pyproject.toml index 3795f0096b..5c159fd8d9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -160,6 +160,8 @@ pymysql = "^1.1.0" pypdf2 = "^3.0.1" pydoc-markdown = "^4.8.2" connectorx="0.3.1" +dbt-core=">=1.2.0" +dbt-duckdb=">=1.2.0" [build-system] requires = ["poetry-core>=1.0.8"]