apache-airflow-providers-fab 2.1.0__tar.gz → 2.2.0rc1__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 (222) hide show
  1. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/PKG-INFO +8 -8
  2. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/README.rst +3 -3
  3. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/auth-manager/security.rst +0 -22
  4. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/auth-manager/webserver-authentication.rst +4 -3
  5. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/changelog.rst +29 -0
  6. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/index.rst +3 -3
  7. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/provider.yaml +29 -0
  8. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/pyproject.toml +5 -5
  9. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/3rd-party-licenses/LICENSES-ui.txt +1 -1
  10. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/__init__.py +1 -1
  11. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/fab_auth_manager.py +0 -4
  12. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/models/db.py +1 -0
  13. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/security_manager/override.py +10 -2
  14. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/get_provider_info.py +28 -0
  15. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/app.py +2 -3
  16. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/constants.py +1 -1
  17. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/extensions/init_jinja_globals.py +4 -4
  18. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/extensions/init_security.py +0 -19
  19. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/package-lock.json +127 -796
  20. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/package.json +7 -7
  21. apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/www/static/dist/moment.75a9286ff6019fefe5d9.js → apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/743.57634ddb93717b7c8c1a.js +2 -2
  22. apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/www/static/dist/moment.75a9286ff6019fefe5d9.js.LICENSE.txt → apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/743.57634ddb93717b7c8c1a.js.LICENSE.txt +1 -1
  23. apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.48540e25fb1e474cef20.js +1 -0
  24. apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/flash.02dea0c2ac20820e8d1b.js +1 -0
  25. apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/loadingDots.96221bc8b6345c7d65b3.js +1 -0
  26. apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/main.49c4d5787ef1f247f004.js +2 -0
  27. apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/manifest.json +22 -0
  28. apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/materialIcons.4fd835641d53f81af3d3.js +1 -0
  29. apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/moment.6943aa3cca9cb1129a71.js +1 -0
  30. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/dist/oss-licenses.json +2 -2
  31. apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/runtime.3c1a5fcbb3c1b7c62ad7.js +1 -0
  32. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/webpack.config.js +6 -0
  33. apache_airflow_providers_fab-2.2.0rc1/tests/unit/fab/auth_manager/security_manager/test_override.py +249 -0
  34. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/decorators.py +0 -1
  35. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/www/test_auth.py +0 -1
  36. apache_airflow_providers_fab-2.2.0rc1/www-hash.txt +1 -0
  37. apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.a26736fa84b3356edac0.js +0 -1
  38. apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/www/static/dist/flash.fbcc531a39479aa27065.js +0 -1
  39. apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/www/static/dist/loadingDots.e1fc82c3ac3f9af3771e.js +0 -1
  40. apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/www/static/dist/main.eb83be09d97c23018bcb.js +0 -2
  41. apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/www/static/dist/manifest.json +0 -20
  42. apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/www/static/dist/materialIcons.b21138ea09d0cdf9ffc4.js +0 -1
  43. apache_airflow_providers_fab-2.1.0/tests/unit/fab/auth_manager/security_manager/test_override.py +0 -77
  44. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/3rd-party-licenses/LICENSES-ui.txt +0 -0
  45. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/NOTICE +0 -0
  46. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/api-ref/fab-public-api-ref.rst +0 -0
  47. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/api-ref/fab-token-api-ref.rst +0 -0
  48. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/auth-manager/access-control.rst +0 -0
  49. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/auth-manager/api-authentication.rst +0 -0
  50. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/auth-manager/configuring-flask-app.rst +0 -0
  51. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/auth-manager/index.rst +0 -0
  52. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/auth-manager/token.rst +0 -0
  53. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/cli-ref.rst +0 -0
  54. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/commits.rst +0 -0
  55. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/conf.py +0 -0
  56. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/configurations-ref.rst +0 -0
  57. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/img/add-role.png +0 -0
  58. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/img/diagram_fab_auth_manager_airflow_architecture.md5sum +0 -0
  59. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/img/diagram_fab_auth_manager_airflow_architecture.png +0 -0
  60. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/img/diagram_fab_auth_manager_airflow_architecture.py +0 -0
  61. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/img/new-role.png +0 -0
  62. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/installing-providers-from-sources.rst +0 -0
  63. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/migrations-ref.rst +0 -0
  64. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/security.rst +0 -0
  65. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/docs/upgrading.rst +0 -0
  66. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/__init__.py +0 -0
  67. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/__init__.py +0 -0
  68. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/LICENSE +0 -0
  69. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/alembic.ini +0 -0
  70. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/__init__.py +0 -0
  71. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api/__init__.py +0 -0
  72. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api/auth/__init__.py +0 -0
  73. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api/auth/backend/__init__.py +0 -0
  74. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py +0 -0
  75. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py +0 -0
  76. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api/auth/backend/session.py +0 -0
  77. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api_endpoints/__init__.py +0 -0
  78. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py +0 -0
  79. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py +0 -0
  80. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/__init__.py +0 -0
  81. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/__init__.py +0 -0
  82. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/login.py +0 -0
  83. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/__init__.py +0 -0
  84. /apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/v1-fab-auth-manager-generated.yaml → /apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/v2-fab-auth-manager-generated.yaml +0 -0
  85. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
  86. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/login.py +0 -0
  87. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
  88. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/services/login.py +0 -0
  89. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/__init__.py +0 -0
  90. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/db_command.py +0 -0
  91. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/definition.py +0 -0
  92. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/role_command.py +0 -0
  93. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/sync_perm_command.py +0 -0
  94. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/user_command.py +0 -0
  95. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/utils.py +0 -0
  96. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/models/__init__.py +0 -0
  97. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/models/anonymous_user.py +0 -0
  98. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/openapi/__init__.py +0 -0
  99. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/openapi/v1-flask-api.yaml +0 -0
  100. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/schemas/__init__.py +0 -0
  101. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/schemas/role_and_permission_schema.py +0 -0
  102. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/schemas/user_schema.py +0 -0
  103. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/security_manager/__init__.py +0 -0
  104. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/security_manager/constants.py +0 -0
  105. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/views/__init__.py +0 -0
  106. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/views/permissions.py +0 -0
  107. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/views/roles_list.py +0 -0
  108. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/views/user.py +0 -0
  109. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/views/user_edit.py +0 -0
  110. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/auth_manager/views/user_stats.py +0 -0
  111. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/migrations/README +0 -0
  112. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/migrations/__init__.py +0 -0
  113. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/migrations/env.py +0 -0
  114. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/migrations/script.py.mako +0 -0
  115. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/migrations/versions/0001_1_4_0_placeholder_migration.py +0 -0
  116. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/migrations/versions/__init__.py +0 -0
  117. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/__init__.py +0 -0
  118. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/airflow_flask_app.py +0 -0
  119. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/api_connexion/__init__.py +0 -0
  120. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/api_connexion/exceptions.py +0 -0
  121. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/api_connexion/parameters.py +0 -0
  122. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/api_connexion/security.py +0 -0
  123. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/api_connexion/types.py +0 -0
  124. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/auth.py +0 -0
  125. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/extensions/__init__.py +0 -0
  126. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/extensions/init_appbuilder.py +0 -0
  127. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/extensions/init_manifest_files.py +0 -0
  128. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/extensions/init_session.py +0 -0
  129. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/extensions/init_views.py +0 -0
  130. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/extensions/init_wsgi_middlewares.py +0 -0
  131. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/security/__init__.py +0 -0
  132. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/security/permissions.py +0 -0
  133. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/security_appless.py +0 -0
  134. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/security_manager.py +0 -0
  135. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/session.py +0 -0
  136. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/css/bootstrap-theme.css +0 -0
  137. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/css/flash.css +0 -0
  138. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/css/loading-dots.css +0 -0
  139. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/css/main.css +0 -0
  140. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/css/material-icons.css +0 -0
  141. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/dist/48f0ea180c40270a5b05.png +0 -0
  142. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/dist/649c0b07771e68fafdeb.png +0 -0
  143. /apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.a26736fa84b3356edac0.css → /apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.48540e25fb1e474cef20.css +0 -0
  144. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/dist/f7490d556a6c42e49ba4.png +0 -0
  145. /apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/www/static/dist/flash.fbcc531a39479aa27065.css → /apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/flash.02dea0c2ac20820e8d1b.css +0 -0
  146. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.css +0 -0
  147. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js +0 -0
  148. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js.LICENSE.txt +0 -0
  149. /apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/www/static/dist/loadingDots.e1fc82c3ac3f9af3771e.css → /apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/loadingDots.96221bc8b6345c7d65b3.css +0 -0
  150. /apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/www/static/dist/main.eb83be09d97c23018bcb.css → /apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/main.49c4d5787ef1f247f004.css +0 -0
  151. /apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/www/static/dist/main.eb83be09d97c23018bcb.js.LICENSE.txt → /apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/main.49c4d5787ef1f247f004.js.LICENSE.txt +0 -0
  152. /apache_airflow_providers_fab-2.1.0/src/airflow/providers/fab/www/static/dist/materialIcons.b21138ea09d0cdf9ffc4.css → /apache_airflow_providers_fab-2.2.0rc1/src/airflow/providers/fab/www/static/dist/materialIcons.4fd835641d53f81af3d3.css +0 -0
  153. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/js/datetime_utils.js +0 -0
  154. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/js/main.js +0 -0
  155. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/sort_asc.png +0 -0
  156. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/sort_both.png +0 -0
  157. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/static/sort_desc.png +0 -0
  158. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/templates/airflow/_messages.html +0 -0
  159. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/templates/airflow/error.html +0 -0
  160. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/templates/airflow/main.html +0 -0
  161. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/templates/airflow/traceback.html +0 -0
  162. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/templates/appbuilder/flash.html +0 -0
  163. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/templates/appbuilder/index.html +0 -0
  164. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/templates/appbuilder/navbar.html +0 -0
  165. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/templates/appbuilder/navbar_menu.html +0 -0
  166. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/templates/appbuilder/navbar_right.html +0 -0
  167. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/utils.py +0 -0
  168. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/src/airflow/providers/fab/www/views.py +0 -0
  169. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/conftest.py +0 -0
  170. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/__init__.py +0 -0
  171. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/__init__.py +0 -0
  172. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/__init__.py +0 -0
  173. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api/__init__.py +0 -0
  174. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api/auth/__init__.py +0 -0
  175. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api/auth/backend/__init__.py +0 -0
  176. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api/auth/backend/test_basic_auth.py +0 -0
  177. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api/auth/backend/test_kerberos_auth.py +0 -0
  178. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api/auth/backend/test_session.py +0 -0
  179. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api_endpoints/__init__.py +0 -0
  180. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api_endpoints/api_connexion_utils.py +0 -0
  181. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api_endpoints/remote_user_api_auth_backend.py +0 -0
  182. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api_endpoints/test_auth.py +0 -0
  183. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api_endpoints/test_role_and_permission_endpoint.py +0 -0
  184. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api_endpoints/test_user_endpoint.py +0 -0
  185. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api_fastapi/__init__.py +0 -0
  186. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api_fastapi/conftest.py +0 -0
  187. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
  188. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api_fastapi/routes/test_login.py +0 -0
  189. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
  190. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/api_fastapi/services/test_login.py +0 -0
  191. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/cli_commands/__init__.py +0 -0
  192. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/cli_commands/test_db_command.py +0 -0
  193. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/cli_commands/test_definition.py +0 -0
  194. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/cli_commands/test_role_command.py +0 -0
  195. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/cli_commands/test_sync_perm_command.py +0 -0
  196. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/cli_commands/test_user_command.py +0 -0
  197. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/cli_commands/test_utils.py +0 -0
  198. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/conftest.py +0 -0
  199. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/models/__init__.py +0 -0
  200. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/models/test_anonymous_user.py +0 -0
  201. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/models/test_db.py +0 -0
  202. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/schemas/__init__.py +0 -0
  203. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/schemas/test_role_and_permission_schema.py +0 -0
  204. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/schemas/test_user_schema.py +0 -0
  205. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/security_manager/__init__.py +0 -0
  206. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/security_manager/test_constants.py +0 -0
  207. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/test_fab_auth_manager.py +0 -0
  208. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/test_models.py +0 -0
  209. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/test_security.py +0 -0
  210. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/views/__init__.py +0 -0
  211. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/views/test_permissions.py +0 -0
  212. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/views/test_roles_list.py +0 -0
  213. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/views/test_user.py +0 -0
  214. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/views/test_user_edit.py +0 -0
  215. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/auth_manager/views/test_user_stats.py +0 -0
  216. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/utils.py +0 -0
  217. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/www/__init__.py +0 -0
  218. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/www/test_utils.py +0 -0
  219. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/www/views/__init__.py +0 -0
  220. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/www/views/conftest.py +0 -0
  221. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/www/views/test_connection_form_fields.py +0 -0
  222. {apache_airflow_providers_fab-2.1.0 → apache_airflow_providers_fab-2.2.0rc1}/tests/unit/fab/www/views/test_views_custom_user_views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apache-airflow-providers-fab
3
- Version: 2.1.0
3
+ Version: 2.2.0rc1
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>
@@ -22,8 +22,8 @@ Classifier: Programming Language :: Python :: 3.12
22
22
  Classifier: Topic :: System :: Monitoring
23
23
  License-File: 3rd-party-licenses/LICENSES-ui.txt
24
24
  License-File: NOTICE
25
- Requires-Dist: apache-airflow>=3.0.2
26
- Requires-Dist: apache-airflow-providers-common-compat>=1.2.1
25
+ Requires-Dist: apache-airflow>=3.0.2rc1
26
+ Requires-Dist: apache-airflow-providers-common-compat>=1.2.1rc1
27
27
  Requires-Dist: blinker>=1.6.2
28
28
  Requires-Dist: flask>=2.2.1,<2.3
29
29
  Requires-Dist: flask-appbuilder==4.6.3
@@ -36,8 +36,8 @@ Requires-Dist: werkzeug>=2.2,<4
36
36
  Requires-Dist: wtforms>=3.0,<4
37
37
  Requires-Dist: kerberos>=1.3.0 ; extra == "kerberos"
38
38
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
39
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.1.0/changelog.html
40
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.1.0
39
+ Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/2.2.0/changelog.html
40
+ Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/2.2.0
41
41
  Project-URL: Mastodon, https://fosstodon.org/@airflow
42
42
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
43
43
  Project-URL: Source Code, https://github.com/apache/airflow
@@ -69,7 +69,7 @@ Provides-Extra: kerberos
69
69
 
70
70
  Package ``apache-airflow-providers-fab``
71
71
 
72
- Release: ``2.1.0``
72
+ Release: ``2.2.0``
73
73
 
74
74
 
75
75
  `Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
@@ -82,7 +82,7 @@ This is a provider package for ``fab`` provider. All classes for this provider p
82
82
  are in ``airflow.providers.fab`` python package.
83
83
 
84
84
  You can find package information and changelog for the provider
85
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.1.0/>`_.
85
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.2.0/>`_.
86
86
 
87
87
  Installation
88
88
  ------------
@@ -133,5 +133,5 @@ Dependent package
133
133
  ================================================================================================================== =================
134
134
 
135
135
  The changelog for the provider package can be found in the
136
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.1.0/changelog.html>`_.
136
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.2.0/changelog.html>`_.
137
137
 
@@ -23,7 +23,7 @@
23
23
 
24
24
  Package ``apache-airflow-providers-fab``
25
25
 
26
- Release: ``2.1.0``
26
+ Release: ``2.2.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.1.0/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.2.0/>`_.
40
40
 
41
41
  Installation
42
42
  ------------
@@ -87,4 +87,4 @@ Dependent package
87
87
  ================================================================================================================== =================
88
88
 
89
89
  The changelog for the provider package can be found in the
90
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.1.0/changelog.html>`_.
90
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.2.0/changelog.html>`_.
@@ -22,28 +22,6 @@ FAB auth manager UI security options
22
22
  This guide only applies to FAB auth manager UI pages. These pages are accessible under category "Security" in the
23
23
  menu.
24
24
 
25
- Rendering Airflow UI in a Web Frame from another site
26
- ------------------------------------------------------
27
-
28
- Using Airflow in a web frame is enabled by default. To disable this (and prevent click jacking attacks)
29
- set the below:
30
-
31
- .. code-block:: ini
32
-
33
- [webserver]
34
- x_frame_enabled = False
35
-
36
- Disable Deployment Exposure Warning
37
- ---------------------------------------
38
-
39
- Airflow warns when recent requests are made to ``/robots.txt``. To disable this warning set ``warn_deployment_exposure`` to
40
- ``False`` as below:
41
-
42
- .. code-block:: ini
43
-
44
- [webserver]
45
- warn_deployment_exposure = False
46
-
47
25
  Sensitive Variable fields
48
26
  -------------------------
49
27
 
@@ -57,9 +57,10 @@ Other Methods
57
57
  '''''''''''''
58
58
 
59
59
  A ``webserver_config.py`` configuration file is automatically generated and can be used to configure FAB auth manager to support authentication
60
- methods like OAuth, OpenID, LDAP, REMOTE_USER. It should be noted that due to the limitation of Flask AppBuilder
61
- and Authlib, only a selection of OAuth2 providers is supported. This list includes ``github``, ``githublocal``, ``twitter``,
62
- ``linkedin``, ``google``, ``azure``, ``openshift``, ``okta``, ``keycloak`` and ``keycloak_before_17``.
60
+ methods like OAuth, OpenID, LDAP and REMOTE_USER. It should be noted that due to the limitation of Flask AppBuilder
61
+ and Authlib, some OAuth2 providers may not be supported. Currently supported providers include ``github``, ``githublocal``, ``twitter``,
62
+ ``linkedin``, ``google``, ``azure``, ``openshift``, ``okta``, ``auth0``, ``keycloak``, ``keycloak_before_17`` and ``authentik``.
63
+ If your provider is not on the list, you may need to adjust the ``remote_app`` configuration to match your provider's OAuth2 specification.
63
64
 
64
65
  By default, the following entry in the ``$AIRFLOW_HOME/webserver_config.py`` is used.
65
66
 
@@ -20,6 +20,35 @@
20
20
  Changelog
21
21
  ---------
22
22
 
23
+ 2.2.0
24
+ .....
25
+
26
+ Features
27
+ ~~~~~~~~
28
+
29
+ * ``Add 'airflow db-manager' CLI for managing external databases (#50657)``
30
+ * ``Add support for unknown OIDC providers (#50921)``
31
+ * ``Move enable_swagger_ui config to api (#50896)``
32
+ * ``Move secret_key config to api section (#50839)``
33
+ * ``Move webserver config to fab provider (#50774)``
34
+ * ``Move webserver config options to api (#50693)``
35
+
36
+ Misc
37
+ ~~~~
38
+
39
+ * ``Bump the fab-ui-package-updates group across 1 directory with 4 updates (#51312)``
40
+ * ``Remove unused entries from 'DagAccessEntity' (#51174)``
41
+ * ``Bump moment-timezone from 0.5.48 to 0.6.0 in /providers/fab/src/airflow/providers/fab/www in the fab-ui-package-updates group across 1 directory (#51087)``
42
+ * ``Bump webpack from 5.99.8 to 5.99.9 in /providers/fab/src/airflow/providers/fab/www in the fab-ui-package-updates group across 1 directory (#50847)``
43
+ * ``Bump the fab-ui-package-updates group across 1 directory with 2 updates (#50783)``
44
+ * ``Change v1 to v2 in generated OpenAPI schema files (#50705)``
45
+
46
+ .. Below changes are excluded from the changelog. Move them to
47
+ appropriate section above if needed. Do not delete the lines(!):
48
+ * ``Compile FAB assets (#51113)``
49
+ * ``Stabilize FAB asset compilation (#50829)``
50
+ * ``Fixing fab assets generation (#50664)``
51
+
23
52
  2.1.0
24
53
  .....
25
54
 
@@ -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.1.0
87
+ Release: 2.2.0
88
88
 
89
89
  Provider package
90
90
  ----------------
@@ -146,5 +146,5 @@ Downloading official packages
146
146
  You can download officially released packages and verify their checksums and signatures from the
147
147
  `Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
148
148
 
149
- * `The apache-airflow-providers-fab 2.1.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.1.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.1.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.1.0.tar.gz.sha512>`__)
150
- * `The apache-airflow-providers-fab 2.1.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.1.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.1.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.1.0-py3-none-any.whl.sha512>`__)
149
+ * `The apache-airflow-providers-fab 2.2.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.2.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.2.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.2.0.tar.gz.sha512>`__)
150
+ * `The apache-airflow-providers-fab 2.2.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.2.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.2.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.2.0-py3-none-any.whl.sha512>`__)
@@ -35,6 +35,7 @@ source-date-epoch: 1747132761
35
35
  # In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider have
36
36
  # to be done in the same PR
37
37
  versions:
38
+ - 2.2.0
38
39
  - 2.1.0
39
40
  - 2.0.2
40
41
  - 2.0.1
@@ -60,6 +61,34 @@ config:
60
61
  fab:
61
62
  description: This section contains configs specific to FAB provider.
62
63
  options:
64
+ navbar_color:
65
+ description: |
66
+ Define the color of navigation bar
67
+ version_added: 2.2.0
68
+ type: string
69
+ example: ~
70
+ default: "#fff"
71
+ navbar_text_color:
72
+ description: |
73
+ Define the color of text in the navigation bar
74
+ version_added: 2.2.0
75
+ type: string
76
+ example: ~
77
+ default: "#51504f"
78
+ navbar_hover_color:
79
+ description: |
80
+ Define the color of navigation bar links when hovered
81
+ version_added: 2.2.0
82
+ type: string
83
+ example: ~
84
+ default: "#eee"
85
+ navbar_text_hover_color:
86
+ description: |
87
+ Define the color of text in the navigation bar when hovered
88
+ version_added: 2.2.0
89
+ type: string
90
+ example: ~
91
+ default: "#51504f"
63
92
  access_denied_message:
64
93
  description: |
65
94
  The message displayed when a user attempts to execute actions beyond their authorised privileges.
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-fab"
28
- version = "2.1.0"
28
+ version = "2.2.0rc1"
29
29
  description = "Provider package apache-airflow-providers-fab for Apache Airflow"
30
30
  readme = "README.rst"
31
31
  authors = [
@@ -57,8 +57,8 @@ license-files = ["NOTICE", "*/LICENSE*"]
57
57
  # Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
58
58
  # After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
59
59
  dependencies = [
60
- "apache-airflow>=3.0.2",
61
- "apache-airflow-providers-common-compat>=1.2.1",
60
+ "apache-airflow>=3.0.2rc1",
61
+ "apache-airflow-providers-common-compat>=1.2.1rc1",
62
62
  # Blinker use for signals in Flask, this is an optional dependency in Flask 2.2 and lower.
63
63
  # In Flask 2.3 it becomes a mandatory dependency, and flask signals are always available.
64
64
  "blinker>=1.6.2",
@@ -127,8 +127,8 @@ apache-airflow-providers-common-sql = {workspace = true}
127
127
  apache-airflow-providers-standard = {workspace = true}
128
128
 
129
129
  [project.urls]
130
- "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-fab/2.1.0"
131
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-fab/2.1.0/changelog.html"
130
+ "Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/2.2.0"
131
+ "Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/2.2.0/changelog.html"
132
132
  "Bug Tracker" = "https://github.com/apache/airflow/issues"
133
133
  "Source Code" = "https://github.com/apache/airflow"
134
134
  "Slack Chat" = "https://s.apache.org/airflow-slack"
@@ -34,7 +34,7 @@ OTHER DEALINGS IN THE SOFTWARE.
34
34
  https://github.com/moment/moment.git
35
35
 
36
36
 
37
- moment-timezone|0.5.48:
37
+ moment-timezone|0.6.0:
38
38
  -----
39
39
  MIT
40
40
  The MIT License (MIT)
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "2.1.0"
32
+ __version__ = "2.2.0"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "3.0.2"
@@ -84,10 +84,8 @@ from airflow.providers.fab.www.security.permissions import (
84
84
  RESOURCE_PLUGIN,
85
85
  RESOURCE_POOL,
86
86
  RESOURCE_PROVIDER,
87
- RESOURCE_SLA_MISS,
88
87
  RESOURCE_TASK_INSTANCE,
89
88
  RESOURCE_TASK_LOG,
90
- RESOURCE_TASK_RESCHEDULE,
91
89
  RESOURCE_TRIGGER,
92
90
  RESOURCE_VARIABLE,
93
91
  RESOURCE_WEBSITE,
@@ -127,7 +125,6 @@ _MAP_DAG_ACCESS_ENTITY_TO_FAB_RESOURCE_TYPE: dict[DagAccessEntity, tuple[str, ..
127
125
  DagAccessEntity.CODE: (RESOURCE_DAG_CODE,),
128
126
  DagAccessEntity.DEPENDENCIES: (RESOURCE_DAG_DEPENDENCIES,),
129
127
  DagAccessEntity.RUN: (RESOURCE_DAG_RUN,),
130
- DagAccessEntity.SLA_MISS: (RESOURCE_SLA_MISS,),
131
128
  # RESOURCE_TASK_INSTANCE has been originally misused. RESOURCE_TASK_INSTANCE referred to task definition
132
129
  # AND task instances without making the difference
133
130
  # To be backward compatible, we translate DagAccessEntity.TASK_INSTANCE to RESOURCE_TASK_INSTANCE AND
@@ -136,7 +133,6 @@ _MAP_DAG_ACCESS_ENTITY_TO_FAB_RESOURCE_TYPE: dict[DagAccessEntity, tuple[str, ..
136
133
  DagAccessEntity.TASK: (RESOURCE_TASK_INSTANCE,),
137
134
  DagAccessEntity.TASK_INSTANCE: (RESOURCE_DAG_RUN, RESOURCE_TASK_INSTANCE),
138
135
  DagAccessEntity.TASK_LOGS: (RESOURCE_TASK_LOG,),
139
- DagAccessEntity.TASK_RESCHEDULE: (RESOURCE_TASK_RESCHEDULE,),
140
136
  DagAccessEntity.VERSION: (RESOURCE_DAG_VERSION,),
141
137
  DagAccessEntity.WARNING: (RESOURCE_DAG_WARNING,),
142
138
  DagAccessEntity.XCOM: (RESOURCE_XCOM,),
@@ -53,6 +53,7 @@ class FABDBManager(BaseDBManager):
53
53
  migration_dir = (PACKAGE_DIR / "migrations").as_posix()
54
54
  alembic_file = (PACKAGE_DIR / "alembic.ini").as_posix()
55
55
  supports_table_dropping = True
56
+ revision_heads_map = _REVISION_HEADS_MAP
56
57
 
57
58
  def create_db_from_orm(self):
58
59
  super().create_db_from_orm()
@@ -2132,8 +2132,16 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
2132
2132
  "username": me["nickname"],
2133
2133
  "role_keys": me.get("groups", []),
2134
2134
  }
2135
-
2136
- return {}
2135
+ # for other providers
2136
+ data = self.oauth_remotes[provider].userinfo()
2137
+ log.debug("User info from %s: %s", provider, data)
2138
+ return {
2139
+ "username": data.get("preferred_username", ""),
2140
+ "first_name": data.get("given_name", ""),
2141
+ "last_name": data.get("family_name", ""),
2142
+ "email": data.get("email", ""),
2143
+ "role_keys": data.get("groups", []),
2144
+ }
2137
2145
 
2138
2146
  @staticmethod
2139
2147
  def oauth_token_getter():
@@ -30,6 +30,34 @@ def get_provider_info():
30
30
  "fab": {
31
31
  "description": "This section contains configs specific to FAB provider.",
32
32
  "options": {
33
+ "navbar_color": {
34
+ "description": "Define the color of navigation bar\n",
35
+ "version_added": "2.2.0",
36
+ "type": "string",
37
+ "example": None,
38
+ "default": "#fff",
39
+ },
40
+ "navbar_text_color": {
41
+ "description": "Define the color of text in the navigation bar\n",
42
+ "version_added": "2.2.0",
43
+ "type": "string",
44
+ "example": None,
45
+ "default": "#51504f",
46
+ },
47
+ "navbar_hover_color": {
48
+ "description": "Define the color of navigation bar links when hovered\n",
49
+ "version_added": "2.2.0",
50
+ "type": "string",
51
+ "example": None,
52
+ "default": "#eee",
53
+ },
54
+ "navbar_text_hover_color": {
55
+ "description": "Define the color of text in the navigation bar when hovered\n",
56
+ "version_added": "2.2.0",
57
+ "type": "string",
58
+ "example": None,
59
+ "default": "#51504f",
60
+ },
33
61
  "access_denied_message": {
34
62
  "description": "The message displayed when a user attempts to execute actions beyond their authorised privileges.\n",
35
63
  "version_added": "2.1.0",
@@ -33,7 +33,7 @@ from airflow.logging_config import configure_logging
33
33
  from airflow.providers.fab.www.extensions.init_appbuilder import init_appbuilder
34
34
  from airflow.providers.fab.www.extensions.init_jinja_globals import init_jinja_globals
35
35
  from airflow.providers.fab.www.extensions.init_manifest_files import configure_manifest_files
36
- from airflow.providers.fab.www.extensions.init_security import init_api_auth, init_xframe_protection
36
+ from airflow.providers.fab.www.extensions.init_security import init_api_auth
37
37
  from airflow.providers.fab.www.extensions.init_session import init_airflow_session_interface
38
38
  from airflow.providers.fab.www.extensions.init_views import (
39
39
  init_api_auth_provider,
@@ -56,7 +56,7 @@ def create_app(enable_plugins: bool):
56
56
  from airflow.providers.fab.auth_manager.fab_auth_manager import FabAuthManager
57
57
 
58
58
  flask_app = Flask(__name__)
59
- flask_app.secret_key = conf.get("webserver", "SECRET_KEY")
59
+ flask_app.secret_key = conf.get("api", "SECRET_KEY")
60
60
  flask_app.config["SQLALCHEMY_DATABASE_URI"] = conf.get("database", "SQL_ALCHEMY_CONN")
61
61
  flask_app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
62
62
  flask_app.config["PERMANENT_SESSION_LIFETIME"] = timedelta(minutes=get_session_lifetime_config())
@@ -102,7 +102,6 @@ def create_app(enable_plugins: bool):
102
102
  init_api_auth_provider(flask_app)
103
103
  init_api_error_handlers(flask_app)
104
104
  init_jinja_globals(flask_app, enable_plugins=enable_plugins)
105
- init_xframe_protection(flask_app)
106
105
  init_airflow_session_interface(flask_app)
107
106
  init_wsgi_middleware(flask_app)
108
107
  return flask_app
@@ -24,5 +24,5 @@ WWW = Path(__file__).resolve().parent
24
24
  # There is a difference with configuring Swagger in Connexion 2.x and Connexion 3.x
25
25
  # Connexion 2: https://connexion.readthedocs.io/en/2.14.2/quickstart.html#the-swagger-ui-console
26
26
  # Connexion 3: https://connexion.readthedocs.io/en/stable/swagger_ui.html#configuring-the-swagger-ui
27
- SWAGGER_ENABLED = conf.getboolean("webserver", "enable_swagger_ui", fallback=True)
27
+ SWAGGER_ENABLED = conf.getboolean("api", "enable_swagger_ui", fallback=True)
28
28
  SWAGGER_BUNDLE = WWW.joinpath("static", "dist", "swagger-ui")
@@ -52,10 +52,10 @@ def init_jinja_globals(app, enable_plugins: bool):
52
52
  extra_globals = {
53
53
  "server_timezone": server_timezone,
54
54
  "hostname": hostname,
55
- "navbar_color": conf.get("webserver", "NAVBAR_COLOR"),
56
- "navbar_text_color": conf.get("webserver", "NAVBAR_TEXT_COLOR"),
57
- "navbar_hover_color": conf.get("webserver", "NAVBAR_HOVER_COLOR"),
58
- "navbar_text_hover_color": conf.get("webserver", "NAVBAR_TEXT_HOVER_COLOR"),
55
+ "navbar_color": conf.get("fab", "NAVBAR_COLOR"),
56
+ "navbar_text_color": conf.get("fab", "NAVBAR_TEXT_COLOR"),
57
+ "navbar_hover_color": conf.get("fab", "NAVBAR_HOVER_COLOR"),
58
+ "navbar_text_hover_color": conf.get("fab", "NAVBAR_TEXT_HOVER_COLOR"),
59
59
  "airflow_version": airflow_version,
60
60
  "git_version": git_version,
61
61
  "show_plugin_message": enable_plugins,
@@ -25,25 +25,6 @@ from airflow.exceptions import AirflowException
25
25
  log = logging.getLogger(__name__)
26
26
 
27
27
 
28
- def init_xframe_protection(app):
29
- """
30
- Add X-Frame-Options header.
31
-
32
- Use it to avoid click-jacking attacks, by ensuring that their content is not embedded into other sites.
33
-
34
- See also: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
35
- """
36
- x_frame_enabled = conf.getboolean("webserver", "X_FRAME_ENABLED", fallback=True)
37
- if x_frame_enabled:
38
- return
39
-
40
- def apply_caching(response):
41
- response.headers["X-Frame-Options"] = "DENY"
42
- return response
43
-
44
- app.after_request(apply_caching)
45
-
46
-
47
28
  def init_api_auth(app):
48
29
  """Load authentication backends."""
49
30
  auth_backends = conf.get(