apache-airflow-providers-fab 3.0.0rc2__tar.gz → 3.1.2__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 (251) hide show
  1. apache_airflow_providers_fab-3.1.2/.pre-commit-config.yaml +60 -0
  2. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/3rd-party-licenses/LICENSES-ui.txt +1 -1
  3. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/NOTICE +1 -1
  4. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/PKG-INFO +13 -14
  5. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/README.rst +5 -6
  6. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/auth-manager/access-control.rst +1 -1
  7. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/auth-manager/api-authentication.rst +3 -3
  8. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/auth-manager/configuring-flask-app.rst +1 -1
  9. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/auth-manager/sso.rst +30 -4
  10. apache_airflow_providers_fab-3.1.2/docs/auth-manager/token.rst +155 -0
  11. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/auth-manager/webserver-authentication.rst +3 -1
  12. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/changelog.rst +169 -3
  13. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/cli-ref.rst +1 -1
  14. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/index.rst +5 -6
  15. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/provider.yaml +9 -2
  16. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/pyproject.toml +9 -11
  17. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/__init__.py +1 -1
  18. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py +2 -2
  19. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/login.py +0 -7
  20. apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/roles.py +63 -0
  21. apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/v2-fab-auth-manager-generated.yaml +553 -0
  22. apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/auth_manager/api_fastapi/parameters.py +55 -0
  23. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/login.py +36 -6
  24. apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/auth_manager/api_fastapi/routes/roles.py +137 -0
  25. apache_airflow_providers_fab-3.0.0rc2/tests/unit/fab/auth_manager/api_fastapi/conftest.py → apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/auth_manager/api_fastapi/security.py +10 -10
  26. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/services/login.py +13 -27
  27. apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/auth_manager/api_fastapi/services/roles.py +158 -0
  28. apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/auth_manager/api_fastapi/sorting.py +49 -0
  29. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/cli_commands/db_command.py +2 -2
  30. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/cli_commands/permissions_command.py +6 -2
  31. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/cli_commands/user_command.py +3 -3
  32. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/fab_auth_manager.py +37 -49
  33. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/models/__init__.py +7 -21
  34. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/models/db.py +1 -1
  35. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/security_manager/override.py +65 -21
  36. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/views/user.py +12 -0
  37. apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/cli/__init__.py +18 -0
  38. {apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/auth_manager/cli_commands → apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/cli}/definition.py +50 -2
  39. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/get_provider_info.py +1 -0
  40. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/version_compat.py +2 -0
  41. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/api_connexion/parameters.py +1 -46
  42. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/app.py +6 -8
  43. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/init_appbuilder.py +8 -4
  44. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/init_security.py +1 -1
  45. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/init_views.py +11 -7
  46. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/package-lock.json +506 -325
  47. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/package.json +13 -10
  48. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/session.py +5 -8
  49. apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/743.fc7a7c6ef9d09365976e.js → apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/743.0c0bf201ae17e66a9a3f.js +2 -2
  50. apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ff5a35f322070b094aa2.js → apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ef6fc04c9b6920cd75c9.js +1 -1
  51. apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/flash.5583a9e0cf11f2be93da.js → apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/flash.eaaf777ec1b3628cf7be.js +1 -1
  52. apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/loadingDots.2e5f555f0753107b0300.js → apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/loadingDots.76f4332c0a932c3dc08f.js +1 -1
  53. apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/main.bc1f701c3d133e2a3bab.js +2 -0
  54. apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/manifest.json +22 -0
  55. apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/materialIcons.3e67dd6fbfcc4f3b5105.js → apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/materialIcons.ad07a489b2f0fc1a96bf.js +1 -1
  56. apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/moment.5b85b4f6be2fe9c405ac.js +1 -0
  57. apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/runtime.254c277d91ce3ac79c64.js +1 -0
  58. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/views.py +19 -9
  59. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_endpoints/test_role_and_permission_endpoint.py +11 -11
  60. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_endpoints/test_user_endpoint.py +5 -5
  61. apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/conftest.py +70 -0
  62. apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/datamodels/test_roles.py +130 -0
  63. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_fastapi/routes/test_login.py +13 -4
  64. apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/routes/test_roles.py +554 -0
  65. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_fastapi/services/test_login.py +22 -42
  66. apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/services/test_roles.py +363 -0
  67. apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/test_parameters.py +70 -0
  68. apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/test_security.py +50 -0
  69. apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/test_sorting.py +69 -0
  70. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/cli_commands/test_db_command.py +18 -16
  71. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/cli_commands/test_permissions_command.py +3 -3
  72. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/cli_commands/test_role_command.py +2 -2
  73. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/cli_commands/test_user_command.py +6 -6
  74. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/models/test_user_model.py +3 -6
  75. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/security_manager/test_override.py +1 -1
  76. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/test_fab_auth_manager.py +62 -15
  77. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/test_security.py +10 -8
  78. apache_airflow_providers_fab-3.1.2/tests/unit/fab/cli/__init__.py +16 -0
  79. {apache_airflow_providers_fab-3.0.0rc2/tests/unit/fab/auth_manager/cli_commands → apache_airflow_providers_fab-3.1.2/tests/unit/fab/cli}/test_definition.py +1 -1
  80. apache_airflow_providers_fab-3.1.2/tests/unit/fab/db_manager/__init__.py +16 -0
  81. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/db_manager/test_fab_db_manager.py +1 -1
  82. apache_airflow_providers_fab-3.1.2/tests/unit/fab/plugins/__init__.py +16 -0
  83. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/plugins/test_plugin.py +1 -1
  84. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/www/test_auth.py +2 -2
  85. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/www/views/test_views_custom_user_views.py +39 -3
  86. apache_airflow_providers_fab-3.1.2/www-hash.txt +1 -0
  87. apache_airflow_providers_fab-3.0.0rc2/docs/auth-manager/token.rst +0 -45
  88. apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/v2-fab-auth-manager-generated.yaml +0 -153
  89. apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.js +0 -2
  90. apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/manifest.json +0 -22
  91. apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/moment.9baee5ec3d7639a10897.js +0 -1
  92. apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/runtime.ad800fc1845ad5c6ddeb.js +0 -1
  93. apache_airflow_providers_fab-3.0.0rc2/www-hash.txt +0 -1
  94. {apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab → apache_airflow_providers_fab-3.1.2}/LICENSE +0 -0
  95. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/api-ref/fab-public-api-ref.rst +0 -0
  96. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/api-ref/fab-token-api-ref.rst +0 -0
  97. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/auth-manager/index.rst +0 -0
  98. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/auth-manager/security.rst +0 -0
  99. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/commits.rst +0 -0
  100. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/conf.py +0 -0
  101. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/configurations-ref.rst +0 -0
  102. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/img/add-role.png +0 -0
  103. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/img/diagram_fab_auth_manager_airflow_architecture.md5sum +0 -0
  104. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/img/diagram_fab_auth_manager_airflow_architecture.png +0 -0
  105. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/img/diagram_fab_auth_manager_airflow_architecture.py +0 -0
  106. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/img/new-role.png +0 -0
  107. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/installing-providers-from-sources.rst +0 -0
  108. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/migrations-ref.rst +0 -0
  109. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/security.rst +0 -0
  110. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/docs/upgrading.rst +0 -0
  111. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/__init__.py +0 -0
  112. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/3rd-party-licenses/LICENSES-ui.txt +0 -0
  113. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/__init__.py +0 -0
  114. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/alembic.ini +0 -0
  115. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/__init__.py +0 -0
  116. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api/__init__.py +0 -0
  117. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api/auth/__init__.py +0 -0
  118. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api/auth/backend/__init__.py +0 -0
  119. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py +0 -0
  120. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py +0 -0
  121. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api/auth/backend/session.py +0 -0
  122. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_endpoints/__init__.py +0 -0
  123. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py +0 -0
  124. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/__init__.py +0 -0
  125. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/__init__.py +0 -0
  126. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/__init__.py +0 -0
  127. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
  128. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
  129. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/cli_commands/__init__.py +0 -0
  130. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/cli_commands/role_command.py +0 -0
  131. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/cli_commands/sync_perm_command.py +0 -0
  132. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/cli_commands/utils.py +0 -0
  133. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/models/anonymous_user.py +0 -0
  134. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/openapi/__init__.py +0 -0
  135. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/openapi/v1-flask-api.yaml +0 -0
  136. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/schemas/__init__.py +0 -0
  137. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/schemas/role_and_permission_schema.py +0 -0
  138. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/schemas/user_schema.py +0 -0
  139. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/security_manager/__init__.py +0 -0
  140. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/security_manager/constants.py +0 -0
  141. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/views/__init__.py +0 -0
  142. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/views/permissions.py +0 -0
  143. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/views/roles_list.py +0 -0
  144. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/views/user_edit.py +0 -0
  145. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/views/user_stats.py +0 -0
  146. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/migrations/README +0 -0
  147. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/migrations/__init__.py +0 -0
  148. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/migrations/env.py +0 -0
  149. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/migrations/script.py.mako +0 -0
  150. /apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/migrations/versions/0001_1_4_0_create_ab_tables_if_missing.py → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/migrations/versions/0000_1_4_0_create_ab_tables_if_missing.py +0 -0
  151. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/migrations/versions/__init__.py +0 -0
  152. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/__init__.py +0 -0
  153. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/airflow_flask_app.py +0 -0
  154. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/api_connexion/__init__.py +0 -0
  155. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/api_connexion/exceptions.py +0 -0
  156. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/api_connexion/security.py +0 -0
  157. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/api_connexion/types.py +0 -0
  158. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/auth.py +0 -0
  159. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/constants.py +0 -0
  160. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/__init__.py +0 -0
  161. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/init_jinja_globals.py +0 -0
  162. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/init_manifest_files.py +0 -0
  163. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/init_session.py +0 -0
  164. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/init_wsgi_middlewares.py +0 -0
  165. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/security/__init__.py +0 -0
  166. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/security/permissions.py +0 -0
  167. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/security_appless.py +0 -0
  168. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/security_manager.py +0 -0
  169. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/css/bootstrap-theme.css +0 -0
  170. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/css/flash.css +0 -0
  171. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/css/loading-dots.css +0 -0
  172. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/css/main.css +0 -0
  173. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/css/material-icons.css +0 -0
  174. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/dist/48f0ea180c40270a5b05.png +0 -0
  175. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/dist/649c0b07771e68fafdeb.png +0 -0
  176. /apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/743.fc7a7c6ef9d09365976e.js.LICENSE.txt → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/743.0c0bf201ae17e66a9a3f.js.LICENSE.txt +0 -0
  177. /apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ff5a35f322070b094aa2.css → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ef6fc04c9b6920cd75c9.css +0 -0
  178. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/dist/f7490d556a6c42e49ba4.png +0 -0
  179. /apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/flash.5583a9e0cf11f2be93da.css → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/flash.eaaf777ec1b3628cf7be.css +0 -0
  180. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.css +0 -0
  181. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js +0 -0
  182. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js.LICENSE.txt +0 -0
  183. /apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/loadingDots.2e5f555f0753107b0300.css → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/loadingDots.76f4332c0a932c3dc08f.css +0 -0
  184. /apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.css → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/main.bc1f701c3d133e2a3bab.css +0 -0
  185. /apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.js.LICENSE.txt → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/main.bc1f701c3d133e2a3bab.js.LICENSE.txt +0 -0
  186. /apache_airflow_providers_fab-3.0.0rc2/src/airflow/providers/fab/www/static/dist/materialIcons.3e67dd6fbfcc4f3b5105.css → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/materialIcons.ad07a489b2f0fc1a96bf.css +0 -0
  187. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/dist/oss-licenses.json +0 -0
  188. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/js/datetime_utils.js +0 -0
  189. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/js/main.js +0 -0
  190. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/pin_100.png +0 -0
  191. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/pin_32.png +0 -0
  192. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/sort_asc.png +0 -0
  193. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/sort_both.png +0 -0
  194. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/sort_desc.png +0 -0
  195. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/airflow/_messages.html +0 -0
  196. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/airflow/error.html +0 -0
  197. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/airflow/main.html +0 -0
  198. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/airflow/traceback.html +0 -0
  199. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/appbuilder/flash.html +0 -0
  200. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/appbuilder/index.html +0 -0
  201. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/appbuilder/navbar.html +0 -0
  202. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/appbuilder/navbar_menu.html +0 -0
  203. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/appbuilder/navbar_right.html +0 -0
  204. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/utils.py +0 -0
  205. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/webpack.config.js +0 -0
  206. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/conftest.py +0 -0
  207. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/__init__.py +0 -0
  208. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/__init__.py +0 -0
  209. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/__init__.py +0 -0
  210. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api/__init__.py +0 -0
  211. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api/auth/__init__.py +0 -0
  212. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api/auth/backend/__init__.py +0 -0
  213. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api/auth/backend/test_basic_auth.py +0 -0
  214. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api/auth/backend/test_kerberos_auth.py +0 -0
  215. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api/auth/backend/test_session.py +0 -0
  216. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_endpoints/__init__.py +0 -0
  217. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_endpoints/api_connexion_utils.py +0 -0
  218. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_endpoints/remote_user_api_auth_backend.py +0 -0
  219. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_endpoints/test_auth.py +0 -0
  220. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_fastapi/__init__.py +0 -0
  221. {apache_airflow_providers_fab-3.0.0rc2/tests/unit/fab/auth_manager/api_fastapi/routes → apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/datamodels}/__init__.py +0 -0
  222. {apache_airflow_providers_fab-3.0.0rc2/tests/unit/fab/auth_manager/cli_commands → apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/routes}/__init__.py +0 -0
  223. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
  224. {apache_airflow_providers_fab-3.0.0rc2/tests/unit/fab/auth_manager/security_manager → apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/cli}/__init__.py +0 -0
  225. {apache_airflow_providers_fab-3.0.0rc2/tests/unit/fab/db_manager → apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/cli_commands}/__init__.py +0 -0
  226. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/cli_commands/test_sync_perm_command.py +0 -0
  227. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/cli_commands/test_utils.py +0 -0
  228. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/conftest.py +0 -0
  229. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/models/__init__.py +0 -0
  230. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/models/test_anonymous_user.py +0 -0
  231. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/models/test_db.py +0 -0
  232. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/schemas/__init__.py +0 -0
  233. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/schemas/test_role_and_permission_schema.py +0 -0
  234. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/schemas/test_user_schema.py +0 -0
  235. {apache_airflow_providers_fab-3.0.0rc2/tests/unit/fab/plugins → apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/security_manager}/__init__.py +0 -0
  236. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/security_manager/test_constants.py +0 -0
  237. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/test_models.py +0 -0
  238. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/views/__init__.py +0 -0
  239. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/views/test_permissions.py +0 -0
  240. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/views/test_roles_list.py +0 -0
  241. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/views/test_user.py +0 -0
  242. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/views/test_user_edit.py +0 -0
  243. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/views/test_user_stats.py +0 -0
  244. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/decorators.py +0 -0
  245. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/plugins/conftest.py +0 -0
  246. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/utils.py +0 -0
  247. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/www/__init__.py +0 -0
  248. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/www/test_utils.py +0 -0
  249. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/www/views/__init__.py +0 -0
  250. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/www/views/conftest.py +0 -0
  251. {apache_airflow_providers_fab-3.0.0rc2 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/www/views/test_connection_form_fields.py +0 -0
@@ -0,0 +1,60 @@
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
+ default_stages: [pre-commit, pre-push]
19
+ minimum_prek_version: '0.2.0'
20
+ default_language_version:
21
+ python: python3
22
+ node: 22.19.0
23
+ golang: 1.24.0
24
+ repos:
25
+ - repo: local
26
+ hooks:
27
+ - id: compile-fab-assets
28
+ name: Compile FAB provider assets
29
+ language: node
30
+ files: ^src/airflow/providers/fab/www/
31
+ exclude: |
32
+ (?x)
33
+ ^src/airflow/providers/fab/www/api_connexion/.*|
34
+ ^src/airflow/providers/fab/www/extensions/.*|
35
+ ^src/airflow/providers/fab/www/security/.*
36
+ entry: ../../scripts/ci/prek/compile_provider_assets.py fab
37
+ pass_filenames: false
38
+ additional_dependencies: ['yarn@1.22.21']
39
+ - id: generate-openapi-spec-fab
40
+ name: Generate the FastAPI API spec for FAB
41
+ language: python
42
+ entry: ../../scripts/ci/prek/generate_openapi_spec_providers.py fab
43
+ pass_filenames: false
44
+ files: ^src/airflow/providers/fab/auth_manager/api_fastapi/.*\.py$
45
+ - id: check-revision-heads-map-fab
46
+ name: Check that the REVISION_HEADS_MAP is up-to-date
47
+ language: python
48
+ entry: ../../scripts/ci/prek/check_revision_heads_map.py
49
+ pass_filenames: false
50
+ files: >
51
+ (?x)
52
+ ^src/airflow/providers/fab/migrations/versions/.*$|
53
+ ^src/airflow/providers/fab/migrations/versions|
54
+ ^src/airflow/providers/fab/auth_manager/models/db\.py$
55
+ - id: prevent-deprecated-sqlalchemy-usage-fab
56
+ name: Prevent deprecated sqlalchemy usage
57
+ entry: ../../scripts/ci/prek/prevent_deprecated_sqlalchemy_usage.py
58
+ language: python
59
+ files: ^.*\.py$
60
+ pass_filenames: true
@@ -1,5 +1,5 @@
1
1
  Apache Airflow
2
- Copyright 2016-2025 The Apache Software Foundation
2
+ Copyright 2016-2026 The Apache Software Foundation
3
3
 
4
4
  This product includes software developed at The Apache Software
5
5
  Foundation (http://www.apache.org/).
@@ -1,5 +1,5 @@
1
1
  Apache Airflow
2
- Copyright 2016-2025 The Apache Software Foundation
2
+ Copyright 2016-2026 The Apache Software Foundation
3
3
 
4
4
  This product includes software developed at The Apache Software
5
5
  Foundation (http://www.apache.org/).
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-fab
3
- Version: 3.0.0rc2
3
+ Version: 3.1.2
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>
7
7
  Maintainer-email: Apache Software Foundation <dev@airflow.apache.org>
8
8
  Requires-Python: >=3.10,!=3.13
9
9
  Description-Content-Type: text/x-rst
10
+ License-Expression: Apache-2.0
10
11
  Classifier: Development Status :: 5 - Production/Stable
11
12
  Classifier: Environment :: Console
12
13
  Classifier: Environment :: Web Environment
@@ -14,23 +15,22 @@ Classifier: Intended Audience :: Developers
14
15
  Classifier: Intended Audience :: System Administrators
15
16
  Classifier: Framework :: Apache Airflow
16
17
  Classifier: Framework :: Apache Airflow :: Provider
17
- Classifier: License :: OSI Approved :: Apache Software License
18
18
  Classifier: Programming Language :: Python :: 3.10
19
19
  Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
21
  Classifier: Topic :: System :: Monitoring
22
22
  License-File: 3rd-party-licenses/LICENSES-ui.txt
23
+ License-File: LICENSE
23
24
  License-File: NOTICE
24
- Requires-Dist: apache-airflow>=3.0.2rc1
25
- Requires-Dist: apache-airflow-providers-common-compat>=1.2.1rc1
25
+ Requires-Dist: apache-airflow>=3.0.2
26
+ Requires-Dist: apache-airflow-providers-common-compat>=1.12.0
26
27
  Requires-Dist: blinker>=1.6.2; python_version < '3.13'
27
28
  Requires-Dist: flask>=2.2.1,<2.3; python_version < '3.13'
28
- Requires-Dist: flask-appbuilder==5.0.0; python_version < '3.13'
29
+ Requires-Dist: flask-appbuilder==5.0.1; python_version < '3.13'
29
30
  Requires-Dist: flask-login>=0.6.2; python_version < '3.13'
30
31
  Requires-Dist: flask-session>=0.8.0; python_version < '3.13'
31
32
  Requires-Dist: msgpack>=1.0.0; python_version < '3.13'
32
33
  Requires-Dist: flask-sqlalchemy>=3.0.5; python_version < '3.13'
33
- Requires-Dist: sqlalchemy<2; python_version < '3.13'
34
34
  Requires-Dist: flask-wtf>=1.1.0; python_version < '3.13'
35
35
  Requires-Dist: connexion[flask]>=2.14.2,<3.0; python_version < '3.13'
36
36
  Requires-Dist: jmespath>=0.7.0; python_version < '3.13'
@@ -39,8 +39,8 @@ Requires-Dist: wtforms>=3.0,<4; python_version < '3.13'
39
39
  Requires-Dist: flask_limiter>3,<4,!=3.13
40
40
  Requires-Dist: kerberos>=1.3.0 ; extra == "kerberos" and ( python_version < '3.13')
41
41
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
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
42
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-fab/3.1.2/changelog.html
43
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/3.1.2
44
44
  Project-URL: Mastodon, https://fosstodon.org/@airflow
45
45
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
46
46
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -72,7 +72,7 @@ Provides-Extra: kerberos
72
72
 
73
73
  Package ``apache-airflow-providers-fab``
74
74
 
75
- Release: ``3.0.0``
75
+ Release: ``3.1.2``
76
76
 
77
77
 
78
78
  `Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
@@ -85,7 +85,7 @@ This is a provider package for ``fab`` provider. All classes for this provider p
85
85
  are in ``airflow.providers.fab`` python package.
86
86
 
87
87
  You can find package information and changelog for the provider
88
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.0.0/>`_.
88
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.1.2/>`_.
89
89
 
90
90
  Installation
91
91
  ------------
@@ -103,15 +103,14 @@ Requirements
103
103
  PIP package Version required
104
104
  ========================================== ==========================================
105
105
  ``apache-airflow`` ``>=3.0.2``
106
- ``apache-airflow-providers-common-compat`` ``>=1.2.1``
106
+ ``apache-airflow-providers-common-compat`` ``>=1.10.1``
107
107
  ``blinker`` ``>=1.6.2; python_version < "3.13"``
108
108
  ``flask`` ``>=2.2.1,<2.3; python_version < "3.13"``
109
- ``flask-appbuilder`` ``==5.0.0; python_version < "3.13"``
109
+ ``flask-appbuilder`` ``==5.0.1; python_version < "3.13"``
110
110
  ``flask-login`` ``>=0.6.2; python_version < "3.13"``
111
111
  ``flask-session`` ``>=0.8.0; python_version < "3.13"``
112
112
  ``msgpack`` ``>=1.0.0; python_version < "3.13"``
113
113
  ``flask-sqlalchemy`` ``>=3.0.5; python_version < "3.13"``
114
- ``sqlalchemy`` ``<2; python_version < "3.13"``
115
114
  ``flask-wtf`` ``>=1.1.0; python_version < "3.13"``
116
115
  ``connexion[flask]`` ``>=2.14.2,<3.0; python_version < "3.13"``
117
116
  ``jmespath`` ``>=0.7.0; python_version < "3.13"``
@@ -149,5 +148,5 @@ Extra Dependencies
149
148
  ============ ============================================
150
149
 
151
150
  The changelog for the provider package can be found in the
152
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.0.0/changelog.html>`_.
151
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.1.2/changelog.html>`_.
153
152
 
@@ -23,7 +23,7 @@
23
23
 
24
24
  Package ``apache-airflow-providers-fab``
25
25
 
26
- Release: ``3.0.0``
26
+ Release: ``3.1.2``
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/3.0.0/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.1.2/>`_.
40
40
 
41
41
  Installation
42
42
  ------------
@@ -54,15 +54,14 @@ Requirements
54
54
  PIP package Version required
55
55
  ========================================== ==========================================
56
56
  ``apache-airflow`` ``>=3.0.2``
57
- ``apache-airflow-providers-common-compat`` ``>=1.2.1``
57
+ ``apache-airflow-providers-common-compat`` ``>=1.10.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`` ``==5.0.0; python_version < "3.13"``
60
+ ``flask-appbuilder`` ``==5.0.1; python_version < "3.13"``
61
61
  ``flask-login`` ``>=0.6.2; python_version < "3.13"``
62
62
  ``flask-session`` ``>=0.8.0; python_version < "3.13"``
63
63
  ``msgpack`` ``>=1.0.0; python_version < "3.13"``
64
64
  ``flask-sqlalchemy`` ``>=3.0.5; python_version < "3.13"``
65
- ``sqlalchemy`` ``<2; python_version < "3.13"``
66
65
  ``flask-wtf`` ``>=1.1.0; python_version < "3.13"``
67
66
  ``connexion[flask]`` ``>=2.14.2,<3.0; python_version < "3.13"``
68
67
  ``jmespath`` ``>=0.7.0; python_version < "3.13"``
@@ -100,4 +99,4 @@ Extra Dependencies
100
99
  ============ ============================================
101
100
 
102
101
  The changelog for the provider package can be found in the
103
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.0.0/changelog.html>`_.
102
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.1.2/changelog.html>`_.
@@ -333,7 +333,7 @@ It's also possible to add Dag Runs resource permissions in a similar way, but ex
333
333
  dag_id="example_fine_grained_access",
334
334
  start_date=pendulum.datetime(2021, 1, 1, tz="UTC"),
335
335
  access_control={
336
- "Viewer": {"Dags": {"can_edit", "can_read", "can_delete"}, "Dag Runs": {"can_create"}},
336
+ "Viewer": {"DAGs": {"can_edit", "can_read", "can_delete"}, "DAG Runs": {"can_create"}},
337
337
  },
338
338
  )
339
339
 
@@ -38,9 +38,9 @@ command as in the example below.
38
38
 
39
39
  .. versionchanged:: 3.0.0
40
40
 
41
- In Airflow, the default setting is using token based authentication.
42
- This approach is independent from which ``auth_backend`` is used.
43
- The default setting is using Airflow public API to create a token (JWT) first and use this token in the requests to access the API.
41
+ Airflow now uses token-based authentication for the public API.
42
+ This mechanism is independent of the configured ``auth_backend``.
43
+ Clients must first obtain a JWT token using :doc:`token`, then include that token in subsequent API requests.
44
44
 
45
45
  Kerberos authentication
46
46
  '''''''''''''''''''''''
@@ -33,6 +33,6 @@ as the `app context <https://flask.palletsprojects.com/en/2.3.x/appcontext/>`_ i
33
33
  from flask import current_app as app
34
34
 
35
35
 
36
- @app.before_requestq
36
+ @app.before_request
37
37
  def print_custom_message() -> None:
38
38
  print("Executing before every request")
@@ -59,7 +59,33 @@ Configuration Steps
59
59
 
60
60
  This replaces the default ``SimpleAuthManager``.
61
61
 
62
- 2. **Install Required Packages**
62
+ 2. **Enable OAuth Authentication Type**
63
+
64
+ Set ``AUTH_TYPE`` to ``AUTH_OAUTH`` in your ``webserver_config.py`` file
65
+ (located at ``$AIRFLOW_HOME/webserver_config.py`` by default, configurable via
66
+ ``[fab] config_file`` in ``airflow.cfg``):
67
+
68
+ .. code-block:: python
69
+
70
+ from flask_appbuilder.const import AUTH_OAUTH
71
+
72
+ AUTH_TYPE = AUTH_OAUTH
73
+
74
+ .. important::
75
+ This step is required. Without setting ``AUTH_TYPE = AUTH_OAUTH``,
76
+ the OAuth providers will not be activated even if ``OAUTH_PROVIDERS``
77
+ is configured. The default ``AUTH_TYPE = AUTH_DB`` uses database
78
+ authentication only.
79
+
80
+ .. note::
81
+ If the ``webserver_config.py`` file does not exist in your environment,
82
+ you need to create it manually. A template with default values and examples
83
+ can be found in the Airflow source at
84
+ ``airflow-core/src/airflow/config_templates/default_webserver_config.py``.
85
+ You can copy this file to ``$AIRFLOW_HOME/webserver_config.py`` and modify
86
+ it for your needs.
87
+
88
+ 3. **Install Required Packages**
63
89
 
64
90
  If not already installed, ensure the FAB provider is available:
65
91
 
@@ -71,7 +97,7 @@ Configuration Steps
71
97
  The FAB Auth Manager provider is not installed by default in Airflow 3.
72
98
  You must install it explicitly to use OAuth2-based SSO.
73
99
 
74
- 3. **Configure OAuth2 Provider**
100
+ 4. **Configure OAuth2 Provider**
75
101
 
76
102
  FAB Auth Manager reads provider configuration from the ``[fab]`` section
77
103
  of ``airflow.cfg`` or from environment variables.
@@ -119,13 +145,13 @@ Configuration Steps
119
145
 
120
146
  Adjust these values according to your provider's documentation.
121
147
 
122
- 4. **Restart Airflow Webserver**
148
+ 5. **Restart Airflow Webserver**
123
149
 
124
150
  .. code-block:: bash
125
151
 
126
152
  airflow webserver --reload
127
153
 
128
- 5. **Test SSO Login**
154
+ 6. **Test SSO Login**
129
155
 
130
156
  Open the Airflow UI. You should see a login option for your SSO provider.
131
157
 
@@ -0,0 +1,155 @@
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
+ Generate JWT token with FAB auth manager
19
+ ========================================
20
+
21
+ .. note::
22
+ This guide only applies if your environment is configured with FAB auth manager.
23
+
24
+ To use the :doc:`Airflow public API <apache-airflow:stable-rest-api-ref>`, you first need to obtain a JWT Token for
25
+ authentication.
26
+ Once you have the token, include it in the ``Authorization`` header when making requests to the public API.
27
+
28
+ You can generate a JWT token using the ``Create Token`` API endpoint,
29
+ documented in :doc:`/api-ref/fab-token-api-ref`.
30
+
31
+ Example
32
+ '''''''
33
+
34
+ Use the following example to generate a token via username and password.
35
+
36
+ .. code-block:: bash
37
+
38
+ ENDPOINT_URL="http://localhost:8080"
39
+ curl -X 'POST' \
40
+ "${ENDPOINT_URL}/auth/token" \
41
+ -H 'Content-Type: application/json' \
42
+ -d '{
43
+ "username": "<username>",
44
+ "password": "<password>"
45
+ }'
46
+
47
+ If successful, this request returns a JWT token that you can use for subsequent Airflow public API calls.
48
+
49
+ Only users authenticated via the database (``AUTH_TYPE = AUTH_DB``) or LDAP
50
+ (``AUTH_TYPE = AUTH_LDAP``) can generate tokens using this method.
51
+ For more details, see :doc:`webserver-authentication`.
52
+
53
+ If you need to generate a token using a different authentication mechanism, see the next section.
54
+
55
+ Custom authentication implementation
56
+ ------------------------------------
57
+
58
+ By default, JWT tokens for the Airflow public API can only be generated using
59
+ basic authentication (username and password) for database or LDAP users.
60
+
61
+ If you want to support another authentication mechanism, such as oauth, you can do so by overriding the
62
+ ``create_token`` method in the FAB auth manager.
63
+
64
+ Example
65
+ '''''''
66
+
67
+ .. code-block:: python
68
+
69
+ class MyAuthManager(FabAuthManager):
70
+
71
+ def create_token(self, headers: dict[str, str], body: dict[str, Any]) -> User:
72
+ """
73
+ Return the authenticated user for a given payload.
74
+
75
+ Implement your own custom token creation logic here.
76
+ """
77
+ ...
78
+
79
+ Oauth example
80
+ '''''''''''''
81
+
82
+ Below is an example implementation that uses OAuth to allow users to obtain a JWT token.
83
+ This custom logic overrides the default ``create_token`` method from the FAB authentication manager.
84
+
85
+ .. warning::
86
+ The example shown below disables signature verification (``verify_signature=False``).
87
+ This is **insecure** and should only be used for testing. Always validate tokens properly in production.
88
+ Furthermore you need to make sure that the claims of the JWT are valid.
89
+ Critical claims that you must verify are for example (but not limited to):
90
+ - ``iss`` (issuer)
91
+ - ``aud`` (audience)
92
+ - ``nbf`` (not before time)
93
+ - ``exp`` (expiration time)
94
+ Refer to the documentation of your identity provider for more information.
95
+
96
+ .. code-block:: python
97
+
98
+ class MyAuthManager(FabAuthManager):
99
+
100
+ def create_token(self, headers: dict[str, str], body: dict[str, Any]) -> User:
101
+ """
102
+ Return the authenticated user derived from an OAuth access token.
103
+
104
+ Implement your own custom token validation and user mapping logic here.
105
+ """
106
+ user = None
107
+
108
+ # Handle OAuth-based authentication
109
+ if self.security_manager.auth_type == AUTH_OAUTH:
110
+ # Require a Bearer token
111
+ auth_header = headers.get("Authorization")
112
+ if not auth_header:
113
+ return None
114
+
115
+ token = auth_header.replace("Bearer ", "")
116
+
117
+ # Example token decoding
118
+ #
119
+ # With signature validation (recommended):
120
+ # me = jwt.decode(
121
+ # token,
122
+ # public_key,
123
+ # algorithms=['HS256', 'RS256'],
124
+ # audience=CLIENT_ID,
125
+ # issuer=ISSUER_URL,
126
+ # )
127
+ #
128
+ # Without signature validation (not recommended):
129
+ me = jwt.decode(token, options={"verify_signature": False})
130
+
131
+ # Extract groups/roles (example schema — adjust to your provider)
132
+ groups = me["resource_access"]["airflow"]["roles"] # requires validation
133
+ if not groups:
134
+ groups = ["airflow_public"]
135
+ else:
136
+ groups = [g for g in groups if "airflow" in g]
137
+
138
+ # Build user info payload for FAB
139
+ userinfo = {
140
+ "username": me.get("preferred_username"),
141
+ "email": me.get("email"),
142
+ "first_name": me.get("given_name"),
143
+ "last_name": me.get("family_name"),
144
+ "role_keys": groups,
145
+ }
146
+
147
+ user = self.security_manager.auth_user_oauth(userinfo, rotate_session_id=False)
148
+
149
+ # Fall back to the default implementation
150
+ else:
151
+ user = super().create_token(headers=headers, body=body)
152
+
153
+ log.info("User: %s", user)
154
+
155
+ return user
@@ -23,7 +23,9 @@ FAB auth manager authentication
23
23
  While this documentation refers to authentication using the ``apache-airflow-providers-fab`` package, please note:
24
24
 
25
25
  - The **FAB auth provider** is actively maintained and compatible with the latest versions of Airflow.
26
- - The legacy ``webserver_config.py`` file referenced in older docs is **no longer used** in recent versions of Airflow. Instead, authentication is handled via the new ``auth_manager`` framework configured in ``airflow.cfg``.
26
+ - It is preferred to configure supported authentication options using the new ``auth_manager`` framework configured in ``airflow.cfg``.
27
+ - The ``webserver_config.py`` file is still used for more advanced options,
28
+ such as Single Sign-On with OAuth.
27
29
 
28
30
  For more, see the :doc:`token`.
29
31
 
@@ -20,6 +20,174 @@
20
20
  Changelog
21
21
  ---------
22
22
 
23
+ 3.1.2
24
+ .....
25
+
26
+ Bug Fixes
27
+ ~~~~~~~~~
28
+
29
+ * ``Fab Auth Manager add xcom missing perms (#60315)``
30
+ * ``Fix typos in CLI commands (#60227)``
31
+ * ``Hide Groups field from User edit form in FAB Auth Manager (#60019)``
32
+ * ``Fix user creation in FAB fails when no role specified (#60015)``
33
+
34
+ Misc
35
+ ~~~~
36
+
37
+ * ``Change starlette import to fastapi (#60382)``
38
+ * ``New year means updated Copyright notices (#60344)``
39
+ * ``rename names of data models related to roles for consistency across requests and responses (#60312)``
40
+ * ``Introduce a "cli" section in provider metadata (#59805)``
41
+ * ``Move over plugins_manager to a shared library (#59956)``
42
+ * ``Bump the fab-ui-package-updates group across 1 directory with 4 updates (#59717)``
43
+ * ``Make FAB AirflowAppBuilder use scoped_session (#59953)``
44
+ * ``Upgrade SQLAlchemy (SQLA) to 2.0 (#59218)``
45
+
46
+ Doc-only
47
+ ~~~~~~~~
48
+
49
+ * ``Clarify note re: webserver_config.py deprecation (#59529)``
50
+ * ``#59475 (docs): added few clarification docs for OAuth Authentication type (#60109)``
51
+
52
+ .. Below changes are excluded from the changelog. Move them to
53
+ appropriate section above if needed. Do not delete the lines(!):
54
+
55
+ 3.1.1
56
+ .....
57
+
58
+ Misc
59
+ ~~~~
60
+
61
+ * ``Remove global from plugins_manager (#59851)``
62
+ * ``Replace imports from airflow.security.permissions module in fab provider due to future deprecation of the module. (#59755)``
63
+ * ``Split SerializedBaseOperator from serde logic (#59627)``
64
+ * ``Adaptions for custom auth manager example in documentation (#59355)``
65
+ * ``Pnpm upgrade to 10.x and prevent script execution (#59466)``
66
+ * ``Bump the fab-ui-package-updates group across 1 directory with 3 updates (#59242)``
67
+
68
+ Doc-only
69
+ ~~~~~~~~
70
+
71
+ * ``Add hints for claim validation to auth manager documentation (#59320)``
72
+ * ``Fix release process issues after going through 2025-12-09 release (#59261)``
73
+
74
+ .. Below changes are excluded from the changelog. Move them to
75
+ appropriate section above if needed. Do not delete the lines(!):
76
+
77
+ 3.1.0
78
+ .....
79
+
80
+ Features
81
+ ~~~~~~~~
82
+
83
+ * ``Create 'create_token' method in FAB auth manager (#59245)``
84
+
85
+ Bug Fixes
86
+ ~~~~~~~~~
87
+
88
+ * ``Permit 'airflow db migrate -r' with an empty database (#59205)``
89
+
90
+ Misc
91
+ ~~~~
92
+
93
+ * ``Add backcompat for exceptions in providers (#58727)``
94
+ * ``Remove global statement from Fab provider (#59018)``
95
+ * ``Bump the fab-ui-package-updates group across 1 directory with 2 updates (#58954)``
96
+ * ``Bump minimum prek version to 0.2.0 (#58952)``
97
+ * ``Use 'HTTP_422_UNPROCESSABLE_CONTENT' instead of 'HTTP_422_UNPROCESSABLE_ENTITY' (#58828)``
98
+
99
+ Doc-only
100
+ ~~~~~~~~
101
+
102
+ * ``docs: adjust misleading docs (#59228)``
103
+
104
+ .. Below changes are excluded from the changelog. Move them to
105
+ appropriate section above if needed. Do not delete the lines(!):
106
+
107
+
108
+ 3.0.3
109
+ .....
110
+
111
+ Misc
112
+ ~~~~
113
+
114
+ * ``Bump stylelint from 16.25.0 to 16.26.0 in /providers/fab/src/airflow/providers/fab/www in the fab-ui-package-updates group across 1 directory (#58678)``
115
+ * ``Remove deprecation warning in Fab provider (#58686)``
116
+ * ``Fix mypy errors in providers (#58644)``
117
+ * ``Bump webpack from 5.102.1 to 5.103.0 in /providers/fab/src/airflow/providers/fab/www in the fab-ui-package-updates group across 1 directory (#58634)``
118
+ * ``Upgrade js-yaml to 4.1.1 in FAB (#58501)``
119
+ * ``Migrate FAB PATCH /roles/{name} to FastAPI (#58023)``
120
+
121
+ .. Below changes are excluded from the changelog. Move them to
122
+ appropriate section above if needed. Do not delete the lines(!):
123
+ * ``Updates to release process of providers (#58316)``
124
+
125
+ 3.0.2
126
+ .....
127
+
128
+ Bug Fixes
129
+ ~~~~~~~~~
130
+
131
+ * ``Fix duplicated SQLAlchemy sessions caused transactions fail to close (#58196)``
132
+ * ``Fix logout in Fab and Keycloak auth managers (#57992)``
133
+ * ``Fix double redirection while authenticating in Fab auth manager (#57993)``
134
+ * ``Fix remote user authentication in Fab auth manager (#57775)``
135
+ * ``Fix Fab auth manager with 'securecookie' as session backend (#57578)``
136
+
137
+ Misc
138
+ ~~~~
139
+
140
+ * ``Convert all airflow distributions to be compliant with ASF requirements (#58138)``
141
+ * ``Migrate FAB GET /roles/{name} to FastAPI (#58009)``
142
+ * ``Migrate FAB DELETE /roles to FastAPI (#57780)``
143
+ * ``Bump the fab-ui-package-updates group across 1 directory with 2 updates (#57760)``
144
+ * ``Migrate FAB GET /roles to FastAPI (#57411)``
145
+ * ``Synchronize boto3 and sqlalchemy dependency lower-binds (#57385)``
146
+ * ``Bump the fab-ui-package-updates group across 1 directory with 4 updates (#57160)``
147
+ * ``Migrate FAB POST /roles to FastAPI (#57199)``
148
+ * ``Upgrade 'flask-appbuilder' to 5.0.1 (#57170)``
149
+ * ``refactor: migrate models to use mapped_column for SQLAlchemy 2.0 compatibility (#56827)``
150
+
151
+ Doc-only
152
+ ~~~~~~~~
153
+
154
+ * ``Fixing some typos and spelling errors (#57186)``
155
+
156
+ .. Below changes are excluded from the changelog. Move them to
157
+ appropriate section above if needed. Do not delete the lines(!):
158
+ * ``Delete all unnecessary LICENSE Files (#58191)``
159
+ * ``Enable pt006 rule and fix new generate errors (#58238)``
160
+ * ``Enable ruff PLW2101,PLW2901,PLW3301 rule (#57700)``
161
+ * ``Revert "Fix duplicated SQLAlchemy sessions caused transactions fail to close (#57815)" (#58097)``
162
+ * ``Fix duplicated SQLAlchemy sessions caused transactions fail to close (#57815)``
163
+ * ``Synchronize default versions in all split .pre-commit-config.yaml (#57851)``
164
+ * ``Fix mypy static errors in fab provider (#57761)``
165
+ * ``Fix mypy static errors in main (#57755)``
166
+ * ``Fix mypy type errors in providers/standard/ in external_task.py for SQLAlchemy 2 migration (#57369)``
167
+ * ``Enable ruff PLW1641 rule (#57679)``
168
+ * ``Extract prek hooks for FAB provider (#57181)``
169
+
170
+ 3.0.1
171
+ .....
172
+
173
+ Bug Fixes
174
+ ~~~~~~~~~
175
+
176
+ * ``Update authentication to handle JWT token in backend (#56633)``
177
+ * ``Add Werkzeug version check (#56398)``
178
+
179
+ Misc
180
+ ~~~~
181
+
182
+ * ``SQLA2/FAB: fix some type hints (#56928)``
183
+ * ``FAB: reuse ORM type hints from common-compat (#56903)``
184
+ * ``Bump eslint from 9.37.0 to 9.38.0 in /providers/fab/src/airflow/providers/fab/www in the fab-ui-package-updates group across 1 directory (#56847)``
185
+ * ``Bump the fab-ui-package-updates group across 1 directory with 3 updates (#56436)``
186
+
187
+
188
+ .. Below changes are excluded from the changelog. Move them to
189
+ appropriate section above if needed. Do not delete the lines(!):
190
+
23
191
  3.0.0
24
192
  .....
25
193
 
@@ -230,7 +398,7 @@ Doc-only
230
398
  Bug Fixes
231
399
  ~~~~~~~~~
232
400
 
233
- * ``Fix: allow users with specific DAG permissions to access DAGs when no pecific DAG is requested (#51462)``
401
+ * ``Fix: allow users with specific DAG permissions to access DAGs when no specific DAG is requested (#51462)``
234
402
  * ``Fix fab asset compilation hashing script (#51446)``
235
403
  * ``Fix default setting for hash algorithm for FAB password hash (#51858)``
236
404
 
@@ -634,8 +802,6 @@ Misc
634
802
  appropriate section above if needed. Do not delete the lines(!):
635
803
  * ``Add TODOs in providers code for Subdag code removal (#41963)``
636
804
  * ``Add fixes by breeze/precommit-lint static checks (#41604) (#41618)``
637
-
638
- .. Review and move the new changes to one of the sections above:
639
805
  * ``Fix pre-commit for auto update of fab migration versions (#42382)``
640
806
  * ``Handle 'AUTH_ROLE_PUBLIC' in FAB auth manager (#42280)``
641
807