apache-airflow-providers-fab 2.4.4rc1__tar.gz → 3.0.0rc2__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 (229) hide show
  1. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/PKG-INFO +16 -10
  2. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/README.rst +8 -5
  3. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/changelog.rst +29 -4
  4. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/index.rst +8 -5
  5. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/provider.yaml +2 -1
  6. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/pyproject.toml +8 -5
  7. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/__init__.py +1 -1
  8. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py +2 -2
  9. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py +4 -4
  10. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/login.py +7 -4
  11. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/cli_commands/user_command.py +1 -2
  12. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/cli_commands/utils.py +7 -3
  13. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/fab_auth_manager.py +15 -11
  14. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/models/__init__.py +179 -122
  15. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/models/db.py +11 -6
  16. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/security_manager/override.py +239 -213
  17. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/views/user.py +11 -5
  18. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/migrations/versions/0001_1_4_0_create_ab_tables_if_missing.py +5 -4
  19. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/app.py +3 -4
  20. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/extensions/init_appbuilder.py +26 -39
  21. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/extensions/init_session.py +2 -2
  22. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/security_appless.py +6 -1
  23. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/security_manager.py +4 -14
  24. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/session.py +26 -3
  25. apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/utils.py +86 -0
  26. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api/auth/backend/test_basic_auth.py +1 -0
  27. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api/auth/backend/test_session.py +1 -0
  28. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api_endpoints/test_role_and_permission_endpoint.py +24 -29
  29. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api_endpoints/test_user_endpoint.py +28 -19
  30. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api_fastapi/routes/test_login.py +3 -0
  31. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api_fastapi/services/test_login.py +1 -2
  32. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/cli_commands/test_role_command.py +1 -1
  33. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/cli_commands/test_user_command.py +1 -1
  34. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/cli_commands/test_utils.py +2 -1
  35. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/models/test_db.py +3 -1
  36. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/schemas/test_role_and_permission_schema.py +42 -44
  37. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/schemas/test_user_schema.py +16 -9
  38. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/test_fab_auth_manager.py +20 -19
  39. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/test_security.py +9 -23
  40. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/views/test_permissions.py +14 -13
  41. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/views/test_roles_list.py +11 -10
  42. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/views/test_user.py +11 -10
  43. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/views/test_user_edit.py +11 -10
  44. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/views/test_user_stats.py +11 -10
  45. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/www/views/test_views_custom_user_views.py +102 -117
  46. apache_airflow_providers_fab-3.0.0rc2/www-hash.txt +1 -0
  47. apache_airflow_providers_fab-2.4.4rc1/src/airflow/providers/fab/www/utils.py +0 -293
  48. apache_airflow_providers_fab-2.4.4rc1/www-hash.txt +0 -1
  49. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/3rd-party-licenses/LICENSES-ui.txt +0 -0
  50. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/NOTICE +0 -0
  51. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/api-ref/fab-public-api-ref.rst +0 -0
  52. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/api-ref/fab-token-api-ref.rst +0 -0
  53. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/auth-manager/access-control.rst +0 -0
  54. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/auth-manager/api-authentication.rst +0 -0
  55. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/auth-manager/configuring-flask-app.rst +0 -0
  56. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/auth-manager/index.rst +0 -0
  57. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/auth-manager/security.rst +0 -0
  58. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/auth-manager/sso.rst +0 -0
  59. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/auth-manager/token.rst +0 -0
  60. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/auth-manager/webserver-authentication.rst +0 -0
  61. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/cli-ref.rst +0 -0
  62. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/commits.rst +0 -0
  63. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/conf.py +0 -0
  64. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/configurations-ref.rst +0 -0
  65. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/img/add-role.png +0 -0
  66. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/img/diagram_fab_auth_manager_airflow_architecture.md5sum +0 -0
  67. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/img/diagram_fab_auth_manager_airflow_architecture.png +0 -0
  68. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/img/diagram_fab_auth_manager_airflow_architecture.py +0 -0
  69. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/img/new-role.png +0 -0
  70. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/installing-providers-from-sources.rst +0 -0
  71. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/migrations-ref.rst +0 -0
  72. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/security.rst +0 -0
  73. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/docs/upgrading.rst +0 -0
  74. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/__init__.py +0 -0
  75. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/3rd-party-licenses/LICENSES-ui.txt +0 -0
  76. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/__init__.py +0 -0
  77. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/LICENSE +0 -0
  78. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/alembic.ini +0 -0
  79. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/__init__.py +0 -0
  80. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api/__init__.py +0 -0
  81. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api/auth/__init__.py +0 -0
  82. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api/auth/backend/__init__.py +0 -0
  83. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py +0 -0
  84. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py +0 -0
  85. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api/auth/backend/session.py +0 -0
  86. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api_endpoints/__init__.py +0 -0
  87. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/__init__.py +0 -0
  88. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/__init__.py +0 -0
  89. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/login.py +0 -0
  90. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/__init__.py +0 -0
  91. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/v2-fab-auth-manager-generated.yaml +0 -0
  92. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
  93. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
  94. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/services/login.py +0 -0
  95. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/cli_commands/__init__.py +0 -0
  96. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/cli_commands/db_command.py +0 -0
  97. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/cli_commands/definition.py +0 -0
  98. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/cli_commands/permissions_command.py +0 -0
  99. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/cli_commands/role_command.py +0 -0
  100. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/cli_commands/sync_perm_command.py +0 -0
  101. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/models/anonymous_user.py +0 -0
  102. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/openapi/__init__.py +0 -0
  103. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/openapi/v1-flask-api.yaml +0 -0
  104. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/schemas/__init__.py +0 -0
  105. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/schemas/role_and_permission_schema.py +0 -0
  106. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/schemas/user_schema.py +0 -0
  107. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/security_manager/__init__.py +0 -0
  108. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/security_manager/constants.py +0 -0
  109. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/views/__init__.py +0 -0
  110. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/views/permissions.py +0 -0
  111. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/views/roles_list.py +0 -0
  112. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/views/user_edit.py +0 -0
  113. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/auth_manager/views/user_stats.py +0 -0
  114. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/get_provider_info.py +0 -0
  115. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/migrations/README +0 -0
  116. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/migrations/__init__.py +0 -0
  117. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/migrations/env.py +0 -0
  118. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/migrations/script.py.mako +0 -0
  119. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/migrations/versions/__init__.py +0 -0
  120. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/version_compat.py +0 -0
  121. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/__init__.py +0 -0
  122. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/airflow_flask_app.py +0 -0
  123. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/api_connexion/__init__.py +0 -0
  124. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/api_connexion/exceptions.py +0 -0
  125. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/api_connexion/parameters.py +0 -0
  126. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/api_connexion/security.py +0 -0
  127. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/api_connexion/types.py +0 -0
  128. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/auth.py +0 -0
  129. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/constants.py +0 -0
  130. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/extensions/__init__.py +0 -0
  131. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/extensions/init_jinja_globals.py +0 -0
  132. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/extensions/init_manifest_files.py +0 -0
  133. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/extensions/init_security.py +0 -0
  134. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/extensions/init_views.py +0 -0
  135. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/extensions/init_wsgi_middlewares.py +0 -0
  136. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/package-lock.json +0 -0
  137. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/package.json +0 -0
  138. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/security/__init__.py +0 -0
  139. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/security/permissions.py +0 -0
  140. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/css/bootstrap-theme.css +0 -0
  141. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/css/flash.css +0 -0
  142. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/css/loading-dots.css +0 -0
  143. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/css/main.css +0 -0
  144. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/css/material-icons.css +0 -0
  145. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/48f0ea180c40270a5b05.png +0 -0
  146. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/649c0b07771e68fafdeb.png +0 -0
  147. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/743.fc7a7c6ef9d09365976e.js +0 -0
  148. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/743.fc7a7c6ef9d09365976e.js.LICENSE.txt +0 -0
  149. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ff5a35f322070b094aa2.css +0 -0
  150. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ff5a35f322070b094aa2.js +0 -0
  151. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/f7490d556a6c42e49ba4.png +0 -0
  152. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/flash.5583a9e0cf11f2be93da.css +0 -0
  153. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/flash.5583a9e0cf11f2be93da.js +0 -0
  154. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.css +0 -0
  155. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js +0 -0
  156. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js.LICENSE.txt +0 -0
  157. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/loadingDots.2e5f555f0753107b0300.css +0 -0
  158. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/loadingDots.2e5f555f0753107b0300.js +0 -0
  159. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.css +0 -0
  160. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.js +0 -0
  161. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.js.LICENSE.txt +0 -0
  162. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/manifest.json +0 -0
  163. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/materialIcons.3e67dd6fbfcc4f3b5105.css +0 -0
  164. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/materialIcons.3e67dd6fbfcc4f3b5105.js +0 -0
  165. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/moment.9baee5ec3d7639a10897.js +0 -0
  166. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/oss-licenses.json +0 -0
  167. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/dist/runtime.ad800fc1845ad5c6ddeb.js +0 -0
  168. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/js/datetime_utils.js +0 -0
  169. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/js/main.js +0 -0
  170. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/pin_100.png +0 -0
  171. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/pin_32.png +0 -0
  172. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/sort_asc.png +0 -0
  173. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/sort_both.png +0 -0
  174. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/static/sort_desc.png +0 -0
  175. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/templates/airflow/_messages.html +0 -0
  176. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/templates/airflow/error.html +0 -0
  177. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/templates/airflow/main.html +0 -0
  178. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/templates/airflow/traceback.html +0 -0
  179. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/templates/appbuilder/flash.html +0 -0
  180. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/templates/appbuilder/index.html +0 -0
  181. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/templates/appbuilder/navbar.html +0 -0
  182. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/templates/appbuilder/navbar_menu.html +0 -0
  183. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/templates/appbuilder/navbar_right.html +0 -0
  184. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/views.py +0 -0
  185. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/src/airflow/providers/fab/www/webpack.config.js +0 -0
  186. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/conftest.py +0 -0
  187. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/__init__.py +0 -0
  188. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/__init__.py +0 -0
  189. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/__init__.py +0 -0
  190. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api/__init__.py +0 -0
  191. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api/auth/__init__.py +0 -0
  192. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api/auth/backend/__init__.py +0 -0
  193. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api/auth/backend/test_kerberos_auth.py +0 -0
  194. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api_endpoints/__init__.py +0 -0
  195. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api_endpoints/api_connexion_utils.py +0 -0
  196. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api_endpoints/remote_user_api_auth_backend.py +0 -0
  197. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api_endpoints/test_auth.py +0 -0
  198. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api_fastapi/__init__.py +0 -0
  199. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api_fastapi/conftest.py +0 -0
  200. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
  201. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
  202. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/cli_commands/__init__.py +0 -0
  203. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/cli_commands/test_db_command.py +0 -0
  204. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/cli_commands/test_definition.py +0 -0
  205. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/cli_commands/test_permissions_command.py +0 -0
  206. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/cli_commands/test_sync_perm_command.py +0 -0
  207. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/conftest.py +0 -0
  208. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/models/__init__.py +0 -0
  209. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/models/test_anonymous_user.py +0 -0
  210. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/models/test_user_model.py +0 -0
  211. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/schemas/__init__.py +0 -0
  212. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/security_manager/__init__.py +0 -0
  213. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/security_manager/test_constants.py +0 -0
  214. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/security_manager/test_override.py +0 -0
  215. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/test_models.py +0 -0
  216. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/auth_manager/views/__init__.py +0 -0
  217. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/db_manager/__init__.py +0 -0
  218. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/db_manager/test_fab_db_manager.py +0 -0
  219. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/decorators.py +0 -0
  220. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/plugins/__init__.py +0 -0
  221. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/plugins/conftest.py +0 -0
  222. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/plugins/test_plugin.py +0 -0
  223. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/utils.py +0 -0
  224. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/www/__init__.py +0 -0
  225. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/www/test_auth.py +0 -0
  226. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/www/test_utils.py +0 -0
  227. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/www/views/__init__.py +0 -0
  228. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/www/views/conftest.py +0 -0
  229. {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc2}/tests/unit/fab/www/views/test_connection_form_fields.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-fab
3
- Version: 2.4.4rc1
3
+ Version: 3.0.0rc2
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>
@@ -25,9 +25,12 @@ Requires-Dist: apache-airflow>=3.0.2rc1
25
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
- Requires-Dist: flask-appbuilder==4.6.3; python_version < '3.13'
28
+ Requires-Dist: flask-appbuilder==5.0.0; python_version < '3.13'
29
29
  Requires-Dist: flask-login>=0.6.2; python_version < '3.13'
30
- Requires-Dist: flask-session>=0.4.0,<0.6; python_version < '3.13'
30
+ Requires-Dist: flask-session>=0.8.0; python_version < '3.13'
31
+ Requires-Dist: msgpack>=1.0.0; python_version < '3.13'
32
+ Requires-Dist: flask-sqlalchemy>=3.0.5; python_version < '3.13'
33
+ Requires-Dist: sqlalchemy<2; python_version < '3.13'
31
34
  Requires-Dist: flask-wtf>=1.1.0; python_version < '3.13'
32
35
  Requires-Dist: connexion[flask]>=2.14.2,<3.0; python_version < '3.13'
33
36
  Requires-Dist: jmespath>=0.7.0; python_version < '3.13'
@@ -36,8 +39,8 @@ Requires-Dist: wtforms>=3.0,<4; python_version < '3.13'
36
39
  Requires-Dist: flask_limiter>3,<4,!=3.13
37
40
  Requires-Dist: kerberos>=1.3.0 ; extra == "kerberos" and ( python_version < '3.13')
38
41
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
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
42
+ Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/3.0.0/changelog.html
43
+ Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/3.0.0
41
44
  Project-URL: Mastodon, https://fosstodon.org/@airflow
42
45
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
43
46
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -69,7 +72,7 @@ Provides-Extra: kerberos
69
72
 
70
73
  Package ``apache-airflow-providers-fab``
71
74
 
72
- Release: ``2.4.4``
75
+ Release: ``3.0.0``
73
76
 
74
77
 
75
78
  `Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
@@ -82,7 +85,7 @@ This is a provider package for ``fab`` provider. All classes for this provider p
82
85
  are in ``airflow.providers.fab`` python package.
83
86
 
84
87
  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.4/>`_.
88
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.0.0/>`_.
86
89
 
87
90
  Installation
88
91
  ------------
@@ -103,9 +106,12 @@ PIP package Version required
103
106
  ``apache-airflow-providers-common-compat`` ``>=1.2.1``
104
107
  ``blinker`` ``>=1.6.2; python_version < "3.13"``
105
108
  ``flask`` ``>=2.2.1,<2.3; python_version < "3.13"``
106
- ``flask-appbuilder`` ``==4.6.3; python_version < "3.13"``
109
+ ``flask-appbuilder`` ``==5.0.0; python_version < "3.13"``
107
110
  ``flask-login`` ``>=0.6.2; python_version < "3.13"``
108
- ``flask-session`` ``>=0.4.0,<0.6; python_version < "3.13"``
111
+ ``flask-session`` ``>=0.8.0; python_version < "3.13"``
112
+ ``msgpack`` ``>=1.0.0; python_version < "3.13"``
113
+ ``flask-sqlalchemy`` ``>=3.0.5; python_version < "3.13"``
114
+ ``sqlalchemy`` ``<2; python_version < "3.13"``
109
115
  ``flask-wtf`` ``>=1.1.0; python_version < "3.13"``
110
116
  ``connexion[flask]`` ``>=2.14.2,<3.0; python_version < "3.13"``
111
117
  ``jmespath`` ``>=0.7.0; python_version < "3.13"``
@@ -143,5 +149,5 @@ Extra Dependencies
143
149
  ============ ============================================
144
150
 
145
151
  The changelog for the provider package can be found in the
146
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.4/changelog.html>`_.
152
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.0.0/changelog.html>`_.
147
153
 
@@ -23,7 +23,7 @@
23
23
 
24
24
  Package ``apache-airflow-providers-fab``
25
25
 
26
- Release: ``2.4.4``
26
+ Release: ``3.0.0``
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.4/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.0.0/>`_.
40
40
 
41
41
  Installation
42
42
  ------------
@@ -57,9 +57,12 @@ PIP package Version required
57
57
  ``apache-airflow-providers-common-compat`` ``>=1.2.1``
58
58
  ``blinker`` ``>=1.6.2; python_version < "3.13"``
59
59
  ``flask`` ``>=2.2.1,<2.3; python_version < "3.13"``
60
- ``flask-appbuilder`` ``==4.6.3; python_version < "3.13"``
60
+ ``flask-appbuilder`` ``==5.0.0; python_version < "3.13"``
61
61
  ``flask-login`` ``>=0.6.2; python_version < "3.13"``
62
- ``flask-session`` ``>=0.4.0,<0.6; python_version < "3.13"``
62
+ ``flask-session`` ``>=0.8.0; python_version < "3.13"``
63
+ ``msgpack`` ``>=1.0.0; python_version < "3.13"``
64
+ ``flask-sqlalchemy`` ``>=3.0.5; python_version < "3.13"``
65
+ ``sqlalchemy`` ``<2; python_version < "3.13"``
63
66
  ``flask-wtf`` ``>=1.1.0; python_version < "3.13"``
64
67
  ``connexion[flask]`` ``>=2.14.2,<3.0; python_version < "3.13"``
65
68
  ``jmespath`` ``>=0.7.0; python_version < "3.13"``
@@ -97,4 +100,4 @@ Extra Dependencies
97
100
  ============ ============================================
98
101
 
99
102
  The changelog for the provider package can be found in the
100
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.4/changelog.html>`_.
103
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.0.0/changelog.html>`_.
@@ -20,6 +20,35 @@
20
20
  Changelog
21
21
  ---------
22
22
 
23
+ 3.0.0
24
+ .....
25
+
26
+ Breaking changes
27
+ ~~~~~~~~~~~~~~~~
28
+
29
+ Migrated to Flask-appbuilder 5 which removed the authentication type ``AUTH_OID``.
30
+ Using the authentication type ``AUTH_OID`` in fab provider is no longer possible.
31
+ Applications using ``AUTH_TYPE = AUTH_OID`` must migrate to ``AUTH_OAUTH``.
32
+
33
+ * ``Upgrade flask-appbuilder to version 5 (#50960)``
34
+
35
+ Features
36
+ ~~~~~~~~
37
+
38
+ * ``Support nested groups resolution for LDAP authentication in Fab auth manager``
39
+
40
+ Bug Fixes
41
+ ~~~~~~~~~
42
+
43
+ * ``Add 'if_not_exists=True' to FAB migration (#56100)``
44
+ * ``Add if_not_exists to index creation in migrations (#56328)``
45
+
46
+ .. Below changes are excluded from the changelog. Move them to
47
+ appropriate section above if needed. Do not delete the lines(!):
48
+ * ``Fix static check error resulting from not rebased change in FAB5 (#56178)``
49
+ * ``Remove placeholder Release Date in changelog and index files (#56056)``
50
+ * ``Prepare fab and amazon providers to release (September 2025) (#56241)``
51
+
23
52
  2.4.4
24
53
  .....
25
54
 
@@ -47,8 +76,6 @@ Doc-only
47
76
  .....
48
77
 
49
78
 
50
- Release Date: ``|PypiReleaseDate|``
51
-
52
79
  Bug Fixes
53
80
  ~~~~~~~~~
54
81
 
@@ -69,8 +96,6 @@ Misc
69
96
  .....
70
97
 
71
98
 
72
- Release Date: ``|PypiReleaseDate|``
73
-
74
99
  Bug Fixes
75
100
  ~~~~~~~~~
76
101
 
@@ -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.4
87
+ Release: 3.0.0
88
88
 
89
89
  Provider package
90
90
  ----------------
@@ -111,9 +111,12 @@ PIP package Version required
111
111
  ``apache-airflow-providers-common-compat`` ``>=1.2.1``
112
112
  ``blinker`` ``>=1.6.2; python_version < "3.13"``
113
113
  ``flask`` ``>=2.2.1,<2.3; python_version < "3.13"``
114
- ``flask-appbuilder`` ``==4.6.3; python_version < "3.13"``
114
+ ``flask-appbuilder`` ``==5.0.0; python_version < "3.13"``
115
115
  ``flask-login`` ``>=0.6.2; python_version < "3.13"``
116
- ``flask-session`` ``>=0.4.0,<0.6; python_version < "3.13"``
116
+ ``flask-session`` ``>=0.8.0; python_version < "3.13"``
117
+ ``msgpack`` ``>=1.0.0; python_version < "3.13"``
118
+ ``flask-sqlalchemy`` ``>=3.0.5; python_version < "3.13"``
119
+ ``sqlalchemy`` ``<2; python_version < "3.13"``
117
120
  ``flask-wtf`` ``>=1.1.0; python_version < "3.13"``
118
121
  ``connexion[flask]`` ``>=2.14.2,<3.0; python_version < "3.13"``
119
122
  ``jmespath`` ``>=0.7.0; python_version < "3.13"``
@@ -147,5 +150,5 @@ Downloading official packages
147
150
  You can download officially released packages and verify their checksums and signatures from the
148
151
  `Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
149
152
 
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>`__)
153
+ * `The apache-airflow-providers-fab 3.0.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-3.0.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-3.0.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-3.0.0.tar.gz.sha512>`__)
154
+ * `The apache-airflow-providers-fab 3.0.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-3.0.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-3.0.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-3.0.0-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: 1758734932
31
+ source-date-epoch: 1759212936
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
+ - 3.0.0
38
39
  - 2.4.4
39
40
  - 2.4.3
40
41
  - 2.4.2
@@ -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.4rc1"
28
+ version = "3.0.0rc2"
29
29
  description = "Provider package apache-airflow-providers-fab for Apache Airflow"
30
30
  readme = "README.rst"
31
31
  authors = [
@@ -70,11 +70,14 @@ dependencies = [
70
70
  # Every time we update FAB version here, please make sure that you review the classes and models in
71
71
  # `airflow/providers/fab/auth_manager/security_manager/override.py` with their upstream counterparts.
72
72
  # In particular, make sure any breaking changes, for example any new methods, are accounted for.
73
- "flask-appbuilder==4.6.3; python_version < '3.13'",
73
+ "flask-appbuilder==5.0.0; python_version < '3.13'",
74
74
  "flask-login>=0.6.2; python_version < '3.13'",
75
75
  # Flask-Session 0.6 add new arguments into the SqlAlchemySessionInterface constructor as well as
76
76
  # all parameters now are mandatory which make AirflowDatabaseSessionInterface incompatible with this version.
77
- "flask-session>=0.4.0,<0.6; python_version < '3.13'",
77
+ "flask-session>=0.8.0; python_version < '3.13'",
78
+ "msgpack>=1.0.0; python_version < '3.13'",
79
+ "flask-sqlalchemy>=3.0.5; python_version < '3.13'",
80
+ "sqlalchemy<2; python_version < '3.13'",
78
81
  "flask-wtf>=1.1.0; python_version < '3.13'",
79
82
  "connexion[flask]>=2.14.2,<3.0; python_version < '3.13'",
80
83
  "jmespath>=0.7.0; python_version < '3.13'",
@@ -130,8 +133,8 @@ apache-airflow-providers-common-sql = {workspace = true}
130
133
  apache-airflow-providers-standard = {workspace = true}
131
134
 
132
135
  [project.urls]
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"
136
+ "Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/3.0.0"
137
+ "Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/3.0.0/changelog.html"
135
138
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
136
139
  "Source Code" = "https://github.com/apache/airflow"
137
140
  "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.4"
32
+ __version__ = "3.0.0"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "3.0.2"
@@ -72,7 +72,7 @@ def get_role(*, role_name: str) -> APIResponse:
72
72
  def get_roles(*, order_by: str = "name", limit: int, offset: int | None = None) -> APIResponse:
73
73
  """Get roles."""
74
74
  security_manager = cast("FabAuthManager", get_auth_manager()).security_manager
75
- session = security_manager.get_session
75
+ session = security_manager.session
76
76
  total_entries = session.scalars(select(func.count(Role.id))).one()
77
77
  direction = desc if order_by.startswith("-") else asc
78
78
  to_replace = {"role_id": "id"}
@@ -99,7 +99,7 @@ def get_roles(*, order_by: str = "name", limit: int, offset: int | None = None)
99
99
  def get_permissions(*, limit: int, offset: int | None = None) -> APIResponse:
100
100
  """Get permissions."""
101
101
  security_manager = cast("FabAuthManager", get_auth_manager()).security_manager
102
- session = security_manager.get_session
102
+ session = security_manager.session
103
103
  total_entries = session.scalars(select(func.count(Action.id))).one()
104
104
  query = select(Action)
105
105
  actions = session.scalars(query.offset(offset).limit(limit)).all()
@@ -56,10 +56,10 @@ def get_user(*, username: str) -> APIResponse:
56
56
 
57
57
  @requires_access_custom_view("GET", permissions.RESOURCE_USER)
58
58
  @format_parameters({"limit": check_limit})
59
- def get_users(*, limit: int, order_by: str = "id", offset: str | None = None) -> APIResponse:
59
+ def get_users(*, limit: int, order_by: str = "id", offset: int | None = None) -> APIResponse:
60
60
  """Get users."""
61
61
  security_manager = cast("FabAuthManager", get_auth_manager()).security_manager
62
- session = security_manager.get_session
62
+ session = security_manager.session
63
63
  total_entries = session.execute(select(func.count(User.id))).scalar()
64
64
  direction = desc if order_by.startswith("-") else asc
65
65
  to_replace = {"user_id": "id"}
@@ -212,7 +212,7 @@ def delete_user(*, username: str) -> APIResponse:
212
212
  raise NotFound(title="User not found", detail=detail)
213
213
 
214
214
  user.roles = [] # Clear foreign keys on this user first.
215
- security_manager.get_session.delete(user)
216
- security_manager.get_session.commit()
215
+ security_manager.session.delete(user)
216
+ security_manager.session.commit()
217
217
 
218
218
  return NoContent, HTTPStatus.NO_CONTENT
@@ -23,6 +23,7 @@ from airflow.api_fastapi.core_api.openapi.exceptions import create_openapi_http_
23
23
  from airflow.configuration import conf
24
24
  from airflow.providers.fab.auth_manager.api_fastapi.datamodels.login import LoginBody, LoginResponse
25
25
  from airflow.providers.fab.auth_manager.api_fastapi.services.login import FABAuthManagerLogin
26
+ from airflow.providers.fab.auth_manager.cli_commands.utils import get_application_builder
26
27
 
27
28
  login_router = AirflowRouter(tags=["FabAuthManager"])
28
29
 
@@ -35,7 +36,8 @@ login_router = AirflowRouter(tags=["FabAuthManager"])
35
36
  )
36
37
  def create_token(body: LoginBody) -> LoginResponse:
37
38
  """Generate a new API token."""
38
- return FABAuthManagerLogin.create_token(body=body)
39
+ with get_application_builder():
40
+ return FABAuthManagerLogin.create_token(body=body)
39
41
 
40
42
 
41
43
  @login_router.post(
@@ -46,6 +48,7 @@ def create_token(body: LoginBody) -> LoginResponse:
46
48
  )
47
49
  def create_token_cli(body: LoginBody) -> LoginResponse:
48
50
  """Generate a new CLI API token."""
49
- return FABAuthManagerLogin.create_token(
50
- body=body, expiration_time_in_seconds=conf.getint("api_auth", "jwt_cli_expiration_time")
51
- )
51
+ with get_application_builder():
52
+ return FABAuthManagerLogin.create_token(
53
+ body=body, expiration_time_in_seconds=conf.getint("api_auth", "jwt_cli_expiration_time")
54
+ )
@@ -144,9 +144,8 @@ def users_delete(args):
144
144
  @providers_configuration_loaded
145
145
  def users_manage_role(args, remove=False):
146
146
  """Delete or appends user roles."""
147
- user = _find_user(args)
148
-
149
147
  with get_application_builder() as appbuilder:
148
+ user = _find_user(args)
150
149
  role = appbuilder.sm.find_role(args.role)
151
150
  if not role:
152
151
  valid_roles = appbuilder.sm.get_all_roles()
@@ -25,6 +25,7 @@ from os.path import isabs
25
25
  from typing import TYPE_CHECKING
26
26
 
27
27
  from flask import Flask
28
+ from flask_sqlalchemy import SQLAlchemy
28
29
  from sqlalchemy.engine import make_url
29
30
 
30
31
  import airflow
@@ -39,11 +40,11 @@ if TYPE_CHECKING:
39
40
 
40
41
 
41
42
  @cache
42
- def _return_appbuilder(app: Flask) -> AirflowAppBuilder:
43
+ def _return_appbuilder(app: Flask, db) -> AirflowAppBuilder:
43
44
  """Return an appbuilder instance for the given app."""
44
45
  init_appbuilder(app, enable_plugins=False)
45
46
  init_plugins(app)
46
- init_airflow_session_interface(app)
47
+ init_airflow_session_interface(app, db)
47
48
  return app.appbuilder # type: ignore[attr-defined]
48
49
 
49
50
 
@@ -63,4 +64,7 @@ def get_application_builder() -> Generator[AirflowAppBuilder, None, None]:
63
64
  "Please use absolute path such as `sqlite:////tmp/airflow.db`."
64
65
  )
65
66
  flask_app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
66
- yield _return_appbuilder(flask_app)
67
+
68
+ db = SQLAlchemy(flask_app)
69
+ yield _return_appbuilder(flask_app, db)
70
+ db.engine.dispose(close=True)
@@ -26,7 +26,7 @@ from urllib.parse import urljoin
26
26
  import packaging.version
27
27
  from connexion import FlaskApi
28
28
  from fastapi import FastAPI
29
- from flask import Blueprint, g
29
+ from flask import Blueprint, current_app, g
30
30
  from sqlalchemy import select
31
31
  from sqlalchemy.orm import Session, joinedload
32
32
  from starlette.middleware.wsgi import WSGIMiddleware
@@ -282,7 +282,7 @@ class FabAuthManager(BaseAuthManager[User]):
282
282
 
283
283
  def deserialize_user(self, token: dict[str, Any]) -> User:
284
284
  with create_session() as session:
285
- return session.get(User, int(token["sub"]))
285
+ return session.scalars(select(User).where(User.id == int(token["sub"]))).one()
286
286
 
287
287
  def serialize_user(self, user: User) -> dict[str, Any]:
288
288
  return {"sub": str(user.id)}
@@ -292,7 +292,7 @@ class FabAuthManager(BaseAuthManager[User]):
292
292
  user = self.get_user()
293
293
  return (
294
294
  self.appbuilder
295
- and self.appbuilder.get_app.config.get("AUTH_ROLE_PUBLIC", None)
295
+ and self.appbuilder.app.config.get("AUTH_ROLE_PUBLIC", None)
296
296
  or (not user.is_anonymous and user.is_active)
297
297
  )
298
298
 
@@ -470,14 +470,18 @@ class FabAuthManager(BaseAuthManager[User]):
470
470
  return {dag.dag_id for dag in session.execute(select(DagModel.dag_id))}
471
471
  if isinstance(user, AnonymousUser):
472
472
  return set()
473
- user_query = session.scalar(
474
- select(User)
475
- .options(
476
- joinedload(User.roles)
477
- .subqueryload(Role.permissions)
478
- .options(joinedload(Permission.action), joinedload(Permission.resource))
473
+ user_query = (
474
+ session.scalars(
475
+ select(User)
476
+ .options(
477
+ joinedload(User.roles)
478
+ .subqueryload(Role.permissions)
479
+ .options(joinedload(Permission.action), joinedload(Permission.resource))
480
+ )
481
+ .where(User.id == user.id)
479
482
  )
480
- .where(User.id == user.id)
483
+ .unique()
484
+ .one()
481
485
  )
482
486
  roles = user_query.roles
483
487
 
@@ -547,7 +551,7 @@ class FabAuthManager(BaseAuthManager[User]):
547
551
  if not self.appbuilder:
548
552
  raise AirflowException("AppBuilder is not initialized.")
549
553
 
550
- sm_from_config = self.appbuilder.get_app.config.get("SECURITY_MANAGER_CLASS")
554
+ sm_from_config = current_app.config.get("SECURITY_MANAGER_CLASS")
551
555
  if sm_from_config:
552
556
  if not issubclass(sm_from_config, FabAirflowSecurityManagerOverride):
553
557
  raise AirflowConfigException(