apache-airflow-providers-hashicorp 4.2.0__tar.gz → 4.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of apache-airflow-providers-hashicorp might be problematic. Click here for more details.

Files changed (35) hide show
  1. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/PKG-INFO +6 -6
  2. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/README.rst +3 -3
  3. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/docs/changelog.rst +16 -0
  4. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/docs/index.rst +3 -3
  5. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/docs/secrets-backends/hashicorp-vault.rst +1 -1
  6. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/provider.yaml +2 -1
  7. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/pyproject.toml +3 -3
  8. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/src/airflow/providers/hashicorp/__init__.py +1 -1
  9. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/src/airflow/providers/hashicorp/_internal_client/vault_client.py +4 -2
  10. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/tests/unit/hashicorp/_internal_client/test_vault_client.py +70 -0
  11. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/docs/.latest-doc-only-change.txt +0 -0
  12. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/docs/commits.rst +0 -0
  13. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/docs/conf.py +0 -0
  14. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/docs/connections/vault.rst +0 -0
  15. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/docs/installing-providers-from-sources.rst +0 -0
  16. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/docs/integration-logos/Hashicorp-Vault.png +0 -0
  17. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/docs/redirects.txt +0 -0
  18. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/docs/security.rst +0 -0
  19. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/src/airflow/__init__.py +0 -0
  20. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/src/airflow/providers/__init__.py +0 -0
  21. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/src/airflow/providers/hashicorp/LICENSE +0 -0
  22. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/src/airflow/providers/hashicorp/_internal_client/__init__.py +0 -0
  23. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/src/airflow/providers/hashicorp/get_provider_info.py +0 -0
  24. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/src/airflow/providers/hashicorp/hooks/__init__.py +0 -0
  25. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/src/airflow/providers/hashicorp/hooks/vault.py +0 -0
  26. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/src/airflow/providers/hashicorp/secrets/__init__.py +0 -0
  27. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/src/airflow/providers/hashicorp/secrets/vault.py +0 -0
  28. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/tests/conftest.py +0 -0
  29. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/tests/unit/__init__.py +0 -0
  30. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/tests/unit/hashicorp/__init__.py +0 -0
  31. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/tests/unit/hashicorp/_internal_client/__init__.py +0 -0
  32. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/tests/unit/hashicorp/hooks/__init__.py +0 -0
  33. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/tests/unit/hashicorp/hooks/test_vault.py +0 -0
  34. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/tests/unit/hashicorp/secrets/__init__.py +0 -0
  35. {apache_airflow_providers_hashicorp-4.2.0 → apache_airflow_providers_hashicorp-4.3.0}/tests/unit/hashicorp/secrets/test_vault.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-hashicorp
3
- Version: 4.2.0
3
+ Version: 4.3.0
4
4
  Summary: Provider package apache-airflow-providers-hashicorp for Apache Airflow
5
5
  Keywords: airflow-provider,hashicorp,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
@@ -25,8 +25,8 @@ Requires-Dist: hvac>=1.1.0
25
25
  Requires-Dist: boto3>=1.33.0 ; extra == "boto3"
26
26
  Requires-Dist: apache-airflow-providers-google ; extra == "google"
27
27
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
28
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.2.0/changelog.html
29
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.2.0
28
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.3.0/changelog.html
29
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.3.0
30
30
  Project-URL: Mastodon, https://fosstodon.org/@airflow
31
31
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
32
32
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -59,7 +59,7 @@ Provides-Extra: google
59
59
 
60
60
  Package ``apache-airflow-providers-hashicorp``
61
61
 
62
- Release: ``4.2.0``
62
+ Release: ``4.3.0``
63
63
 
64
64
 
65
65
  Hashicorp including `Hashicorp Vault <https://www.vaultproject.io/>`__
@@ -72,7 +72,7 @@ This is a provider package for ``hashicorp`` provider. All classes for this prov
72
72
  are in ``airflow.providers.hashicorp`` python package.
73
73
 
74
74
  You can find package information and changelog for the provider
75
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.2.0/>`_.
75
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.3.0/>`_.
76
76
 
77
77
  Installation
78
78
  ------------
@@ -113,5 +113,5 @@ Dependent package
113
113
  ==================================================================================================== ==========
114
114
 
115
115
  The changelog for the provider package can be found in the
116
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.2.0/changelog.html>`_.
116
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.3.0/changelog.html>`_.
117
117
 
@@ -23,7 +23,7 @@
23
23
 
24
24
  Package ``apache-airflow-providers-hashicorp``
25
25
 
26
- Release: ``4.2.0``
26
+ Release: ``4.3.0``
27
27
 
28
28
 
29
29
  Hashicorp including `Hashicorp Vault <https://www.vaultproject.io/>`__
@@ -36,7 +36,7 @@ This is a provider package for ``hashicorp`` provider. All classes for this prov
36
36
  are in ``airflow.providers.hashicorp`` python package.
37
37
 
38
38
  You can find package information and changelog for the provider
39
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.2.0/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.3.0/>`_.
40
40
 
41
41
  Installation
42
42
  ------------
@@ -77,4 +77,4 @@ Dependent package
77
77
  ==================================================================================================== ==========
78
78
 
79
79
  The changelog for the provider package can be found in the
80
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.2.0/changelog.html>`_.
80
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.3.0/changelog.html>`_.
@@ -27,6 +27,22 @@
27
27
  Changelog
28
28
  ---------
29
29
 
30
+ 4.3.0
31
+ .....
32
+
33
+ Features
34
+ ~~~~~~~~
35
+
36
+ * ``Support cert and proxies in Vault client session setup (#49906)``
37
+
38
+ Doc-only
39
+ ~~~~~~~~
40
+
41
+ * ``docs: Add missing RoleArn in aws authentication section (#51474)``
42
+
43
+ .. Below changes are excluded from the changelog. Move them to
44
+ appropriate section above if needed. Do not delete the lines(!):
45
+
30
46
  4.2.0
31
47
  .....
32
48
 
@@ -69,7 +69,7 @@ apache-airflow-providers-hashicorp package
69
69
  Hashicorp including `Hashicorp Vault <https://www.vaultproject.io/>`__
70
70
 
71
71
 
72
- Release: 4.2.0
72
+ Release: 4.3.0
73
73
 
74
74
  Provider package
75
75
  ----------------
@@ -121,5 +121,5 @@ Downloading official packages
121
121
  You can download officially released packages and verify their checksums and signatures from the
122
122
  `Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
123
123
 
124
- * `The apache-airflow-providers-hashicorp 4.2.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_hashicorp-4.2.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_hashicorp-4.2.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_hashicorp-4.2.0.tar.gz.sha512>`__)
125
- * `The apache-airflow-providers-hashicorp 4.2.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_hashicorp-4.2.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_hashicorp-4.2.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_hashicorp-4.2.0-py3-none-any.whl.sha512>`__)
124
+ * `The apache-airflow-providers-hashicorp 4.3.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_hashicorp-4.3.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_hashicorp-4.3.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_hashicorp-4.3.0.tar.gz.sha512>`__)
125
+ * `The apache-airflow-providers-hashicorp 4.3.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_hashicorp-4.3.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_hashicorp-4.3.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_hashicorp-4.3.0-py3-none-any.whl.sha512>`__)
@@ -228,7 +228,7 @@ For more details, please refer to the AWS Assume Role Authentication documentati
228
228
 
229
229
  [secrets]
230
230
  backend = airflow.providers.hashicorp.secrets.vault.VaultBackend
231
- backend_kwargs = {"connections_path": "airflow-connections", "variables_path": null, "mount_point": "airflow", "url": "http://127.0.0.1:8200", "auth_type": "aws_iam", "assume_role_kwargs": {"arn:aws:iam::123456789000:role/hashicorp-aws-iam-role", "RoleSessionName": "Airflow"}}
231
+ backend_kwargs = {"connections_path": "airflow-connections", "variables_path": null, "mount_point": "airflow", "url": "http://127.0.0.1:8200", "auth_type": "aws_iam", "assume_role_kwargs": {"RoleArn":"arn:aws:iam::123456789000:role/hashicorp-aws-iam-role", "RoleSessionName": "Airflow"}}
232
232
 
233
233
  Using multiple mount points
234
234
  """""""""""""""""""""""""""
@@ -22,12 +22,13 @@ description: |
22
22
  Hashicorp including `Hashicorp Vault <https://www.vaultproject.io/>`__
23
23
 
24
24
  state: ready
25
- source-date-epoch: 1747133024
25
+ source-date-epoch: 1749896774
26
26
  # Note that those versions are maintained by release manager - do not update them manually
27
27
  # with the exception of case where other provider in sources has >= new provider version.
28
28
  # In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider have
29
29
  # to be done in the same PR
30
30
  versions:
31
+ - 4.3.0
31
32
  - 4.2.0
32
33
  - 4.1.1
33
34
  - 4.1.0
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-hashicorp"
28
- version = "4.2.0"
28
+ version = "4.3.0"
29
29
  description = "Provider package apache-airflow-providers-hashicorp for Apache Airflow"
30
30
  readme = "README.rst"
31
31
  authors = [
@@ -107,8 +107,8 @@ apache-airflow-providers-common-sql = {workspace = true}
107
107
  apache-airflow-providers-standard = {workspace = true}
108
108
 
109
109
  [project.urls]
110
- "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.2.0"
111
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.2.0/changelog.html"
110
+ "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.3.0"
111
+ "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.3.0/changelog.html"
112
112
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
113
113
  "Source Code" = "https://github.com/apache/airflow"
114
114
  "Slack Chat" = "https://s.apache.org/airflow-slack"
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "4.2.0"
32
+ __version__ = "4.3.0"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.10.0"
@@ -215,8 +215,10 @@ class _VaultClient(LoggingMixin):
215
215
  session = Session()
216
216
  session.mount("http://", adapter)
217
217
  session.mount("https://", adapter)
218
- if self.kwargs and "verify" in self.kwargs:
219
- session.verify = self.kwargs["verify"]
218
+
219
+ session.verify = self.kwargs.get("verify", session.verify)
220
+ session.cert = self.kwargs.get("cert", session.cert)
221
+ session.proxies = self.kwargs.get("proxies", session.proxies)
220
222
  self.kwargs["session"] = session
221
223
 
222
224
  _client = hvac.Client(url=self.url, **self.kwargs)
@@ -925,6 +925,76 @@ class TestVaultClient:
925
925
  mount_point="secret", path="/path/to/secret"
926
926
  )
927
927
 
928
+ @mock.patch("airflow.providers.hashicorp._internal_client.vault_client.hvac")
929
+ def test_get_existing_key_v1_with_proxies_applied(self, mock_hvac):
930
+ mock_client = mock.MagicMock()
931
+ mock_hvac.Client.return_value = mock_client
932
+
933
+ mock_client.secrets.kv.v1.read_secret.return_value = {
934
+ "request_id": "182d0673-618c-9889-4cba-4e1f4cfe4b4b",
935
+ "lease_id": "",
936
+ "renewable": False,
937
+ "lease_duration": 2764800,
938
+ "data": {"value": "world"},
939
+ "wrap_info": None,
940
+ "warnings": None,
941
+ "auth": None,
942
+ }
943
+
944
+ vault_client = _VaultClient(
945
+ auth_type="radius",
946
+ radius_host="radhost",
947
+ radius_port=8110,
948
+ radius_secret="pass",
949
+ kv_engine_version=1,
950
+ url="http://localhost:8180",
951
+ verify=False,
952
+ proxies={
953
+ "http": "http://10.10.1.10:3128",
954
+ "https": "http://10.10.1.10:1080",
955
+ },
956
+ )
957
+ secret = vault_client.get_secret(secret_path="/path/to/secret")
958
+ assert secret == {"value": "world"}
959
+ assert vault_client.kwargs["session"].proxies["http"] == "http://10.10.1.10:3128"
960
+ assert vault_client.kwargs["session"].proxies["https"] == "http://10.10.1.10:1080"
961
+ mock_client.secrets.kv.v1.read_secret.assert_called_once_with(
962
+ mount_point="secret", path="/path/to/secret"
963
+ )
964
+
965
+ @mock.patch("airflow.providers.hashicorp._internal_client.vault_client.hvac")
966
+ def test_get_existing_key_v1_with_client_cert_applied(self, mock_hvac):
967
+ mock_client = mock.MagicMock()
968
+ mock_hvac.Client.return_value = mock_client
969
+
970
+ mock_client.secrets.kv.v1.read_secret.return_value = {
971
+ "request_id": "182d0673-618c-9889-4cba-4e1f4cfe4b4b",
972
+ "lease_id": "",
973
+ "renewable": False,
974
+ "lease_duration": 2764800,
975
+ "data": {"value": "world"},
976
+ "wrap_info": None,
977
+ "warnings": None,
978
+ "auth": None,
979
+ }
980
+
981
+ vault_client = _VaultClient(
982
+ auth_type="radius",
983
+ radius_host="radhost",
984
+ radius_port=8110,
985
+ radius_secret="pass",
986
+ kv_engine_version=1,
987
+ url="http://localhost:8180",
988
+ verify=False,
989
+ cert=("/path/client.cert", "/path/client.key"),
990
+ )
991
+ secret = vault_client.get_secret(secret_path="/path/to/secret")
992
+ assert secret == {"value": "world"}
993
+ assert vault_client.kwargs["session"].cert == ("/path/client.cert", "/path/client.key")
994
+ mock_client.secrets.kv.v1.read_secret.assert_called_once_with(
995
+ mount_point="secret", path="/path/to/secret"
996
+ )
997
+
928
998
  @mock.patch("airflow.providers.hashicorp._internal_client.vault_client.hvac")
929
999
  def test_get_existing_key_v1_without_preconfigured_mount_point(self, mock_hvac):
930
1000
  mock_client = mock.MagicMock()