Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ airflow-core/src/airflow/ui/public/i18n/locales/zh-TW/ @Lee-W @jason810496 @guan
/airflow-core/src/airflow/secrets @dstandish @ashb

# Providers
/providers/akeyless/ @eladkal # + @baraka-akeyless @deanshak
/providers/amazon/ @o-nikolas
/providers/apache/iceberg/ @Fokko
/providers/celery/ @hussein-awala @dheerajturaga
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/1-airflow_bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ body:
multiple: true
options:
- airbyte
- akeyless
- alibaba
- amazon
- apache-beam
Expand Down
3 changes: 3 additions & 0 deletions .github/boring-cyborg.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ labelPRBasedOnFilePath:
provider:airbyte:
- providers/airbyte/**

provider:akeyless:
- providers/akeyless/**

provider:alibaba:
- providers/alibaba/**

Expand Down
2 changes: 2 additions & 0 deletions airflow-core/docs/extra-packages-ref.rst
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,8 @@ These are extras that add dependencies needed for integration with external serv
+=====================+=====================================================+=====================================================+
| airbyte | ``pip install 'apache-airflow[airbyte]'`` | Airbyte hooks and operators |
+---------------------+-----------------------------------------------------+-----------------------------------------------------+
| akeyless | ``pip install 'apache-airflow[akeyless]'`` | Akeyless Vault secrets and hooks |
+---------------------+-----------------------------------------------------+-----------------------------------------------------+
| alibaba | ``pip install 'apache-airflow[alibaba]'`` | Alibaba Cloud |
+---------------------+-----------------------------------------------------+-----------------------------------------------------+
| apprise | ``pip install 'apache-airflow[apprise]'`` | Apprise Notification |
Expand Down
2 changes: 2 additions & 0 deletions docs/spelling_wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ airflowctl
AirflowException
airflowignore
ajax
Akeyless
akeyless
aks
AlertApi
alertPolicies
Expand Down
1 change: 1 addition & 0 deletions providers/akeyless/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.iml
16 changes: 16 additions & 0 deletions providers/akeyless/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
5 changes: 5 additions & 0 deletions providers/akeyless/NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Apache Airflow
Copyright 2016-2026 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
70 changes: 70 additions & 0 deletions providers/akeyless/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
.. Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at

.. http://www.apache.org/licenses/LICENSE-2.0

.. Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.

Package ``apache-airflow-providers-akeyless``
=============================================

Release: ``1.0.0``

`Akeyless <https://www.akeyless.io/>`__

Provider package
----------------

This is a provider package for the ``akeyless`` provider. All classes for this
provider package are in the ``airflow.providers.akeyless`` python package.

Installation
------------

You can install this package on top of an existing Airflow installation via
``pip install apache-airflow-providers-akeyless``.

The package supports the following Python versions: 3.10, 3.11, 3.12, 3.13.

Requirements
------------

================== ================
PIP package Version required
================== ================
``apache-airflow`` ``>=2.11.0``
``akeyless`` ``>=5.0.0``
================== ================

Cross provider package dependencies
------------------------------------

Those are dependencies that might be needed in order to use all the features of
the package.

=================================== ===========
Dependent package Extra
=================================== ===========
``akeyless_cloud_id`` ``cloud_id``
=================================== ===========

Features
--------

* **Hook** (``AkeylessHook``): Interact with Akeyless Vault Platform — static,
dynamic, and rotated secrets; list/describe/create/update/delete items.
* **Connection type** (``akeyless``): Custom Airflow connection with UI fields for
all Akeyless authentication methods (API Key, AWS IAM, GCP, Azure AD, UID,
JWT, Kubernetes, Certificate).
* **Secrets Backend** (``AkeylessBackend``): Source Airflow Connections, Variables,
and Configuration directly from Akeyless.
1 change: 1 addition & 0 deletions providers/akeyless/docs/.latest-doc-only-change.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0.0
34 changes: 34 additions & 0 deletions providers/akeyless/docs/changelog.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
.. Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at

.. http://www.apache.org/licenses/LICENSE-2.0

.. Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.

Changelog
=========

1.0.0
-----

Initial release.

Features
~~~~~~~~

* ``AkeylessHook``: Hook for interacting with Akeyless Vault Platform (static,
dynamic, and rotated secrets; item CRUD; multiple auth methods).
* ``AkeylessBackend``: Secrets backend for sourcing Airflow Connections,
Variables, and Configuration from Akeyless.
* Custom ``akeyless`` connection type with dedicated UI fields for all
authentication methods.
35 changes: 35 additions & 0 deletions providers/akeyless/docs/commits.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@

.. Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at

.. http://www.apache.org/licenses/LICENSE-2.0

.. Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.

.. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!

.. IF YOU WANT TO MODIFY THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
`PROVIDER_COMMITS_TEMPLATE.rst.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY

.. THE REMAINDER OF THE FILE IS AUTOMATICALLY GENERATED. IT WILL BE OVERWRITTEN!

Package apache-airflow-providers-akeyless
------------------------------------------------------

`Akeyless <https://www.akeyless.io/>`__ Vault Platform provider for Apache Airflow.


This is detailed commit list of changes for versions provider package: ``akeyless``.
For high-level changelog, see :doc:`package information including changelog <index>`.

.. airflow-providers-commits::
25 changes: 25 additions & 0 deletions providers/akeyless/docs/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
"""Configuration of Providers docs building."""

from __future__ import annotations

import os

os.environ["AIRFLOW_PACKAGE_NAME"] = "apache-airflow-providers-akeyless"

from docs.provider_conf import * # noqa: F403
93 changes: 93 additions & 0 deletions providers/akeyless/docs/connections.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
.. Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at

.. http://www.apache.org/licenses/LICENSE-2.0

.. Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.

Akeyless Connection
===================

The ``akeyless`` connection type enables connecting to
`Akeyless Vault Platform <https://www.akeyless.io/>`__.

Configuring the Connection
--------------------------

Host
Akeyless API URL (e.g. ``https://api.akeyless.io`` or your Gateway URL on
port ``8081``).

Login
Your Akeyless **Access ID** (e.g. ``p-xxxxxxxxx``).

Password
Your Akeyless **Access Key** (for ``api_key`` authentication type).

Extra (JSON)
Provide additional fields depending on your authentication method:

.. list-table::
:header-rows: 1

* - Field
- Description
* - ``access_type``
- Authentication method. One of: ``api_key`` (default), ``aws_iam``,
``gcp``, ``azure_ad``, ``uid``, ``jwt``, ``k8s``, ``certificate``.
* - ``uid_token``
- Universal-Identity token (for ``uid`` auth).
* - ``gcp_audience``
- GCP audience string (for ``gcp`` auth).
* - ``azure_object_id``
- Azure AD Object ID (for ``azure_ad`` auth).
* - ``jwt``
- Raw JWT token (for ``jwt`` auth).
* - ``k8s_auth_config_name``
- Kubernetes Auth Config name (for ``k8s`` auth).
* - ``certificate_data``
- PEM-encoded client certificate (for ``certificate`` auth).
* - ``private_key_data``
- PEM-encoded private key (for ``certificate`` auth).

Examples
--------

**API Key authentication (default)**:

.. code-block:: json

{
"access_type": "api_key"
}

With ``Login`` = Access ID and ``Password`` = Access Key.

**AWS IAM authentication**:

.. code-block:: json

{
"access_type": "aws_iam"
}

Requires the ``akeyless_cloud_id`` package (``pip install apache-airflow-providers-akeyless[cloud_id]``).

**Kubernetes authentication**:

.. code-block:: json

{
"access_type": "k8s",
"k8s_auth_config_name": "my-k8s-config"
}
Loading