apache-airflow-providers-fab 2.4.3__tar.gz → 2.4.4rc1__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.

Potentially problematic release.


This version of apache-airflow-providers-fab might be problematic. Click here for more details.

Files changed (230) hide show
  1. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/PKG-INFO +8 -8
  2. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/README.rst +3 -3
  3. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/auth-manager/index.rst +1 -0
  4. apache_airflow_providers_fab-2.4.4rc1/docs/auth-manager/sso.rst +247 -0
  5. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/changelog.rst +23 -0
  6. apache_airflow_providers_fab-2.4.4rc1/docs/cli-ref.rst +24 -0
  7. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/index.rst +3 -3
  8. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/provider.yaml +2 -1
  9. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/pyproject.toml +5 -5
  10. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/__init__.py +1 -1
  11. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/fab_auth_manager.py +61 -1
  12. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/security_manager/override.py +1 -1
  13. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/airflow_flask_app.py +6 -1
  14. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/package-lock.json +8 -8
  15. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/package.json +1 -1
  16. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ff5a35f322070b094aa2.css +1 -1
  17. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/materialIcons.3e67dd6fbfcc4f3b5105.css +1 -1
  18. apache_airflow_providers_fab-2.4.4rc1/tests/unit/fab/auth_manager/api/auth/backend/test_kerberos_auth.py +24 -0
  19. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api_endpoints/api_connexion_utils.py +1 -5
  20. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api_endpoints/test_role_and_permission_endpoint.py +2 -5
  21. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api_endpoints/test_user_endpoint.py +1 -4
  22. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/cli_commands/test_definition.py +5 -8
  23. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/cli_commands/test_permissions_command.py +2 -5
  24. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/cli_commands/test_role_command.py +3 -7
  25. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/cli_commands/test_sync_perm_command.py +1 -4
  26. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/cli_commands/test_user_command.py +2 -5
  27. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/cli_commands/test_utils.py +1 -4
  28. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/models/test_anonymous_user.py +1 -4
  29. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/schemas/test_user_schema.py +5 -9
  30. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/security_manager/test_constants.py +1 -4
  31. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/security_manager/test_override.py +1 -4
  32. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/test_fab_auth_manager.py +21 -7
  33. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/test_models.py +4 -7
  34. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/test_security.py +15 -12
  35. apache_airflow_providers_fab-2.4.4rc1/www-hash.txt +1 -0
  36. apache_airflow_providers_fab-2.4.3/docs/cli-ref.rst +0 -29
  37. apache_airflow_providers_fab-2.4.3/tests/unit/fab/auth_manager/api/auth/backend/test_kerberos_auth.py +0 -27
  38. apache_airflow_providers_fab-2.4.3/www-hash.txt +0 -1
  39. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/3rd-party-licenses/LICENSES-ui.txt +0 -0
  40. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/NOTICE +0 -0
  41. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/api-ref/fab-public-api-ref.rst +0 -0
  42. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/api-ref/fab-token-api-ref.rst +0 -0
  43. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/auth-manager/access-control.rst +0 -0
  44. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/auth-manager/api-authentication.rst +0 -0
  45. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/auth-manager/configuring-flask-app.rst +0 -0
  46. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/auth-manager/security.rst +0 -0
  47. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/auth-manager/token.rst +0 -0
  48. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/auth-manager/webserver-authentication.rst +0 -0
  49. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/commits.rst +0 -0
  50. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/conf.py +0 -0
  51. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/configurations-ref.rst +0 -0
  52. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/img/add-role.png +0 -0
  53. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/img/diagram_fab_auth_manager_airflow_architecture.md5sum +0 -0
  54. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/img/diagram_fab_auth_manager_airflow_architecture.png +0 -0
  55. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/img/diagram_fab_auth_manager_airflow_architecture.py +0 -0
  56. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/img/new-role.png +0 -0
  57. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/installing-providers-from-sources.rst +0 -0
  58. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/migrations-ref.rst +0 -0
  59. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/security.rst +0 -0
  60. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/docs/upgrading.rst +0 -0
  61. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/__init__.py +0 -0
  62. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/3rd-party-licenses/LICENSES-ui.txt +0 -0
  63. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/__init__.py +0 -0
  64. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/LICENSE +0 -0
  65. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/alembic.ini +0 -0
  66. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/__init__.py +0 -0
  67. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api/__init__.py +0 -0
  68. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api/auth/__init__.py +0 -0
  69. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api/auth/backend/__init__.py +0 -0
  70. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py +0 -0
  71. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py +0 -0
  72. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api/auth/backend/session.py +0 -0
  73. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api_endpoints/__init__.py +0 -0
  74. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py +0 -0
  75. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py +0 -0
  76. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/__init__.py +0 -0
  77. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/__init__.py +0 -0
  78. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/login.py +0 -0
  79. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/__init__.py +0 -0
  80. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/v2-fab-auth-manager-generated.yaml +0 -0
  81. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
  82. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/login.py +0 -0
  83. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
  84. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/services/login.py +0 -0
  85. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/cli_commands/__init__.py +0 -0
  86. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/cli_commands/db_command.py +0 -0
  87. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/cli_commands/definition.py +0 -0
  88. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/cli_commands/permissions_command.py +0 -0
  89. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/cli_commands/role_command.py +0 -0
  90. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/cli_commands/sync_perm_command.py +0 -0
  91. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/cli_commands/user_command.py +0 -0
  92. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/cli_commands/utils.py +0 -0
  93. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/models/__init__.py +0 -0
  94. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/models/anonymous_user.py +0 -0
  95. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/models/db.py +0 -0
  96. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/openapi/__init__.py +0 -0
  97. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/openapi/v1-flask-api.yaml +0 -0
  98. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/schemas/__init__.py +0 -0
  99. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/schemas/role_and_permission_schema.py +0 -0
  100. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/schemas/user_schema.py +0 -0
  101. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/security_manager/__init__.py +0 -0
  102. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/security_manager/constants.py +0 -0
  103. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/views/__init__.py +0 -0
  104. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/views/permissions.py +0 -0
  105. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/views/roles_list.py +0 -0
  106. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/views/user.py +0 -0
  107. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/views/user_edit.py +0 -0
  108. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/auth_manager/views/user_stats.py +0 -0
  109. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/get_provider_info.py +0 -0
  110. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/migrations/README +0 -0
  111. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/migrations/__init__.py +0 -0
  112. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/migrations/env.py +0 -0
  113. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/migrations/script.py.mako +0 -0
  114. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/migrations/versions/0001_1_4_0_create_ab_tables_if_missing.py +0 -0
  115. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/migrations/versions/__init__.py +0 -0
  116. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/version_compat.py +0 -0
  117. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/__init__.py +0 -0
  118. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/api_connexion/__init__.py +0 -0
  119. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/api_connexion/exceptions.py +0 -0
  120. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/api_connexion/parameters.py +0 -0
  121. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/api_connexion/security.py +0 -0
  122. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/api_connexion/types.py +0 -0
  123. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/app.py +0 -0
  124. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/auth.py +0 -0
  125. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/constants.py +0 -0
  126. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/extensions/__init__.py +0 -0
  127. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/extensions/init_appbuilder.py +0 -0
  128. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/extensions/init_jinja_globals.py +0 -0
  129. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/extensions/init_manifest_files.py +0 -0
  130. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/extensions/init_security.py +0 -0
  131. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/extensions/init_session.py +0 -0
  132. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/extensions/init_views.py +0 -0
  133. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/extensions/init_wsgi_middlewares.py +0 -0
  134. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/security/__init__.py +0 -0
  135. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/security/permissions.py +0 -0
  136. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/security_appless.py +0 -0
  137. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/security_manager.py +0 -0
  138. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/session.py +0 -0
  139. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/css/bootstrap-theme.css +0 -0
  140. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/css/flash.css +0 -0
  141. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/css/loading-dots.css +0 -0
  142. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/css/main.css +0 -0
  143. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/css/material-icons.css +0 -0
  144. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/48f0ea180c40270a5b05.png +0 -0
  145. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/649c0b07771e68fafdeb.png +0 -0
  146. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/743.fc7a7c6ef9d09365976e.js +0 -0
  147. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/743.fc7a7c6ef9d09365976e.js.LICENSE.txt +0 -0
  148. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ff5a35f322070b094aa2.js +0 -0
  149. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/f7490d556a6c42e49ba4.png +0 -0
  150. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/flash.5583a9e0cf11f2be93da.css +0 -0
  151. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/flash.5583a9e0cf11f2be93da.js +0 -0
  152. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.css +0 -0
  153. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js +0 -0
  154. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js.LICENSE.txt +0 -0
  155. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/loadingDots.2e5f555f0753107b0300.css +0 -0
  156. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/loadingDots.2e5f555f0753107b0300.js +0 -0
  157. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.css +0 -0
  158. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.js +0 -0
  159. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.js.LICENSE.txt +0 -0
  160. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/manifest.json +0 -0
  161. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/materialIcons.3e67dd6fbfcc4f3b5105.js +0 -0
  162. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/moment.9baee5ec3d7639a10897.js +0 -0
  163. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/oss-licenses.json +0 -0
  164. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/dist/runtime.ad800fc1845ad5c6ddeb.js +0 -0
  165. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/js/datetime_utils.js +0 -0
  166. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/js/main.js +0 -0
  167. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/pin_100.png +0 -0
  168. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/pin_32.png +0 -0
  169. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/sort_asc.png +0 -0
  170. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/sort_both.png +0 -0
  171. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/static/sort_desc.png +0 -0
  172. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/templates/airflow/_messages.html +0 -0
  173. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/templates/airflow/error.html +0 -0
  174. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/templates/airflow/main.html +0 -0
  175. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/templates/airflow/traceback.html +0 -0
  176. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/templates/appbuilder/flash.html +0 -0
  177. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/templates/appbuilder/index.html +0 -0
  178. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/templates/appbuilder/navbar.html +0 -0
  179. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/templates/appbuilder/navbar_menu.html +0 -0
  180. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/templates/appbuilder/navbar_right.html +0 -0
  181. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/utils.py +0 -0
  182. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/views.py +0 -0
  183. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/src/airflow/providers/fab/www/webpack.config.js +0 -0
  184. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/conftest.py +0 -0
  185. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/__init__.py +0 -0
  186. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/__init__.py +0 -0
  187. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/__init__.py +0 -0
  188. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api/__init__.py +0 -0
  189. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api/auth/__init__.py +0 -0
  190. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api/auth/backend/__init__.py +0 -0
  191. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api/auth/backend/test_basic_auth.py +0 -0
  192. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api/auth/backend/test_session.py +0 -0
  193. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api_endpoints/__init__.py +0 -0
  194. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api_endpoints/remote_user_api_auth_backend.py +0 -0
  195. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api_endpoints/test_auth.py +0 -0
  196. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api_fastapi/__init__.py +0 -0
  197. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api_fastapi/conftest.py +0 -0
  198. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
  199. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api_fastapi/routes/test_login.py +0 -0
  200. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
  201. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/api_fastapi/services/test_login.py +0 -0
  202. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/cli_commands/__init__.py +0 -0
  203. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/cli_commands/test_db_command.py +0 -0
  204. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/conftest.py +0 -0
  205. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/models/__init__.py +0 -0
  206. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/models/test_db.py +0 -0
  207. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/models/test_user_model.py +0 -0
  208. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/schemas/__init__.py +0 -0
  209. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/schemas/test_role_and_permission_schema.py +0 -0
  210. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/security_manager/__init__.py +0 -0
  211. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/views/__init__.py +0 -0
  212. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/views/test_permissions.py +0 -0
  213. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/views/test_roles_list.py +0 -0
  214. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/views/test_user.py +0 -0
  215. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/views/test_user_edit.py +0 -0
  216. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/auth_manager/views/test_user_stats.py +0 -0
  217. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/db_manager/__init__.py +0 -0
  218. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/db_manager/test_fab_db_manager.py +0 -0
  219. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/decorators.py +0 -0
  220. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/plugins/__init__.py +0 -0
  221. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/plugins/conftest.py +0 -0
  222. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/plugins/test_plugin.py +0 -0
  223. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/utils.py +0 -0
  224. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/www/__init__.py +0 -0
  225. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/www/test_auth.py +0 -0
  226. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/www/test_utils.py +0 -0
  227. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/www/views/__init__.py +0 -0
  228. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/www/views/conftest.py +0 -0
  229. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/www/views/test_connection_form_fields.py +0 -0
  230. {apache_airflow_providers_fab-2.4.3 → apache_airflow_providers_fab-2.4.4rc1}/tests/unit/fab/www/views/test_views_custom_user_views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-fab
3
- Version: 2.4.3
3
+ Version: 2.4.4rc1
4
4
  Summary: Provider package apache-airflow-providers-fab for Apache Airflow
5
5
  Keywords: airflow-provider,fab,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
@@ -21,8 +21,8 @@ Classifier: Programming Language :: Python :: 3.12
21
21
  Classifier: Topic :: System :: Monitoring
22
22
  License-File: 3rd-party-licenses/LICENSES-ui.txt
23
23
  License-File: NOTICE
24
- Requires-Dist: apache-airflow>=3.0.2
25
- Requires-Dist: apache-airflow-providers-common-compat>=1.2.1
24
+ Requires-Dist: apache-airflow>=3.0.2rc1
25
+ Requires-Dist: apache-airflow-providers-common-compat>=1.2.1rc1
26
26
  Requires-Dist: blinker>=1.6.2; python_version < '3.13'
27
27
  Requires-Dist: flask>=2.2.1,<2.3; python_version < '3.13'
28
28
  Requires-Dist: flask-appbuilder==4.6.3; python_version < '3.13'
@@ -36,8 +36,8 @@ Requires-Dist: wtforms>=3.0,<4; python_version < '3.13'
36
36
  Requires-Dist: flask_limiter>3,<4,!=3.13
37
37
  Requires-Dist: kerberos>=1.3.0 ; extra == "kerberos" and ( python_version < '3.13')
38
38
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
39
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3/changelog.html
40
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3
39
+ Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/2.4.4/changelog.html
40
+ Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/2.4.4
41
41
  Project-URL: Mastodon, https://fosstodon.org/@airflow
42
42
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
43
43
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -69,7 +69,7 @@ Provides-Extra: kerberos
69
69
 
70
70
  Package ``apache-airflow-providers-fab``
71
71
 
72
- Release: ``2.4.3``
72
+ Release: ``2.4.4``
73
73
 
74
74
 
75
75
  `Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
@@ -82,7 +82,7 @@ This is a provider package for ``fab`` provider. All classes for this provider p
82
82
  are in ``airflow.providers.fab`` python package.
83
83
 
84
84
  You can find package information and changelog for the provider
85
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3/>`_.
85
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.4/>`_.
86
86
 
87
87
  Installation
88
88
  ------------
@@ -143,5 +143,5 @@ Extra Dependencies
143
143
  ============ ============================================
144
144
 
145
145
  The changelog for the provider package can be found in the
146
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3/changelog.html>`_.
146
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.4/changelog.html>`_.
147
147
 
@@ -23,7 +23,7 @@
23
23
 
24
24
  Package ``apache-airflow-providers-fab``
25
25
 
26
- Release: ``2.4.3``
26
+ Release: ``2.4.4``
27
27
 
28
28
 
29
29
  `Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
@@ -36,7 +36,7 @@ This is a provider package for ``fab`` provider. All classes for this provider p
36
36
  are in ``airflow.providers.fab`` python package.
37
37
 
38
38
  You can find package information and changelog for the provider
39
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.4/>`_.
40
40
 
41
41
  Installation
42
42
  ------------
@@ -97,4 +97,4 @@ Extra Dependencies
97
97
  ============ ============================================
98
98
 
99
99
  The changelog for the provider package can be found in the
100
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3/changelog.html>`_.
100
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.4/changelog.html>`_.
@@ -30,6 +30,7 @@ Follow the below topics as well to understand other aspects of FAB auth manager:
30
30
  * :doc:`access-control`. How FAB auth manager manage users and permissions
31
31
  * :doc:`webserver-authentication`. To learn the different options available in FAB auth manager to authenticate users
32
32
  * :doc:`security`. To learn the different options available in FAB auth manager to secure the UI provided by FAB auth manager
33
+ * :doc:`sso`. How to configure Single Sign-On (SSO) with OAuth2 providers using FAB auth manager
33
34
  * :doc:`configuring-flask-app`. To learn the configuration options available for the flask app used by ``FabAuthManager``.
34
35
 
35
36
  .. toctree::
@@ -0,0 +1,247 @@
1
+ .. Licensed to the Apache Software Foundation (ASF) under one
2
+ or more contributor license agreements. See the NOTICE file
3
+ distributed with this work for additional information
4
+ regarding copyright ownership. The ASF licenses this file
5
+ to you under the Apache License, Version 2.0 (the
6
+ "License"); you may not use this file except in compliance
7
+ with the License. You may obtain a copy of the License at
8
+
9
+ .. http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ .. Unless required by applicable law or agreed to in writing,
12
+ software distributed under the License is distributed on an
13
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ KIND, either express or implied. See the License for the
15
+ specific language governing permissions and limitations
16
+ under the License.
17
+
18
+ ================================
19
+ Single Sign-On (SSO) Integration
20
+ ================================
21
+
22
+ The FAB Auth Manager supports Single Sign-On (SSO) through OAuth2 providers.
23
+ This guide shows how to configure SSO with various OAuth2 providers such as
24
+ Google, Okta, Azure Entra ID, and others.
25
+
26
+ This guide shows how to configure SSO with the FAB Auth Manager using a
27
+ generic OAuth2 provider. The process is similar for providers such as
28
+ Okta, Azure Entra ID, Google, or Auth0.
29
+
30
+ .. contents:: Table of Contents
31
+ :local:
32
+ :depth: 2
33
+
34
+ Prerequisites
35
+ -------------
36
+ - Apache Airflow installed and running with FAB Auth Manager
37
+ - Access to an OAuth2 SSO provider (e.g., Google, Okta, Auth0, Azure Entra ID)
38
+ - Admin access to Airflow and your SSO provider
39
+
40
+ .. note::
41
+ For provider-specific authentication setup (obtaining client IDs, secrets, etc.),
42
+ refer to the relevant provider documentation:
43
+
44
+ - **Google**: :doc:`apache-airflow-providers-google:api-auth-backend/google-openid` and :doc:`apache-airflow-providers-google:connections/gcp`
45
+ - **Microsoft Azure**: :doc:`apache-airflow-providers-microsoft-azure:connections/azure`
46
+ - **Amazon**: :doc:`apache-airflow-providers-amazon:auth-manager/setup/identity-center`
47
+
48
+ Configuration Steps
49
+ -------------------
50
+
51
+ 1. **Enable the FAB Auth Manager**
52
+
53
+ Add the following to your ``airflow.cfg`` (or set as env var):
54
+
55
+ .. code-block:: ini
56
+
57
+ [webserver]
58
+ auth_manager = airflow.providers.fab.auth_manager.fab_auth_manager.FabAuthManager
59
+
60
+ This replaces the default ``SimpleAuthManager``.
61
+
62
+ 2. **Install Required Packages**
63
+
64
+ If not already installed, ensure the FAB provider is available:
65
+
66
+ .. code-block:: bash
67
+
68
+ pip install 'apache-airflow-providers-fab'
69
+
70
+ .. note::
71
+ The FAB Auth Manager provider is not installed by default in Airflow 3.
72
+ You must install it explicitly to use OAuth2-based SSO.
73
+
74
+ 3. **Configure OAuth2 Provider**
75
+
76
+ FAB Auth Manager reads provider configuration from the ``[fab]`` section
77
+ of ``airflow.cfg`` or from environment variables.
78
+
79
+ **Option A: Environment Variables (Recommended)**
80
+
81
+ .. code-block:: bash
82
+
83
+ export AIRFLOW__FAB__OAUTH_PROVIDERS='[{
84
+ "name": "generic",
85
+ "icon": "fa-circle",
86
+ "token_key": "access_token",
87
+ "remote_app": {
88
+ "client_id": "your-client-id",
89
+ "client_secret": "your-client-secret",
90
+ "api_base_url": "https://provider.com/oauth/",
91
+ "request_token_url": null,
92
+ "access_token_url": "https://provider.com/oauth/token",
93
+ "authorize_url": "https://provider.com/oauth/authorize"
94
+ }
95
+ }]'
96
+
97
+ **Option B: Configuration File**
98
+
99
+ Add to your ``airflow.cfg``:
100
+
101
+ .. code-block:: ini
102
+
103
+ [fab]
104
+ oauth_providers = [
105
+ {
106
+ "name": "generic",
107
+ "icon": "fa-circle",
108
+ "token_key": "access_token",
109
+ "remote_app": {
110
+ "client_id": "your-client-id",
111
+ "client_secret": "your-client-secret",
112
+ "api_base_url": "https://provider.com/oauth/",
113
+ "request_token_url": null,
114
+ "access_token_url": "https://provider.com/oauth/token",
115
+ "authorize_url": "https://provider.com/oauth/authorize"
116
+ }
117
+ }
118
+ ]
119
+
120
+ Adjust these values according to your provider's documentation.
121
+
122
+ 4. **Restart Airflow Webserver**
123
+
124
+ .. code-block:: bash
125
+
126
+ airflow webserver --reload
127
+
128
+ 5. **Test SSO Login**
129
+
130
+ Open the Airflow UI. You should see a login option for your SSO provider.
131
+
132
+ Provider Examples
133
+ -----------------
134
+
135
+ **Okta**
136
+
137
+ .. code-block:: bash
138
+
139
+ export AIRFLOW__FAB__OAUTH_PROVIDERS='[{
140
+ "name": "okta",
141
+ "icon": "fa-circle",
142
+ "token_key": "access_token",
143
+ "remote_app": {
144
+ "client_id": "your-client-id",
145
+ "client_secret": "your-client-secret",
146
+ "api_base_url": "https://your-org.okta.com/oauth2/default",
147
+ "request_token_url": null,
148
+ "access_token_url": "https://your-org.okta.com/oauth2/default/v1/token",
149
+ "authorize_url": "https://your-org.okta.com/oauth2/default/v1/authorize"
150
+ }
151
+ }]'
152
+
153
+ .. seealso::
154
+ For detailed Okta setup instructions, see the `Okta OAuth2 documentation <https://developer.okta.com/docs/guides/implement-oauth/>`_.
155
+
156
+ **Azure Entra ID (Azure AD)**
157
+
158
+ .. code-block:: bash
159
+
160
+ export AIRFLOW__FAB__OAUTH_PROVIDERS='[{
161
+ "name": "azure",
162
+ "icon": "fa-circle",
163
+ "token_key": "access_token",
164
+ "remote_app": {
165
+ "client_id": "your-client-id",
166
+ "client_secret": "your-client-secret",
167
+ "api_base_url": "https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/",
168
+ "request_token_url": null,
169
+ "access_token_url": "https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token",
170
+ "authorize_url": "https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize",
171
+ "client_kwargs": {
172
+ "scope": "openid email profile"
173
+ }
174
+ }
175
+ }]'
176
+
177
+ .. seealso::
178
+ For Azure app registration and OAuth setup, see :doc:`apache-airflow-providers-microsoft-azure:connections/azure`
179
+ and the `Azure OAuth2 documentation <https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow>`_.
180
+
181
+ **Google OAuth2**
182
+
183
+ .. code-block:: bash
184
+
185
+ export AIRFLOW__FAB__OAUTH_PROVIDERS='[{
186
+ "name": "google",
187
+ "icon": "fa-google",
188
+ "token_key": "access_token",
189
+ "remote_app": {
190
+ "client_id": "your-client-id.googleusercontent.com",
191
+ "client_secret": "your-client-secret",
192
+ "api_base_url": "https://www.googleapis.com/oauth2/v2/",
193
+ "request_token_url": null,
194
+ "access_token_url": "https://oauth2.googleapis.com/token",
195
+ "authorize_url": "https://accounts.google.com/o/oauth2/auth",
196
+ "client_kwargs": {
197
+ "scope": "openid email profile"
198
+ }
199
+ }
200
+ }]'
201
+
202
+ .. seealso::
203
+ For Google OAuth setup and credential configuration, see :doc:`apache-airflow-providers-google:connections/gcp`
204
+ and :doc:`apache-airflow-providers-google:api-auth-backend/google-openid`.
205
+
206
+ Troubleshooting
207
+ ---------------
208
+
209
+ **Common Issues**
210
+
211
+ - **Authentication fails after configuration**:
212
+
213
+ - Check Airflow and webserver logs for detailed error messages
214
+ - Ensure all environment variables are set and exported correctly
215
+ - Verify callback URLs in your SSO provider match your Airflow webserver URL (typically ``http://your-airflow-domain/oauth-authorized``)
216
+
217
+ - **Redirect URI mismatch**:
218
+
219
+ - In your OAuth provider, set the redirect URI to: ``http://your-airflow-domain/oauth-authorized``
220
+ - For development, this might be: ``http://localhost:8080/oauth-authorized``
221
+
222
+ - **Scope-related errors**:
223
+
224
+ - Confirm that scopes (``openid email profile`` or similar) are allowed in your OAuth provider
225
+ - Some providers require specific scopes to be explicitly configured
226
+
227
+ - **Token validation errors**:
228
+
229
+ - Ensure your OAuth provider's clock is synchronized
230
+ - Check if your client secret matches exactly (no extra spaces/characters)
231
+
232
+ - **User creation issues**:
233
+
234
+ - FAB Auth Manager creates users automatically on first login
235
+ - Check if your OAuth provider returns the expected user information fields
236
+
237
+ References
238
+ ----------
239
+ - `Airflow Authentication <https://airflow.apache.org/docs/apache-airflow/stable/security/authentication.html>`_
240
+ - `FAB Auth Manager Provider Docs <https://airflow.apache.org/docs/apache-airflow-providers-fab/stable/auth_manager.html>`_
241
+ - `Flask AppBuilder Security <https://flask-appbuilder.readthedocs.io/en/latest/security.html>`_
242
+ - `Okta OAuth2 Docs <https://developer.okta.com/docs/guides/implement-oauth/>`_
243
+ - `Azure OAuth2 Docs <https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow>`_
244
+
245
+ .. note::
246
+ This example uses the **Flask AppBuilder Auth Manager**.
247
+ If you use a different authentication manager, configuration may differ.
@@ -20,6 +20,29 @@
20
20
  Changelog
21
21
  ---------
22
22
 
23
+ 2.4.4
24
+ .....
25
+
26
+ Bug Fixes
27
+ ~~~~~~~~~
28
+
29
+ * ``Override 'get_authorized_connections', 'get_authorized_pools' and 'get_authorized_variables' in Fab auth manager (#55682)``
30
+
31
+ Misc
32
+ ~~~~
33
+
34
+ * ``Bump eslint from 9.35.0 to 9.36.0 in /providers/fab/src/airflow/providers/fab/www in the fab-ui-package-updates group across 1 directory (#55895)``
35
+ * ``Move DagBag to airflow/dag_processing (#55139)``
36
+
37
+ Doc-only
38
+ ~~~~~~~~
39
+
40
+ * ``Add SSO integration guide for Apache Airflow (#55281)``
41
+ * ``Remove useless Airflow version compatibility checks (#55852)``
42
+
43
+ .. Below changes are excluded from the changelog. Move them to
44
+ appropriate section above if needed. Do not delete the lines(!):
45
+
23
46
  2.4.3
24
47
  .....
25
48
 
@@ -0,0 +1,24 @@
1
+ .. Licensed to the Apache Software Foundation (ASF) under one
2
+ or more contributor license agreements. See the NOTICE file
3
+ distributed with this work for additional information
4
+ regarding copyright ownership. The ASF licenses this file
5
+ to you under the Apache License, Version 2.0 (the
6
+ "License"); you may not use this file except in compliance
7
+ with the License. You may obtain a copy of the License at
8
+
9
+ .. http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ .. Unless required by applicable law or agreed to in writing,
12
+ software distributed under the License is distributed on an
13
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ KIND, either express or implied. See the License for the
15
+ specific language governing permissions and limitations
16
+ under the License.
17
+
18
+ FAB CLI Commands
19
+ ================
20
+
21
+ .. argparse::
22
+ :module: airflow.providers.fab.auth_manager.fab_auth_manager
23
+ :func: get_parser
24
+ :prog: airflow
@@ -84,7 +84,7 @@ apache-airflow-providers-fab package
84
84
  `Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
85
85
 
86
86
 
87
- Release: 2.4.3
87
+ Release: 2.4.4
88
88
 
89
89
  Provider package
90
90
  ----------------
@@ -147,5 +147,5 @@ Downloading official packages
147
147
  You can download officially released packages and verify their checksums and signatures from the
148
148
  `Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
149
149
 
150
- * `The apache-airflow-providers-fab 2.4.3 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.3.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.3.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.3.tar.gz.sha512>`__)
151
- * `The apache-airflow-providers-fab 2.4.3 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.3-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.3-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.3-py3-none-any.whl.sha512>`__)
150
+ * `The apache-airflow-providers-fab 2.4.4 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.4.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.4.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.4.tar.gz.sha512>`__)
151
+ * `The apache-airflow-providers-fab 2.4.4 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.4-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.4-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.4-py3-none-any.whl.sha512>`__)
@@ -28,13 +28,14 @@ description: |
28
28
  # For providers until we think it should be released.
29
29
  state: ready
30
30
 
31
- source-date-epoch: 1757950286
31
+ source-date-epoch: 1758734932
32
32
 
33
33
  # Note that those versions are maintained by release manager - do not update them manually
34
34
  # with the exception of case where other provider in sources has >= new provider version.
35
35
  # In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider have
36
36
  # to be done in the same PR
37
37
  versions:
38
+ - 2.4.4
38
39
  - 2.4.3
39
40
  - 2.4.2
40
41
  - 2.4.1
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-fab"
28
- version = "2.4.3"
28
+ version = "2.4.4rc1"
29
29
  description = "Provider package apache-airflow-providers-fab for Apache Airflow"
30
30
  readme = "README.rst"
31
31
  authors = [
@@ -56,8 +56,8 @@ license-files = ["NOTICE", "*/LICENSE*"]
56
56
  # Make sure to run ``prek update-providers-dependencies --all-files``
57
57
  # After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
58
58
  dependencies = [
59
- "apache-airflow>=3.0.2",
60
- "apache-airflow-providers-common-compat>=1.2.1",
59
+ "apache-airflow>=3.0.2rc1",
60
+ "apache-airflow-providers-common-compat>=1.2.1rc1",
61
61
  # Blinker use for signals in Flask, this is an optional dependency in Flask 2.2 and lower.
62
62
  # In Flask 2.3 it becomes a mandatory dependency, and flask signals are always available.
63
63
  "blinker>=1.6.2; python_version < '3.13'",
@@ -130,8 +130,8 @@ apache-airflow-providers-common-sql = {workspace = true}
130
130
  apache-airflow-providers-standard = {workspace = true}
131
131
 
132
132
  [project.urls]
133
- "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3"
134
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3/changelog.html"
133
+ "Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/2.4.4"
134
+ "Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/2.4.4/changelog.html"
135
135
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
136
136
  "Source Code" = "https://github.com/apache/airflow"
137
137
  "Slack Chat" = "https://s.apache.org/airflow-slack"
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "2.4.3"
32
+ __version__ = "2.4.4"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "3.0.2"
@@ -57,7 +57,7 @@ from airflow.cli.cli_config import (
57
57
  )
58
58
  from airflow.configuration import conf
59
59
  from airflow.exceptions import AirflowConfigException, AirflowException
60
- from airflow.models import DagModel
60
+ from airflow.models import Connection, DagModel, Pool, Variable
61
61
  from airflow.providers.fab.auth_manager.cli_commands.definition import (
62
62
  DB_COMMANDS,
63
63
  PERMISSIONS_CLEANUP_COMMAND,
@@ -437,6 +437,26 @@ class FabAuthManager(BaseAuthManager[User]):
437
437
  )
438
438
  ]
439
439
 
440
+ @provide_session
441
+ def get_authorized_connections(
442
+ self,
443
+ *,
444
+ user: User,
445
+ method: ResourceMethod = "GET",
446
+ session: Session = NEW_SESSION,
447
+ ) -> set[str]:
448
+ """
449
+ Get connection ids (``conn_id``) the user has access to.
450
+
451
+ Fab auth manager does not allow fine-grained access with connections. Thus, return all the connection ids.
452
+
453
+ :param user: the user
454
+ :param method: the method to filter on
455
+ :param session: the session
456
+ """
457
+ rows = session.execute(select(Connection.conn_id)).scalars().all()
458
+ return set(rows)
459
+
440
460
  @provide_session
441
461
  def get_authorized_dag_ids(
442
462
  self,
@@ -477,6 +497,46 @@ class FabAuthManager(BaseAuthManager[User]):
477
497
  resources.add(resource[len(permissions.RESOURCE_DAG_PREFIX) :])
478
498
  return set(session.scalars(select(DagModel.dag_id).where(DagModel.dag_id.in_(resources))))
479
499
 
500
+ @provide_session
501
+ def get_authorized_pools(
502
+ self,
503
+ *,
504
+ user: User,
505
+ method: ResourceMethod = "GET",
506
+ session: Session = NEW_SESSION,
507
+ ) -> set[str]:
508
+ """
509
+ Get pools the user has access to.
510
+
511
+ Fab auth manager does not allow fine-grained access with pools. Thus, return all the pool names.
512
+
513
+ :param user: the user
514
+ :param method: the method to filter on
515
+ :param session: the session
516
+ """
517
+ rows = session.execute(select(Pool.pool)).scalars().all()
518
+ return set(rows)
519
+
520
+ @provide_session
521
+ def get_authorized_variables(
522
+ self,
523
+ *,
524
+ user: User,
525
+ method: ResourceMethod = "GET",
526
+ session: Session = NEW_SESSION,
527
+ ) -> set[str]:
528
+ """
529
+ Get variable keys the user has access to.
530
+
531
+ Fab auth manager does not allow fine-grained access with variables. Thus, return all the variable keys.
532
+
533
+ :param user: the user
534
+ :param method: the method to filter on
535
+ :param session: the session
536
+ """
537
+ rows = session.execute(select(Variable.key)).scalars().all()
538
+ return set(rows)
539
+
480
540
  @cached_property
481
541
  def security_manager(self) -> FabAirflowSecurityManagerOverride:
482
542
  """Return the security manager specific to FAB."""
@@ -127,7 +127,7 @@ if AIRFLOW_V_3_1_PLUS:
127
127
  with create_session() as session:
128
128
  yield from DBDagBag().iter_all_latest_version_dags(session=session)
129
129
  else:
130
- from airflow.models.dagbag import DagBag
130
+ from airflow.models.dagbag import DagBag # type: ignore[attr-defined, no-redef]
131
131
 
132
132
  def _iter_dags() -> Iterable[DAG | SerializedDAG]:
133
133
  dagbag = DagBag(read_dags_from_db=True) # type: ignore[call-arg]
@@ -21,7 +21,12 @@ from typing import TYPE_CHECKING, Any
21
21
  from flask import Flask
22
22
 
23
23
  if TYPE_CHECKING:
24
- from airflow.models.dagbag import DagBag
24
+ from airflow.providers.fab.version_compat import AIRFLOW_V_3_1_PLUS
25
+
26
+ if AIRFLOW_V_3_1_PLUS:
27
+ from airflow.models.dagbag import DBDagBag as DagBag
28
+ else:
29
+ from airflow.models.dagbag import DagBag # type: ignore[no-redef]
25
30
 
26
31
 
27
32
  class AirflowApp(Flask):
@@ -22,7 +22,7 @@
22
22
  "copy-webpack-plugin": "^13.0.1",
23
23
  "css-loader": "7.1.2",
24
24
  "css-minimizer-webpack-plugin": "^7.0.2",
25
- "eslint": "^9.35.0",
25
+ "eslint": "^9.36.0",
26
26
  "eslint-config-prettier": "^10.1.8",
27
27
  "eslint-plugin-html": "^8.1.3",
28
28
  "eslint-plugin-import": "^2.32.0",
@@ -1807,9 +1807,9 @@
1807
1807
  }
1808
1808
  },
1809
1809
  "node_modules/@eslint/js": {
1810
- "version": "9.35.0",
1811
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.35.0.tgz",
1812
- "integrity": "sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==",
1810
+ "version": "9.36.0",
1811
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.36.0.tgz",
1812
+ "integrity": "sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==",
1813
1813
  "dev": true,
1814
1814
  "license": "MIT",
1815
1815
  "engines": {
@@ -3998,9 +3998,9 @@
3998
3998
  }
3999
3999
  },
4000
4000
  "node_modules/eslint": {
4001
- "version": "9.35.0",
4002
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.35.0.tgz",
4003
- "integrity": "sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==",
4001
+ "version": "9.36.0",
4002
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.36.0.tgz",
4003
+ "integrity": "sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==",
4004
4004
  "dev": true,
4005
4005
  "license": "MIT",
4006
4006
  "dependencies": {
@@ -4010,7 +4010,7 @@
4010
4010
  "@eslint/config-helpers": "^0.3.1",
4011
4011
  "@eslint/core": "^0.15.2",
4012
4012
  "@eslint/eslintrc": "^3.3.1",
4013
- "@eslint/js": "9.35.0",
4013
+ "@eslint/js": "9.36.0",
4014
4014
  "@eslint/plugin-kit": "^0.3.5",
4015
4015
  "@humanfs/node": "^0.16.6",
4016
4016
  "@humanwhocodes/module-importer": "^1.0.1",
@@ -48,7 +48,7 @@
48
48
  "copy-webpack-plugin": "^13.0.1",
49
49
  "css-loader": "7.1.2",
50
50
  "css-minimizer-webpack-plugin": "^7.0.2",
51
- "eslint": "^9.35.0",
51
+ "eslint": "^9.36.0",
52
52
  "eslint-config-prettier": "^10.1.8",
53
53
  "eslint-plugin-html": "^8.1.3",
54
54
  "eslint-plugin-import": "^2.32.0",