This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 39fb57501da fix(fab): add authlib as optional oauth extra in fab 
provider (#64457)
39fb57501da is described below

commit 39fb57501da6d79205d605b62b4b9989690a89bb
Author: Zamuldinov Nikita <[email protected]>
AuthorDate: Wed Apr 1 19:10:16 2026 +0300

    fix(fab): add authlib as optional oauth extra in fab provider (#64457)
    
    authlib is imported at runtime by FabAuthManager's security-manager override
    whenever AUTH_OAUTH is enabled:
    
      - authlib.integrations.flask_client.OAuth  – provider registration
      - authlib.jose.JsonWebKey / jwt            – JWT validation
    
    flask-appbuilder 5.x exposes authlib under its own [oauth] extra
    (Authlib<2.0.0,>=0.14), but the airflow-providers-fab package did not
    re-expose it, so users who enable OAuth had to install authlib manually
    and received no helpful error message when it was missing.
    
    This commit adds an oauth optional-dependency group so that:
    
        pip install 'apache-airflow-providers-fab[oauth]'
    
    pulls authlib in, mirroring the existing kerberos pattern.
    
    Fixes #64456
    
    Signed-off-by: NIK-TIGER-BILL <[email protected]>
    Co-authored-by: NIK-TIGER-BILL <[email protected]>
---
 providers/fab/pyproject.toml | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/providers/fab/pyproject.toml b/providers/fab/pyproject.toml
index f45d4295356..99699253e97 100644
--- a/providers/fab/pyproject.toml
+++ b/providers/fab/pyproject.toml
@@ -103,6 +103,14 @@ dependencies = [
 "kerberos" = [
     "kerberos>=1.3.0",
 ]
+"oauth" = [
+    # authlib is required by the FAB security manager when AUTH_OAUTH is 
enabled.
+    # It is used for OAuth provider registration 
(authlib.integrations.flask_client.OAuth)
+    # and JWT validation (authlib.jose.JsonWebKey / authlib.jose.jwt).
+    # flask-appbuilder ships authlib as its own optional [oauth] extra; we 
expose it
+    # here so that ``pip install apache-airflow-providers-fab[oauth]`` pulls 
it in.
+    "authlib>=1.0.0",
+]
 
 [dependency-groups]
 dev = [
@@ -113,6 +121,7 @@ dev = [
     # Additional devel dependencies (do not remove this line and add extra 
development dependencies)
     "kerberos>=1.3.0",
     "requests_kerberos>=0.14.0",
+    "authlib>=1.0.0",
 ]
 
 # To build docs:

Reply via email to