elaunira-airflow-provider-r2index 0.3.1__tar.gz → 0.3.3__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.
Files changed (17) hide show
  1. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/PKG-INFO +1 -1
  2. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/pyproject.toml +1 -1
  3. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/src/elaunira/airflow/provider/r2index/hooks/r2index.py +12 -4
  4. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/.gitignore +0 -0
  5. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/LICENSE +0 -0
  6. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/README.md +0 -0
  7. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/src/elaunira/__init__.py +0 -0
  8. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/src/elaunira/airflow/__init__.py +0 -0
  9. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/src/elaunira/airflow/provider/__init__.py +0 -0
  10. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/src/elaunira/airflow/provider/r2index/__init__.py +0 -0
  11. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/src/elaunira/airflow/provider/r2index/decorators/__init__.py +0 -0
  12. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/src/elaunira/airflow/provider/r2index/decorators/r2index.py +0 -0
  13. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/src/elaunira/airflow/provider/r2index/hooks/__init__.py +0 -0
  14. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/src/elaunira/airflow/provider/r2index/links/__init__.py +0 -0
  15. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/src/elaunira/airflow/provider/r2index/links/r2index.py +0 -0
  16. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/src/elaunira/airflow/provider/r2index/operators/__init__.py +0 -0
  17. {elaunira_airflow_provider_r2index-0.3.1 → elaunira_airflow_provider_r2index-0.3.3}/src/elaunira/airflow/provider/r2index/operators/r2index.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: elaunira-airflow-provider-r2index
3
- Version: 0.3.1
3
+ Version: 0.3.3
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
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "elaunira-airflow-provider-r2index"
7
- version = "0.3.1"
7
+ version = "0.3.3"
8
8
  description = "Airflow provider for Elaunira R2Index connections"
9
9
  requires-python = ">=3.12"
10
10
  license = "MIT"
@@ -175,7 +175,8 @@ class R2IndexHook(BaseHook):
175
175
  from airflow.providers.hashicorp.hooks.vault import VaultHook
176
176
 
177
177
  try:
178
- vault_hook = VaultHook(vault_conn_id=vault_conn_id, vault_namespace=namespace)
178
+ # Note: namespace should be configured in the Vault connection's extra field
179
+ vault_hook = VaultHook(vault_conn_id=vault_conn_id)
179
180
  secret_cache: dict[str, dict[str, Any]] = {}
180
181
 
181
182
  def get_secret_value(config_key: str) -> str | None:
@@ -191,14 +192,20 @@ class R2IndexHook(BaseHook):
191
192
 
192
193
  return secret_cache[path].get(key)
193
194
 
194
- return {
195
+ config = {
195
196
  "index_api_url": get_secret_value("r2index_api_url"),
196
197
  "index_api_token": get_secret_value("r2index_api_token"),
197
198
  "r2_access_key_id": get_secret_value("r2_access_key_id"),
198
199
  "r2_secret_access_key": get_secret_value("r2_secret_access_key"),
199
200
  "r2_endpoint_url": get_secret_value("r2_endpoint_url"),
200
201
  }
201
- except Exception:
202
+ # Log which values are missing
203
+ missing = [k for k, v in config.items() if v is None]
204
+ if missing:
205
+ self.log.warning("Missing Vault secrets: %s", missing)
206
+ return config
207
+ except Exception as e:
208
+ self.log.error("Failed to get config from Vault: %s", e)
202
209
  return None
203
210
 
204
211
  def _get_config_from_connection(self) -> dict[str, str | None] | None:
@@ -233,7 +240,8 @@ class R2IndexHook(BaseHook):
233
240
  "r2_secret_access_key": extra.get("r2_secret_access_key"),
234
241
  "r2_endpoint_url": extra.get("r2_endpoint_url"),
235
242
  }
236
- except Exception:
243
+ except Exception as e:
244
+ self.log.error("Failed to get config from connection: %s", e)
237
245
  return None
238
246
 
239
247
  def get_conn(self) -> R2IndexClient: