elaunira-airflow-provider-r2index 0.2.0__py3-none-any.whl → 0.2.2__py3-none-any.whl

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.
@@ -25,7 +25,7 @@ class R2IndexHook(BaseHook):
25
25
  {
26
26
  "vault_conn_id": "openbao_default",
27
27
  "vault_namespace": "elaunira/production",
28
- "vault_secrets": {
28
+ "vault_secrets_mapping": {
29
29
  "r2index_api_url": "cloudflare/r2index#api-url",
30
30
  "r2index_api_token": "cloudflare/r2index#api-token",
31
31
  "r2_access_key_id": "cloudflare/r2/airflow#access-key-id",
@@ -37,7 +37,7 @@ class R2IndexHook(BaseHook):
37
37
  The vault_conn_id references an Airflow HashiCorp Vault connection
38
38
  configured with AppRole or other auth method.
39
39
 
40
- vault_secrets format: "path#key" or "path" (uses config key as secret key)
40
+ vault_secrets_mapping format: "path#key" or "path" (uses config key as secret key)
41
41
  Required keys:
42
42
  - r2index_api_url
43
43
  - r2index_api_token
@@ -87,7 +87,7 @@ class R2IndexHook(BaseHook):
87
87
  "password": "API token for direct connection",
88
88
  "vault_conn_id": "openbao-myservice",
89
89
  "vault_namespace": "myservice/production",
90
- "vault_secrets": '{"r2index_api_url": "cloudflare/r2index#api-url", ...}',
90
+ "vault_secrets_mapping": '{"r2index_api_url": "cloudflare/r2index#api-url", ...}',
91
91
  "r2_access_key_id": "Direct mode: R2 access key ID",
92
92
  "r2_secret_access_key": "Direct mode: R2 secret access key",
93
93
  "r2_endpoint_url": "https://account.r2.cloudflarestorage.com",
@@ -97,13 +97,9 @@ class R2IndexHook(BaseHook):
97
97
  @classmethod
98
98
  def get_connection_form_widgets(cls) -> dict[str, Any]:
99
99
  """Define custom connection form widgets."""
100
- from flask_appbuilder.fieldwidgets import (
101
- BS3PasswordFieldWidget,
102
- BS3TextAreaFieldWidget,
103
- BS3TextFieldWidget,
104
- )
100
+ from flask_appbuilder.fieldwidgets import BS3PasswordFieldWidget, BS3TextFieldWidget
105
101
  from flask_babel import lazy_gettext
106
- from wtforms import PasswordField, StringField, TextAreaField
102
+ from wtforms import PasswordField, StringField
107
103
 
108
104
  return {
109
105
  "vault_conn_id": StringField(
@@ -116,9 +112,9 @@ class R2IndexHook(BaseHook):
116
112
  widget=BS3TextFieldWidget(),
117
113
  description="OpenBao namespace (e.g., elaunira/production)",
118
114
  ),
119
- "vault_secrets": TextAreaField(
115
+ "vault_secrets_mapping": StringField(
120
116
  lazy_gettext("Vault Secrets (JSON)"),
121
- widget=BS3TextAreaFieldWidget(),
117
+ widget=BS3TextFieldWidget(),
122
118
  description="JSON mapping of config keys to secret paths",
123
119
  ),
124
120
  "r2_access_key_id": StringField(
@@ -217,7 +213,7 @@ class R2IndexHook(BaseHook):
217
213
 
218
214
  vault_conn_id = extra.get("vault_conn_id")
219
215
  if vault_conn_id:
220
- secrets_raw = extra.get("vault_secrets")
216
+ secrets_raw = extra.get("vault_secrets_mapping")
221
217
  if not secrets_raw:
222
218
  return None
223
219
  if isinstance(secrets_raw, str):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: elaunira-airflow-provider-r2index
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Airflow provider for Elaunira R2Index connections
5
5
  Project-URL: Repository, https://github.com/elaunira/elaunira-airflow-provider-r2index
6
6
  License-Expression: MIT
@@ -3,9 +3,9 @@ elaunira/airflow/__init__.py,sha256=joy3454dE9nG4_TL4Mh2gw-m2pm-3PijpWpfpTR6nmQ,
3
3
  elaunira/airflow/provider/__init__.py,sha256=zapSJV1rJS7wCpkwklwtIgm-H65A93dulwXGgmArN3M,51
4
4
  elaunira/airflow/provider/r2index/__init__.py,sha256=9JI0sdPmX6Z1pgNM03O_dWFsglzYxbJfR5NCKiupvg0,638
5
5
  elaunira/airflow/provider/r2index/hooks/__init__.py,sha256=fLCw13d7Z61tf2qhKdNiJN3KdhwE4PDF3SyEZaf2PfU,130
6
- elaunira/airflow/provider/r2index/hooks/r2index.py,sha256=KLVE3ElILcUhRbHICPz6p3pcqlriE5QldtSFeivjkZE,12543
7
- elaunira_airflow_provider_r2index-0.2.0.dist-info/METADATA,sha256=KBP7tfnMOWXz1qp0-cKiEhz7vnWcPriLvNCNa3cwUtk,380
8
- elaunira_airflow_provider_r2index-0.2.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
9
- elaunira_airflow_provider_r2index-0.2.0.dist-info/entry_points.txt,sha256=LHYlCOo_WbImlAdr1JvsogvEQsKPJwRe68cCA_Ne9A0,94
10
- elaunira_airflow_provider_r2index-0.2.0.dist-info/licenses/LICENSE,sha256=lEpO3lmi57nowVFEMLFKL7oMBgLPDi5xB4eVIcCf_KQ,1065
11
- elaunira_airflow_provider_r2index-0.2.0.dist-info/RECORD,,
6
+ elaunira/airflow/provider/r2index/hooks/r2index.py,sha256=MxwNCTgPSkuDRJ6qmX8TLtcrsnfij7_RcK8h8kuO0bE,12489
7
+ elaunira_airflow_provider_r2index-0.2.2.dist-info/METADATA,sha256=cVxeI27z0pIDiLt_ht_GZ8k1cFKYMTH11kNarcaPFmk,380
8
+ elaunira_airflow_provider_r2index-0.2.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
9
+ elaunira_airflow_provider_r2index-0.2.2.dist-info/entry_points.txt,sha256=LHYlCOo_WbImlAdr1JvsogvEQsKPJwRe68cCA_Ne9A0,94
10
+ elaunira_airflow_provider_r2index-0.2.2.dist-info/licenses/LICENSE,sha256=lEpO3lmi57nowVFEMLFKL7oMBgLPDi5xB4eVIcCf_KQ,1065
11
+ elaunira_airflow_provider_r2index-0.2.2.dist-info/RECORD,,