baraka-akeyless opened a new pull request, #64754: URL: https://github.com/apache/airflow/pull/64754
## Summary Add a new community provider for [Akeyless Vault Platform](https://www.akeyless.io/) — a SaaS-based secrets management and zero-trust access platform. ### Components | Component | Class | Description | |---|---|---| | **Hook** | `AkeylessHook` | Interact with Akeyless — static, dynamic, and rotated secrets; item CRUD | | **Connection type** | `akeyless` | Custom UI fields for 8 authentication methods | | **Secrets Backend** | `AkeylessBackend` | Source Airflow Connections, Variables, and Config from Akeyless | ### Authentication methods supported API Key, AWS IAM, GCP, Azure AD, Universal Identity (UID), JWT/OIDC, Kubernetes, Certificate ### Hook capabilities - `get_secret_value` / `get_secret_values` — static secrets - `get_dynamic_secret_value` — just-in-time credentials (databases, cloud, K8s) - `get_rotated_secret_value` — auto-rotated credentials - `create_secret` / `update_secret_value` / `delete_item` - `list_items` / `describe_item` ### Secrets Backend Drop-in replacement pattern identical to the HashiCorp Vault backend — stores Connections (URI or JSON), Variables, and Config under configurable Akeyless paths. ### Dependencies - `akeyless>=5.0.0` (Apache 2.0, ~350K monthly PyPI downloads) - Optional: `akeyless_cloud_id` for AWS/GCP/Azure cloud-based auth ### Changes outside `providers/akeyless/` - `pyproject.toml`: added `akeyless` extra, workspace member, uv source, mypy paths, all-providers dep - `.github/boring-cyborg.yml`: `provider:akeyless` label mapping - `.github/CODEOWNERS`: `/providers/akeyless/` ownership - `docs/spelling_wordlist.txt`: added `Akeyless`/`akeyless` ## Test plan - [ ] Unit tests pass for hook (`tests/unit/akeyless/hooks/test_akeyless.py` — 10 tests) - [ ] Unit tests pass for secrets backend (`tests/unit/akeyless/secrets/test_akeyless.py` — 19 tests) - [ ] Client validation tests pass (auth type validation, missing params) - [ ] Static checks pass (`prek run --from-ref main`) - [ ] mypy passes (`prek --stage manual mypy-providers --all-files`) - [ ] Documentation builds successfully - [ ] Example DAG loads without import errors Made with [Cursor](https://cursor.com) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
