Repository: MeltanoLabs/target-snowflake
Pull request #355: feat(deps): bump snowflake-connector-python from 3.14.1 to 3.15.0
Author: login: dependabot[bot]
Labels: name: dependencies
description: Pull requests that update a dependency file
name: python
description: Pull requests that update Python code
Created: 2025-04-29T01:46:42Z | Merged: 2025-04-29T02:45:04Z

Bumps [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) from 3.14.1 to 3.15.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/snowflakedb/snowflake-connector-python/releases">snowflake-connector-python's releases</a>.</em></p>
<blockquote>
<h2>3.15.0</h2>
<ul>
<li>v3.15.0(Apr 29,2025)
<ul>
<li>Bumped up min boto and botocore version to 1.24.</li>
<li>OCSP: terminate certificates chain traversal if a trusted certificate already reached.</li>
<li>Added new authentication methods support for programmatic access tokens (PATs), OAuth 2.0 Authorization Code Flow, OAuth 2.0 Client Credentials Flow, and OAuth Token caching.
<ul>
<li>For OAuth 2.0 Authorization Code Flow:
<ul>
<li>Added the <code>oauth_client_id</code>, <code>oauth_client_secret</code>, <code>oauth_authorization_url</code>, <code>oauth_token_request_url</code>, <code>oauth_redirect_uri</code>, <code>oauth_scope</code>, <code>oauth_disable_pkce</code>, <code>oauth_enable_refresh_tokens</code> and <code>oauth_enable_single_use_refresh_tokens</code> parameters.</li>
<li>Added the <code>OAUTH_AUTHORIZATION_CODE</code> value for the parameter authenticator.</li>
</ul>
</li>
<li>For OAuth 2.0 Client Credentials Flow:
<ul>
<li>Added the <code>oauth_client_id</code>, <code>oauth_client_secret</code>, <code>oauth_token_request_url</code>, and <code>oauth_scope</code> parameters.</li>
<li>Added the <code>OAUTH_CLIENT_CREDENTIALS</code> value for the parameter authenticator.</li>
</ul>
</li>
<li>For OAuth Token caching: Passing a username to driver configuration is required, and the <code>client_store_temporary_credential property</code> is to be set to <code>true</code>.</li>
</ul>
</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/snowflakedb/snowflake-connector-python/commit/15efed3ac2c2e7a61adf701ba56a307deb1fc4b1"><code>15efed3</code></a> SNOW-2057797 Update requirements files (<a href="https://redirect.github.com/snowflakedb/snowflake-connector-python/issues/2305">#2305</a>)</li>
<li><a href="https://github.com/snowflakedb/snowflake-connector-python/commit/98381aeba772fed3395081c385dd0f5de0341959"><code>98381ae</code></a> SNOW-2057797 Minor python connector version bump (<a href="https://redirect.github.com/snowflakedb/snowflake-connector-python/issues/2302">#2302</a>)</li>
<li><a href="https://github.com/snowflakedb/snowflake-connector-python/commit/fd574d3b1f6089827f00862a326e40c6f97bc340"><code>fd574d3</code></a> SNOW-2068668 Move OAuth out of PrPr flag (<a href="https://redirect.github.com/snowflakedb/snowflake-connector-python/issues/2301">#2301</a>)</li>
<li><a href="https://github.com/snowflakedb/snowflake-connector-python/commit/60493f3ab9a17cd6fdc90eb520c174d31c7b0450"><code>60493f3</code></a> SNOW-2057503 allow only whitelisted schemes for OAuth url parameters (<a href="https://redirect.github.com/snowflakedb/snowflake-connector-python/issues/2292">#2292</a>)</li>
<li><a href="https://github.com/snowflakedb/snowflake-connector-python/commit/243133602626bd38985b6ff44f4e6a8f5fa4bca3"><code>2431336</code></a> SNOW-2067577 OCSP: stop certificates chain traversal as soon as a trusted one...</li>
<li><a href="https://github.com/snowflakedb/snowflake-connector-python/commit/03928bf02f7ce8e5a4ceb63562b168cc49f23f67"><code>03928bf</code></a> SNOW-2061664 flatten OAuth refresh_token and pkce parameters (<a href="https://redirect.github.com/snowflakedb/snowflake-connector-python/issues/2298">#2298</a>)</li>
<li><a href="https://github.com/snowflakedb/snowflake-connector-python/commit/f80d83e9a7c69a5b6b35859e12fc25b63606a4e0"><code>f80d83e</code></a> SNOW-2055494 fix proper boto min versions (<a href="https://redirect.github.com/snowflakedb/snowflake-connector-python/issues/2295">#2295</a>)</li>
<li><a href="https://github.com/snowflakedb/snowflake-connector-python/commit/640cf6c69c2897520fd03bc3fa67906fd7659928"><code>640cf6c</code></a> Support client-side opt-in of Refresh Token Rotation in Snowflake OAuth (<a href="https://redirect.github.com/snowflakedb/snowflake-connector-python/issues/2294">#2294</a>)</li>
<li><a href="https://github.com/snowflakedb/snowflake-connector-python/commit/ce85800acaefe1da408f41da6debca59a5b7ef13"><code>ce85800</code></a> SNOW-2026002: Change invalid TLD to be RFC compliant (<a href="https://redirect.github.com/snowflakedb/snowflake-connector-python/issues/2288">#2288</a>)</li>
<li>See full diff in <a href="https://github.com/snowflakedb/snowflake-connector-python/compare/v3.14.1...v3.15.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=snowflake-connector-python&package-manager=pip&previous-version=3.14.1&new-version=3.15.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>


Diff:
diff --git a/poetry.lock b/poetry.lock
index 4847b96..7773390 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1720,43 +1720,43 @@ files = [
 
 [[package]]
 name = "snowflake-connector-python"
-version = "3.14.1"
+version = "3.15.0"
 description = "Snowflake Connector for Python"
 optional = false
 python-versions = ">=3.9"
 groups = ["main"]
 files = [
-    {file = "snowflake_connector_python-3.14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fcdd3accdd99c8cb848f5cb7f29d057be0ccc69fe35a7968d9891530fd4915d4"},
-    {file = "snowflake_connector_python-3.14.1-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:a59e70f37cd27ac19d16cea9e64083726784bdc9e18fad62db23e7a47bd9e87c"},
-    {file = "snowflake_connector_python-3.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f025ea0cabb9430bed281012f909b0d25d7ee92e4c16052a8073e6bfa9f841ca"},
-    {file = "snowflake_connector_python-3.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:010a86f815c013b4ceee46e099433828c25a69e35911b5fb19e07546110c3863"},
-    {file = "snowflake_connector_python-3.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:3520b9b47357e97490a0b7b6e6126f77675f550a10c68af4c1753846480dac24"},
-    {file = "snowflake_connector_python-3.14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:eda318a9b761d28a5a26ad44d1023707923f5548fdf0a1f5328ea7605a6a86d6"},
-    {file = "snowflake_connector_python-3.14.1-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:daebbb0f8c58349c71b978a576a28cfc104941affedac3b6570155db33ca99d4"},
-    {file = "snowflake_connector_python-3.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdbbcfdf7cc37f71bda4a5e331106e32ebbe5ed8d43bd18ab947521988f4a036"},
-    {file = "snowflake_connector_python-3.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef8596fd24ed5f9f8088fc5fd881e7233f6fa83cb1f509d73b3ab73f4f16771c"},
-    {file = "snowflake_connector_python-3.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:7a06dfac4650b6813492ee2daf7df1c3952d79c3efe3948e9597f1b2343f4dc3"},
-    {file = "snowflake_connector_python-3.14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7f0505a9ff3b00bb476078b8f642da6fea303022b997331c522eb02b80ad129f"},
-    {file = "snowflake_connector_python-3.14.1-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:bf3ca3c1403f4d8cad92f597571c334015fc7be2a917b4e6eb75a66517404577"},
-    {file = "snowflake_connector_python-3.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cc908f9fd4abf354fad7c5b69557a1da229196f7554126e7aef0441db56c75f"},
-    {file = "snowflake_connector_python-3.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40dab3a11cee219073e5a5bda2aa2d6b2b4fc1a7267d934466e20ea6cfa4db6b"},
-    {file = "snowflake_connector_python-3.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:079bd59de5702fdce9a3d0fc67061f7fbb959599d5887ebaf9f0828c172f47de"},
-    {file = "snowflake_connector_python-3.14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:003f87241b95c647d2ddf42d0025ee4a140afe09454d5167c58cf23b18bacf79"},
-    {file = "snowflake_connector_python-3.14.1-cp313-cp313-macosx_11_0_x86_64.whl", hash = "sha256:5724e1874f22a880f28941ae84aec524a210038817971b3080a010fe555fcb47"},
-    {file = "snowflake_connector_python-3.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39856da1f790f2c4905f69b5ede4f20edc696821e0e5cd6397276ec48b40f3fe"},
-    {file = "snowflake_connector_python-3.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62e4b17de6b78b9af831962baf2bae802cc82c6cbd7f3b1302eac983db2411bf"},
-    {file = "snowflake_connector_python-3.14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:197d218993f42c5407c2504fad3189d6bf01096c150d2a8a685e957b89ec6729"},
-    {file = "snowflake_connector_python-3.14.1-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:fa9be6963127d30f969588799c02e600326804a6f3c5d50d313c57f436da08e7"},
-    {file = "snowflake_connector_python-3.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a4719893c66078be969f9085a14af3164a813c02947453ae8a5dfbb736b7a4b"},
-    {file = "snowflake_connector_python-3.14.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:826f628b1d4be35f4e0ea9092d3041776afc5ec5c04ba31e48e3971596f5a358"},
-    {file = "snowflake_connector_python-3.14.1-cp39-cp39-win_amd64.whl", hash = "sha256:2e545c9b6bec7b4ca4e09416c7b192b4ad7b8ef7367cb3f6d7fc2bfc0e6ec717"},
-    {file = "snowflake_connector_python-3.14.1.tar.gz", hash = "sha256:5ff7a9f1582d1583f86e1c181d29b3ee56e7e6163d14209fc8bf34ae2e234986"},
+    {file = "snowflake_connector_python-3.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ef92f4ceb61b6a7373ec417f7201d288a6a5a3a42b7e789d3b2221b4dff5ed3c"},
+    {file = "snowflake_connector_python-3.15.0-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:d33bd2b326d6ea4d49e0cd821f75b3c5f2910be21f4575c1a03d272af78af767"},
+    {file = "snowflake_connector_python-3.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56fe48836c5dcda71b951f3f586c036631f7e3d17c3e201489c56974eea5e665"},
+    {file = "snowflake_connector_python-3.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9345591a62e99f811af6dca758fde873660ced3b4e60a77716f6f2d75b609fd9"},
+    {file = "snowflake_connector_python-3.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:21243f2296ceeb238eff871443379665f72125c2086032b40e85ff576df8cc0a"},
+    {file = "snowflake_connector_python-3.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d6c22820806b43c9f9c5ae3c7758307fb668c42b7ddf74d995b2f0d2da21f08e"},
+    {file = "snowflake_connector_python-3.15.0-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:f83b2e08d29f1bb61c7152bf87f0b8a9e77ee25f09e506f69085a365fe8825df"},
+    {file = "snowflake_connector_python-3.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dbd35265af54ad045cadbed5bfbc76816d2e4d95902f3312365d54c08a33ec3"},
+    {file = "snowflake_connector_python-3.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b8757b6206982e784a8f9f24a6fd3de4849e37113788ef677373b6b18907e91"},
+    {file = "snowflake_connector_python-3.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:f8994bcfdcd4915b0a365969346939d17ee03e041202048c0d108629bd598d4d"},
+    {file = "snowflake_connector_python-3.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8f41ab707792b07c58214b13e7a6b50d4460f7151e19ea80df3612c92d3a7b76"},
+    {file = "snowflake_connector_python-3.15.0-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:d2f0bb00a48c4125090dfe2e8bd15f9389be7867fd9e3c118ecb8dc87c69bcb8"},
+    {file = "snowflake_connector_python-3.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:457408eeb4116f73df60bb912fdeb7f6d4849e2cfd7e282b2afb25f080f20188"},
+    {file = "snowflake_connector_python-3.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63e93f67712260a11ae3bb858c567be805aca5f96d042ff5feacea102a33b49f"},
+    {file = "snowflake_connector_python-3.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:acbceae9120502613991b9997d94cc23ea7e76cdfc3601718025f9f0859cc21e"},
+    {file = "snowflake_connector_python-3.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:52dbe588f7784f194caa739cb394557b81d150f21841d3b51d6d164f1b2e90c0"},
+    {file = "snowflake_connector_python-3.15.0-cp313-cp313-macosx_11_0_x86_64.whl", hash = "sha256:fcf4090514cc4c8be8f11573b7ed19f6fe6339048271cbdbc18c50a608b57655"},
+    {file = "snowflake_connector_python-3.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64418f6055789a6d1393dfbd3a609e126a88cd015065fad1923ef7b6f4b8dd61"},
+    {file = "snowflake_connector_python-3.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9df04e2294605d1e243793b5d889a250d6a301fea8b25c7a84703e3a709a96c"},
+    {file = "snowflake_connector_python-3.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ecc5f570000ad957e09517d317ca07645ece77ca9befc88797439164e632738d"},
+    {file = "snowflake_connector_python-3.15.0-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:49e68d5130f17bde2de82bf1c7298803b4ec5bfb926a5daa9001542d710026bc"},
+    {file = "snowflake_connector_python-3.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:698d9dbdd8873daaae01a46ca5d57caf3e4637a30a6afe5ca54cd0c460c359fd"},
+    {file = "snowflake_connector_python-3.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:04cadd3dae180a5f3632347c2a5836de7ac20fbdf8cb5192e021cad098c85247"},
+    {file = "snowflake_connector_python-3.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:0a97deeadfe746fb88475cb83498650e68cf051969476ea498f572e40d49ce96"},
+    {file = "snowflake_connector_python-3.15.0.tar.gz", hash = "sha256:1ef52e2fb3ecc295139737d3d759f85d962ef7278c6990c3bd9c17fcb82508d6"},
 ]
 
 [package.dependencies]
 asn1crypto = ">0.24.0,<2.0.0"
-boto3 = ">=1.0"
-botocore = ">=1.0"
+boto3 = ">=1.24"
+botocore = ">=1.24"
 certifi = ">=2017.4.17"
 cffi = ">=1.9,<2.0.0"
 charset_normalizer = ">=2,<4"
@@ -2036,4 +2036,4 @@ type = ["pytest-mypy"]
 [metadata]
 lock-version = "2.1"
 python-versions = ">=3.9"
-content-hash = "638571a34d8334c5fd140cbe22d8b7498319a7e24c85a2ec1e069467ac493c37"
+content-hash = "baaa23b89272a774e89922486349d64b78f485129ef9d050147d4b154aeecf2d"
diff --git a/pyproject.toml b/pyproject.toml
index 465f6df..1665897 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -19,7 +19,7 @@ python = ">=3.9"
 certifi = "2025.1.31"  # See https://github.com/certifi/python-certifi/issues/349
 cryptography = ">=40"
 snowflake-sqlalchemy = "==1.7.3"
-snowflake-connector-python = { version = "<4.0.0", extras = ["secure-local-storage"] }
+snowflake-connector-python = { version = "~=3.15", extras = ["secure-local-storage"] }
 sqlalchemy = "~=2.0.31"
 
 [tool.poetry.dependencies.singer-sdk]


Reviews:
user: login: edgarrmondragon
state: APPROVED
author_association: MEMBER
submitted_at: 2025-04-29T01:52:54Z
user: login: edgarrmondragon
body: `cryptography` was removed as a dependency. We should make sure it's really not needed before merging this.
state: CHANGES_REQUESTED
author_association: MEMBER
submitted_at: 2025-04-29T01:58:41Z
user: login: edgarrmondragon
state: APPROVED
author_association: MEMBER
submitted_at: 2025-04-29T02:03:09Z
user: login: ReubenFrankel
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-29T02:13:54Z
user: login: edgarrmondragon
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-29T02:44:41Z

Review comments:
diff_hunk: @@ -19,7 +19,7 @@ python = ">=3.9"
 certifi = "2025.1.31"  # See https://github.com/certifi/python-certifi/issues/349
 cryptography = ">=40"
 snowflake-sqlalchemy = "==1.7.3"
-snowflake-connector-python = { version = "<4.0.0", extras = ["secure-local-storage"] }
+snowflake-connector-python = { version = "~=3.15.0", extras = ["secure-local-storage"] }
path: pyproject.toml
user: login: ReubenFrankel
body: Won't this now only accept patch version changes i.e. `3.15.*`?

```suggestion
snowflake-connector-python = { version = "~=3.15", extras = ["secure-local-storage"] }
```
created_at: 2025-04-29T02:13:54Z
author_association: CONTRIBUTOR
diff_hunk: @@ -19,7 +19,7 @@ python = ">=3.9"
 certifi = "2025.1.31"  # See https://github.com/certifi/python-certifi/issues/349
 cryptography = ">=40"
 snowflake-sqlalchemy = "==1.7.3"
-snowflake-connector-python = { version = "<4.0.0", extras = ["secure-local-storage"] }
+snowflake-connector-python = { version = "~=3.15.0", extras = ["secure-local-storage"] }
path: pyproject.toml
user: login: edgarrmondragon
body: I guess it's a balance between stability and flexibility.
created_at: 2025-04-29T02:44:40Z
author_association: MEMBER

PR comments:
user: login: ReubenFrankel
created_at: 2025-04-29T02:03:15Z
body: Should this not also be applied in the `pyproject.toml`?

```toml
snowflake-connector-python = { version = "~=3.15", extras = ["secure-local-storage"] }
```
author_association: CONTRIBUTOR
user: login: ReubenFrankel
created_at: 2025-04-29T02:04:13Z
body: > Should this not also be applied in the `pyproject.toml`?
> 
> ```toml
> snowflake-connector-python = { version = "~=3.15", extras = ["secure-local-storage"] }
> ```

Never mind, I see you already did.
author_association: CONTRIBUTOR