apache-airflow-providers-hashicorp 4.0.0rc2__tar.gz → 4.1.0rc1__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.
- {apache_airflow_providers_hashicorp-4.0.0rc2 → apache_airflow_providers_hashicorp-4.1.0rc1}/PKG-INFO +11 -29
- {apache_airflow_providers_hashicorp-4.0.0rc2 → apache_airflow_providers_hashicorp-4.1.0rc1}/README.rst +6 -25
- {apache_airflow_providers_hashicorp-4.0.0rc2 → apache_airflow_providers_hashicorp-4.1.0rc1}/pyproject.toml +41 -15
- {apache_airflow_providers_hashicorp-4.0.0rc2 → apache_airflow_providers_hashicorp-4.1.0rc1/src}/airflow/providers/hashicorp/LICENSE +0 -52
- {apache_airflow_providers_hashicorp-4.0.0rc2 → apache_airflow_providers_hashicorp-4.1.0rc1/src}/airflow/providers/hashicorp/__init__.py +1 -1
- {apache_airflow_providers_hashicorp-4.0.0rc2 → apache_airflow_providers_hashicorp-4.1.0rc1/src}/airflow/providers/hashicorp/_internal_client/vault_client.py +10 -1
- {apache_airflow_providers_hashicorp-4.0.0rc2 → apache_airflow_providers_hashicorp-4.1.0rc1/src}/airflow/providers/hashicorp/get_provider_info.py +7 -6
- {apache_airflow_providers_hashicorp-4.0.0rc2 → apache_airflow_providers_hashicorp-4.1.0rc1/src}/airflow/providers/hashicorp/hooks/vault.py +6 -1
- {apache_airflow_providers_hashicorp-4.0.0rc2 → apache_airflow_providers_hashicorp-4.1.0rc1/src}/airflow/providers/hashicorp/secrets/vault.py +3 -0
- {apache_airflow_providers_hashicorp-4.0.0rc2 → apache_airflow_providers_hashicorp-4.1.0rc1/src}/airflow/providers/hashicorp/_internal_client/__init__.py +0 -0
- {apache_airflow_providers_hashicorp-4.0.0rc2 → apache_airflow_providers_hashicorp-4.1.0rc1/src}/airflow/providers/hashicorp/hooks/__init__.py +0 -0
- {apache_airflow_providers_hashicorp-4.0.0rc2 → apache_airflow_providers_hashicorp-4.1.0rc1/src}/airflow/providers/hashicorp/secrets/__init__.py +0 -0
{apache_airflow_providers_hashicorp-4.0.0rc2 → apache_airflow_providers_hashicorp-4.1.0rc1}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-hashicorp
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.1.0rc1
|
|
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.
|
|
29
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.
|
|
28
|
+
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.1.0/changelog.html
|
|
29
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.1.0
|
|
30
30
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
31
31
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
32
32
|
Project-URL: Twitter, https://x.com/ApacheAirflow
|
|
@@ -52,33 +52,14 @@ Provides-Extra: google
|
|
|
52
52
|
specific language governing permissions and limitations
|
|
53
53
|
under the License.
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
or more contributor license agreements. See the NOTICE file
|
|
57
|
-
distributed with this work for additional information
|
|
58
|
-
regarding copyright ownership. The ASF licenses this file
|
|
59
|
-
to you under the Apache License, Version 2.0 (the
|
|
60
|
-
"License"); you may not use this file except in compliance
|
|
61
|
-
with the License. You may obtain a copy of the License at
|
|
62
|
-
|
|
63
|
-
.. http://www.apache.org/licenses/LICENSE-2.0
|
|
64
|
-
|
|
65
|
-
.. Unless required by applicable law or agreed to in writing,
|
|
66
|
-
software distributed under the License is distributed on an
|
|
67
|
-
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
68
|
-
KIND, either express or implied. See the License for the
|
|
69
|
-
specific language governing permissions and limitations
|
|
70
|
-
under the License.
|
|
71
|
-
|
|
72
|
-
.. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
|
|
73
|
-
OVERWRITTEN WHEN PREPARING PACKAGES.
|
|
74
|
-
|
|
75
|
-
.. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
|
|
76
|
-
`PROVIDER_README_TEMPLATE.rst.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
|
|
55
|
+
.. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
|
|
77
56
|
|
|
57
|
+
.. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
|
|
58
|
+
``PROVIDER_README_TEMPLATE.rst.jinja2`` IN the ``dev/breeze/src/airflow_breeze/templates`` DIRECTORY
|
|
78
59
|
|
|
79
60
|
Package ``apache-airflow-providers-hashicorp``
|
|
80
61
|
|
|
81
|
-
Release: ``4.
|
|
62
|
+
Release: ``4.1.0``
|
|
82
63
|
|
|
83
64
|
|
|
84
65
|
Hashicorp including `Hashicorp Vault <https://www.vaultproject.io/>`__
|
|
@@ -91,7 +72,7 @@ This is a provider package for ``hashicorp`` provider. All classes for this prov
|
|
|
91
72
|
are in ``airflow.providers.hashicorp`` python package.
|
|
92
73
|
|
|
93
74
|
You can find package information and changelog for the provider
|
|
94
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.
|
|
75
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.1.0/>`_.
|
|
95
76
|
|
|
96
77
|
Installation
|
|
97
78
|
------------
|
|
@@ -132,4 +113,5 @@ Dependent package
|
|
|
132
113
|
==================================================================================================== ==========
|
|
133
114
|
|
|
134
115
|
The changelog for the provider package can be found in the
|
|
135
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.
|
|
116
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.1.0/changelog.html>`_.
|
|
117
|
+
|
|
@@ -16,33 +16,14 @@
|
|
|
16
16
|
specific language governing permissions and limitations
|
|
17
17
|
under the License.
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
or more contributor license agreements. See the NOTICE file
|
|
21
|
-
distributed with this work for additional information
|
|
22
|
-
regarding copyright ownership. The ASF licenses this file
|
|
23
|
-
to you under the Apache License, Version 2.0 (the
|
|
24
|
-
"License"); you may not use this file except in compliance
|
|
25
|
-
with the License. You may obtain a copy of the License at
|
|
26
|
-
|
|
27
|
-
.. http://www.apache.org/licenses/LICENSE-2.0
|
|
28
|
-
|
|
29
|
-
.. Unless required by applicable law or agreed to in writing,
|
|
30
|
-
software distributed under the License is distributed on an
|
|
31
|
-
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
32
|
-
KIND, either express or implied. See the License for the
|
|
33
|
-
specific language governing permissions and limitations
|
|
34
|
-
under the License.
|
|
35
|
-
|
|
36
|
-
.. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
|
|
37
|
-
OVERWRITTEN WHEN PREPARING PACKAGES.
|
|
38
|
-
|
|
39
|
-
.. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
|
|
40
|
-
`PROVIDER_README_TEMPLATE.rst.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
|
|
19
|
+
.. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
|
|
41
20
|
|
|
21
|
+
.. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
|
|
22
|
+
``PROVIDER_README_TEMPLATE.rst.jinja2`` IN the ``dev/breeze/src/airflow_breeze/templates`` DIRECTORY
|
|
42
23
|
|
|
43
24
|
Package ``apache-airflow-providers-hashicorp``
|
|
44
25
|
|
|
45
|
-
Release: ``4.
|
|
26
|
+
Release: ``4.1.0``
|
|
46
27
|
|
|
47
28
|
|
|
48
29
|
Hashicorp including `Hashicorp Vault <https://www.vaultproject.io/>`__
|
|
@@ -55,7 +36,7 @@ This is a provider package for ``hashicorp`` provider. All classes for this prov
|
|
|
55
36
|
are in ``airflow.providers.hashicorp`` python package.
|
|
56
37
|
|
|
57
38
|
You can find package information and changelog for the provider
|
|
58
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.1.0/>`_.
|
|
59
40
|
|
|
60
41
|
Installation
|
|
61
42
|
------------
|
|
@@ -96,4 +77,4 @@ Dependent package
|
|
|
96
77
|
==================================================================================================== ==========
|
|
97
78
|
|
|
98
79
|
The changelog for the provider package can be found in the
|
|
99
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.
|
|
80
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.1.0/changelog.html>`_.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
3
2
|
# or more contributor license agreements. See the NOTICE file
|
|
4
3
|
# distributed with this work for additional information
|
|
@@ -16,18 +15,17 @@
|
|
|
16
15
|
# specific language governing permissions and limitations
|
|
17
16
|
# under the License.
|
|
18
17
|
|
|
19
|
-
# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
|
|
20
|
-
# OVERWRITTEN WHEN PREPARING PACKAGES.
|
|
18
|
+
# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
|
|
21
19
|
|
|
22
|
-
# IF YOU WANT TO MODIFY THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
|
|
20
|
+
# IF YOU WANT TO MODIFY THIS FILE EXCEPT DEPENDENCIES, YOU SHOULD MODIFY THE TEMPLATE
|
|
23
21
|
# `pyproject_TEMPLATE.toml.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
|
|
24
22
|
[build-system]
|
|
25
|
-
requires = ["flit_core==3.
|
|
23
|
+
requires = ["flit_core==3.11.0"]
|
|
26
24
|
build-backend = "flit_core.buildapi"
|
|
27
25
|
|
|
28
26
|
[project]
|
|
29
27
|
name = "apache-airflow-providers-hashicorp"
|
|
30
|
-
version = "4.
|
|
28
|
+
version = "4.1.0.rc1"
|
|
31
29
|
description = "Provider package apache-airflow-providers-hashicorp for Apache Airflow"
|
|
32
30
|
readme = "README.rst"
|
|
33
31
|
authors = [
|
|
@@ -53,14 +51,49 @@ classifiers = [
|
|
|
53
51
|
"Topic :: System :: Monitoring",
|
|
54
52
|
]
|
|
55
53
|
requires-python = "~=3.9"
|
|
54
|
+
|
|
55
|
+
# The dependencies should be modified in place in the generated file.
|
|
56
|
+
# Any change in the dependencies is preserved when the file is regenerated
|
|
57
|
+
# Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
|
|
58
|
+
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
|
|
56
59
|
dependencies = [
|
|
57
60
|
"apache-airflow>=2.9.0rc0",
|
|
58
61
|
"hvac>=1.1.0",
|
|
59
62
|
]
|
|
60
63
|
|
|
64
|
+
# The optional dependencies should be modified in place in the generated file
|
|
65
|
+
# Any change in the dependencies is preserved when the file is regenerated
|
|
66
|
+
[project.optional-dependencies]
|
|
67
|
+
"boto3" = [
|
|
68
|
+
# Require for AWS assume role authentication
|
|
69
|
+
"boto3>=1.33.0",
|
|
70
|
+
]
|
|
71
|
+
"google" = [
|
|
72
|
+
"apache-airflow-providers-google"
|
|
73
|
+
]
|
|
74
|
+
|
|
75
|
+
[dependency-groups]
|
|
76
|
+
dev = [
|
|
77
|
+
"apache-airflow",
|
|
78
|
+
"apache-airflow-task-sdk",
|
|
79
|
+
"apache-airflow-devel-common",
|
|
80
|
+
"apache-airflow-providers-google",
|
|
81
|
+
# Additional devel dependencies (do not remove this line and add extra development dependencies)
|
|
82
|
+
]
|
|
83
|
+
|
|
84
|
+
[tool.uv.sources]
|
|
85
|
+
# These names must match the names as defined in the pyproject.toml of the workspace items,
|
|
86
|
+
# *not* the workspace folder paths
|
|
87
|
+
apache-airflow = {workspace = true}
|
|
88
|
+
apache-airflow-devel-common = {workspace = true}
|
|
89
|
+
apache-airflow-task-sdk = {workspace = true}
|
|
90
|
+
apache-airflow-providers-common-sql = {workspace = true}
|
|
91
|
+
apache-airflow-providers-fab = {workspace = true}
|
|
92
|
+
apache-airflow-providers-standard = {workspace = true}
|
|
93
|
+
|
|
61
94
|
[project.urls]
|
|
62
|
-
"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.
|
|
63
|
-
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.
|
|
95
|
+
"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.1.0"
|
|
96
|
+
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-hashicorp/4.1.0/changelog.html"
|
|
64
97
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
65
98
|
"Source Code" = "https://github.com/apache/airflow"
|
|
66
99
|
"Slack Chat" = "https://s.apache.org/airflow-slack"
|
|
@@ -69,13 +102,6 @@ dependencies = [
|
|
|
69
102
|
|
|
70
103
|
[project.entry-points."apache_airflow_provider"]
|
|
71
104
|
provider_info = "airflow.providers.hashicorp.get_provider_info:get_provider_info"
|
|
72
|
-
[project.optional-dependencies]
|
|
73
|
-
"google" = [
|
|
74
|
-
"apache-airflow-providers-google",
|
|
75
|
-
]
|
|
76
|
-
"boto3" = [
|
|
77
|
-
"boto3>=1.33.0",
|
|
78
|
-
]
|
|
79
105
|
|
|
80
106
|
[tool.flit.module]
|
|
81
107
|
name = "airflow.providers.hashicorp"
|
|
@@ -199,55 +199,3 @@ distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
199
199
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
200
200
|
See the License for the specific language governing permissions and
|
|
201
201
|
limitations under the License.
|
|
202
|
-
|
|
203
|
-
============================================================================
|
|
204
|
-
APACHE AIRFLOW SUBCOMPONENTS:
|
|
205
|
-
|
|
206
|
-
The Apache Airflow project contains subcomponents with separate copyright
|
|
207
|
-
notices and license terms. Your use of the source code for the these
|
|
208
|
-
subcomponents is subject to the terms and conditions of the following
|
|
209
|
-
licenses.
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
========================================================================
|
|
213
|
-
Third party Apache 2.0 licenses
|
|
214
|
-
========================================================================
|
|
215
|
-
|
|
216
|
-
The following components are provided under the Apache 2.0 License.
|
|
217
|
-
See project link for details. The text of each license is also included
|
|
218
|
-
at 3rd-party-licenses/LICENSE-[project].txt.
|
|
219
|
-
|
|
220
|
-
(ALv2 License) hue v4.3.0 (https://github.com/cloudera/hue/)
|
|
221
|
-
(ALv2 License) jqclock v2.3.0 (https://github.com/JohnRDOrazio/jQuery-Clock-Plugin)
|
|
222
|
-
(ALv2 License) bootstrap3-typeahead v4.0.2 (https://github.com/bassjobsen/Bootstrap-3-Typeahead)
|
|
223
|
-
(ALv2 License) connexion v2.7.0 (https://github.com/zalando/connexion)
|
|
224
|
-
|
|
225
|
-
========================================================================
|
|
226
|
-
MIT licenses
|
|
227
|
-
========================================================================
|
|
228
|
-
|
|
229
|
-
The following components are provided under the MIT License. See project link for details.
|
|
230
|
-
The text of each license is also included at 3rd-party-licenses/LICENSE-[project].txt.
|
|
231
|
-
|
|
232
|
-
(MIT License) jquery v3.5.1 (https://jquery.org/license/)
|
|
233
|
-
(MIT License) dagre-d3 v0.6.4 (https://github.com/cpettitt/dagre-d3)
|
|
234
|
-
(MIT License) bootstrap v3.4.1 (https://github.com/twbs/bootstrap/)
|
|
235
|
-
(MIT License) d3-tip v0.9.1 (https://github.com/Caged/d3-tip)
|
|
236
|
-
(MIT License) dataTables v1.10.25 (https://datatables.net)
|
|
237
|
-
(MIT License) normalize.css v3.0.2 (http://necolas.github.io/normalize.css/)
|
|
238
|
-
(MIT License) ElasticMock v1.3.2 (https://github.com/vrcmarcos/elasticmock)
|
|
239
|
-
(MIT License) MomentJS v2.24.0 (http://momentjs.com/)
|
|
240
|
-
(MIT License) eonasdan-bootstrap-datetimepicker v4.17.49 (https://github.com/eonasdan/bootstrap-datetimepicker/)
|
|
241
|
-
|
|
242
|
-
========================================================================
|
|
243
|
-
BSD 3-Clause licenses
|
|
244
|
-
========================================================================
|
|
245
|
-
The following components are provided under the BSD 3-Clause license. See project links for details.
|
|
246
|
-
The text of each license is also included at 3rd-party-licenses/LICENSE-[project].txt.
|
|
247
|
-
|
|
248
|
-
(BSD 3 License) d3 v5.16.0 (https://d3js.org)
|
|
249
|
-
(BSD 3 License) d3-shape v2.1.0 (https://github.com/d3/d3-shape)
|
|
250
|
-
(BSD 3 License) cgroupspy 0.2.1 (https://github.com/cloudsigma/cgroupspy)
|
|
251
|
-
|
|
252
|
-
========================================================================
|
|
253
|
-
See 3rd-party-licenses/LICENSES-ui.txt for packages used in `/airflow/www`
|
|
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
|
|
|
29
29
|
|
|
30
30
|
__all__ = ["__version__"]
|
|
31
31
|
|
|
32
|
-
__version__ = "4.
|
|
32
|
+
__version__ = "4.1.0"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
35
|
"2.9.0"
|
|
@@ -77,6 +77,8 @@ class _VaultClient(LoggingMixin):
|
|
|
77
77
|
:param assume_role_kwargs: AWS assume role param.
|
|
78
78
|
See AWS STS Docs:
|
|
79
79
|
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sts/client/assume_role.html
|
|
80
|
+
:param region: AWS region for STS API calls. Inferred from the boto3 client configuration if not provided
|
|
81
|
+
(for ``aws_iam`` auth_type).
|
|
80
82
|
:param kubernetes_role: Role for Authentication (for ``kubernetes`` auth_type).
|
|
81
83
|
:param kubernetes_jwt_path: Path for kubernetes jwt token (for ``kubernetes`` auth_type, default:
|
|
82
84
|
``/var/run/secrets/kubernetes.io/serviceaccount/token``).
|
|
@@ -108,6 +110,7 @@ class _VaultClient(LoggingMixin):
|
|
|
108
110
|
secret_id: str | None = None,
|
|
109
111
|
assume_role_kwargs: dict | None = None,
|
|
110
112
|
role_id: str | None = None,
|
|
113
|
+
region: str | None = None,
|
|
111
114
|
kubernetes_role: str | None = None,
|
|
112
115
|
kubernetes_jwt_path: str | None = "/var/run/secrets/kubernetes.io/serviceaccount/token",
|
|
113
116
|
gcp_key_path: str | None = None,
|
|
@@ -166,6 +169,7 @@ class _VaultClient(LoggingMixin):
|
|
|
166
169
|
self.secret_id = secret_id
|
|
167
170
|
self.role_id = role_id
|
|
168
171
|
self.assume_role_kwargs = assume_role_kwargs
|
|
172
|
+
self.region = region
|
|
169
173
|
self.kubernetes_role = kubernetes_role
|
|
170
174
|
self.kubernetes_jwt_path = kubernetes_jwt_path
|
|
171
175
|
self.gcp_key_path = gcp_key_path
|
|
@@ -329,7 +333,6 @@ class _VaultClient(LoggingMixin):
|
|
|
329
333
|
auth_args = {
|
|
330
334
|
"access_key": self.key_id,
|
|
331
335
|
"secret_key": self.secret_id,
|
|
332
|
-
"role": self.role_id,
|
|
333
336
|
}
|
|
334
337
|
else:
|
|
335
338
|
import boto3
|
|
@@ -341,6 +344,7 @@ class _VaultClient(LoggingMixin):
|
|
|
341
344
|
"access_key": credentials["Credentials"]["AccessKeyId"],
|
|
342
345
|
"secret_key": credentials["Credentials"]["SecretAccessKey"],
|
|
343
346
|
"session_token": credentials["Credentials"]["SessionToken"],
|
|
347
|
+
"region": sts_client.meta.region_name,
|
|
344
348
|
}
|
|
345
349
|
else:
|
|
346
350
|
session = boto3.Session()
|
|
@@ -349,10 +353,15 @@ class _VaultClient(LoggingMixin):
|
|
|
349
353
|
"access_key": credentials.access_key,
|
|
350
354
|
"secret_key": credentials.secret_key,
|
|
351
355
|
"session_token": credentials.token,
|
|
356
|
+
"region": session.region_name,
|
|
352
357
|
}
|
|
353
358
|
|
|
354
359
|
if self.auth_mount_point:
|
|
355
360
|
auth_args["mount_point"] = self.auth_mount_point
|
|
361
|
+
if self.region:
|
|
362
|
+
auth_args["region"] = self.region
|
|
363
|
+
if self.role_id:
|
|
364
|
+
auth_args["role"] = self.role_id
|
|
356
365
|
|
|
357
366
|
_client.auth.aws.iam_login(**auth_args)
|
|
358
367
|
|
|
@@ -15,8 +15,7 @@
|
|
|
15
15
|
# specific language governing permissions and limitations
|
|
16
16
|
# under the License.
|
|
17
17
|
|
|
18
|
-
# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
|
|
19
|
-
# OVERWRITTEN WHEN PREPARING PACKAGES.
|
|
18
|
+
# NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
|
|
20
19
|
#
|
|
21
20
|
# IF YOU WANT TO MODIFY THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
|
|
22
21
|
# `get_provider_info_TEMPLATE.py.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
|
|
@@ -28,8 +27,9 @@ def get_provider_info():
|
|
|
28
27
|
"name": "Hashicorp",
|
|
29
28
|
"description": "Hashicorp including `Hashicorp Vault <https://www.vaultproject.io/>`__\n",
|
|
30
29
|
"state": "ready",
|
|
31
|
-
"source-date-epoch":
|
|
30
|
+
"source-date-epoch": 1741508899,
|
|
32
31
|
"versions": [
|
|
32
|
+
"4.1.0",
|
|
33
33
|
"4.0.0",
|
|
34
34
|
"3.8.0",
|
|
35
35
|
"3.7.1",
|
|
@@ -61,12 +61,11 @@ def get_provider_info():
|
|
|
61
61
|
"1.0.1",
|
|
62
62
|
"1.0.0",
|
|
63
63
|
],
|
|
64
|
-
"dependencies": ["apache-airflow>=2.9.0", "hvac>=1.1.0"],
|
|
65
64
|
"integrations": [
|
|
66
65
|
{
|
|
67
66
|
"integration-name": "Hashicorp Vault",
|
|
68
67
|
"external-doc-url": "https://www.vaultproject.io/",
|
|
69
|
-
"logo": "/integration-logos/
|
|
68
|
+
"logo": "/docs/integration-logos/Hashicorp-Vault.png",
|
|
70
69
|
"tags": ["software"],
|
|
71
70
|
}
|
|
72
71
|
],
|
|
@@ -83,5 +82,7 @@ def get_provider_info():
|
|
|
83
82
|
}
|
|
84
83
|
],
|
|
85
84
|
"secrets-backends": ["airflow.providers.hashicorp.secrets.vault.VaultBackend"],
|
|
86
|
-
"
|
|
85
|
+
"dependencies": ["apache-airflow>=2.9.0", "hvac>=1.1.0"],
|
|
86
|
+
"optional-dependencies": {"boto3": ["boto3>=1.33.0"], "google": ["apache-airflow-providers-google"]},
|
|
87
|
+
"devel-dependencies": [],
|
|
87
88
|
}
|
|
@@ -85,6 +85,7 @@ class VaultHook(BaseHook):
|
|
|
85
85
|
:param kv_engine_version: Select the version of the engine to run (``1`` or ``2``). Defaults to
|
|
86
86
|
version defined in connection or ``2`` if not defined in connection.
|
|
87
87
|
:param role_id: Role ID for ``aws_iam`` Authentication.
|
|
88
|
+
:param region: AWS region for STS API calls (for ``aws_iam`` auth_type).
|
|
88
89
|
:param kubernetes_role: Role for Authentication (for ``kubernetes`` auth_type)
|
|
89
90
|
:param kubernetes_jwt_path: Path for kubernetes jwt token (for ``kubernetes`` auth_type, default:
|
|
90
91
|
``/var/run/secrets/kubernetes.io/serviceaccount/token``)
|
|
@@ -113,6 +114,7 @@ class VaultHook(BaseHook):
|
|
|
113
114
|
auth_mount_point: str | None = None,
|
|
114
115
|
kv_engine_version: int | None = None,
|
|
115
116
|
role_id: str | None = None,
|
|
117
|
+
region: str | None = None,
|
|
116
118
|
kubernetes_role: str | None = None,
|
|
117
119
|
kubernetes_jwt_path: str | None = None,
|
|
118
120
|
token_path: str | None = None,
|
|
@@ -151,6 +153,8 @@ class VaultHook(BaseHook):
|
|
|
151
153
|
if auth_type == "aws_iam":
|
|
152
154
|
if not role_id:
|
|
153
155
|
role_id = self.connection.extra_dejson.get("role_id")
|
|
156
|
+
if not region:
|
|
157
|
+
region = self.connection.extra_dejson.get("region")
|
|
154
158
|
|
|
155
159
|
azure_resource, azure_tenant_id = (
|
|
156
160
|
self._get_azure_parameters_from_connection(azure_resource, azure_tenant_id)
|
|
@@ -210,6 +214,7 @@ class VaultHook(BaseHook):
|
|
|
210
214
|
key_id=self.connection.login,
|
|
211
215
|
secret_id=self.connection.password,
|
|
212
216
|
role_id=role_id,
|
|
217
|
+
region=region,
|
|
213
218
|
kubernetes_role=kubernetes_role,
|
|
214
219
|
kubernetes_jwt_path=kubernetes_jwt_path,
|
|
215
220
|
gcp_key_path=gcp_key_path,
|
|
@@ -226,7 +231,7 @@ class VaultHook(BaseHook):
|
|
|
226
231
|
|
|
227
232
|
def _get_kubernetes_parameters_from_connection(
|
|
228
233
|
self, kubernetes_jwt_path: str | None, kubernetes_role: str | None
|
|
229
|
-
) -> tuple[str, str | None]:
|
|
234
|
+
) -> tuple[str | None, str | None]:
|
|
230
235
|
if not kubernetes_jwt_path:
|
|
231
236
|
kubernetes_jwt_path = self.connection.extra_dejson.get("kubernetes_jwt_path")
|
|
232
237
|
if not kubernetes_jwt_path:
|
|
@@ -74,6 +74,7 @@ class VaultBackend(BaseSecretsBackend, LoggingMixin):
|
|
|
74
74
|
:param assume_role_kwargs: AWS assume role param.
|
|
75
75
|
See AWS STS Docs:
|
|
76
76
|
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sts/client/assume_role.html
|
|
77
|
+
:param region: AWS region for STS API calls (for ``aws_iam`` auth_type).
|
|
77
78
|
:param kubernetes_role: Role for Authentication (for ``kubernetes`` auth_type).
|
|
78
79
|
:param kubernetes_jwt_path: Path for kubernetes jwt token (for ``kubernetes`` auth_type, default:
|
|
79
80
|
``/var/run/secrets/kubernetes.io/serviceaccount/token``).
|
|
@@ -108,6 +109,7 @@ class VaultBackend(BaseSecretsBackend, LoggingMixin):
|
|
|
108
109
|
secret_id: str | None = None,
|
|
109
110
|
role_id: str | None = None,
|
|
110
111
|
assume_role_kwargs: dict | None = None,
|
|
112
|
+
region: str | None = None,
|
|
111
113
|
kubernetes_role: str | None = None,
|
|
112
114
|
kubernetes_jwt_path: str = "/var/run/secrets/kubernetes.io/serviceaccount/token",
|
|
113
115
|
gcp_key_path: str | None = None,
|
|
@@ -149,6 +151,7 @@ class VaultBackend(BaseSecretsBackend, LoggingMixin):
|
|
|
149
151
|
secret_id=secret_id,
|
|
150
152
|
role_id=role_id,
|
|
151
153
|
assume_role_kwargs=assume_role_kwargs,
|
|
154
|
+
region=region,
|
|
152
155
|
kubernetes_role=kubernetes_role,
|
|
153
156
|
kubernetes_jwt_path=kubernetes_jwt_path,
|
|
154
157
|
gcp_key_path=gcp_key_path,
|
|
File without changes
|
|
File without changes
|