apache-airflow-providers-fab 2.0.1rc1__tar.gz → 2.0.2rc2__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 (211) hide show
  1. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/PKG-INFO +8 -8
  2. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/README.rst +3 -3
  3. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/auth-manager/api-authentication.rst +1 -1
  4. apache_airflow_providers_fab-2.0.2rc2/docs/auth-manager/configuring-flask-app.rst +38 -0
  5. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/auth-manager/index.rst +1 -0
  6. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/changelog.rst +29 -0
  7. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/commits.rst +22 -0
  8. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/index.rst +3 -3
  9. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/upgrading.rst +4 -0
  10. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/provider.yaml +2 -1
  11. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/pyproject.toml +5 -5
  12. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/__init__.py +1 -1
  13. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/fab_auth_manager.py +2 -32
  14. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/security_manager/override.py +6 -18
  15. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/package-lock.json +58 -57
  16. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/package.json +3 -3
  17. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/security/permissions.py +1 -24
  18. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/views.py +1 -1
  19. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/test_security.py +1 -0
  20. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/3rd-party-licenses/LICENSES-ui.txt +0 -0
  21. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/NOTICE +0 -0
  22. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/api-ref/fab-public-api-ref.rst +0 -0
  23. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/api-ref/fab-token-api-ref.rst +0 -0
  24. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/auth-manager/access-control.rst +0 -0
  25. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/auth-manager/security.rst +0 -0
  26. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/auth-manager/token.rst +0 -0
  27. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/auth-manager/webserver-authentication.rst +0 -0
  28. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/cli-ref.rst +0 -0
  29. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/conf.py +0 -0
  30. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/configurations-ref.rst +0 -0
  31. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/img/add-role.png +0 -0
  32. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/img/diagram_fab_auth_manager_airflow_architecture.md5sum +0 -0
  33. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/img/diagram_fab_auth_manager_airflow_architecture.png +0 -0
  34. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/img/diagram_fab_auth_manager_airflow_architecture.py +0 -0
  35. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/img/new-role.png +0 -0
  36. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/installing-providers-from-sources.rst +0 -0
  37. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/migrations-ref.rst +0 -0
  38. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/docs/security.rst +0 -0
  39. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/__init__.py +0 -0
  40. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/3rd-party-licenses/LICENSES-ui.txt +0 -0
  41. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/__init__.py +0 -0
  42. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/LICENSE +0 -0
  43. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/alembic.ini +0 -0
  44. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/__init__.py +0 -0
  45. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api/__init__.py +0 -0
  46. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api/auth/__init__.py +0 -0
  47. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api/auth/backend/__init__.py +0 -0
  48. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py +0 -0
  49. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py +0 -0
  50. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api/auth/backend/session.py +0 -0
  51. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api_endpoints/__init__.py +0 -0
  52. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py +0 -0
  53. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py +0 -0
  54. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/__init__.py +0 -0
  55. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/__init__.py +0 -0
  56. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/login.py +0 -0
  57. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/__init__.py +0 -0
  58. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/v1-fab-auth-manager-generated.yaml +0 -0
  59. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
  60. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/login.py +0 -0
  61. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
  62. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/api_fastapi/services/login.py +0 -0
  63. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/cli_commands/__init__.py +0 -0
  64. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/cli_commands/db_command.py +0 -0
  65. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/cli_commands/definition.py +0 -0
  66. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/cli_commands/role_command.py +0 -0
  67. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/cli_commands/sync_perm_command.py +0 -0
  68. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/cli_commands/user_command.py +0 -0
  69. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/cli_commands/utils.py +0 -0
  70. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/models/__init__.py +0 -0
  71. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/models/anonymous_user.py +0 -0
  72. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/models/db.py +0 -0
  73. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/openapi/__init__.py +0 -0
  74. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/openapi/v1-flask-api.yaml +0 -0
  75. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/schemas/__init__.py +0 -0
  76. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/schemas/role_and_permission_schema.py +0 -0
  77. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/schemas/user_schema.py +0 -0
  78. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/security_manager/__init__.py +0 -0
  79. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/security_manager/constants.py +0 -0
  80. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/views/__init__.py +0 -0
  81. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/views/permissions.py +0 -0
  82. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/views/roles_list.py +0 -0
  83. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/views/user.py +0 -0
  84. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/views/user_edit.py +0 -0
  85. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/auth_manager/views/user_stats.py +0 -0
  86. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/get_provider_info.py +0 -0
  87. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/migrations/README +0 -0
  88. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/migrations/__init__.py +0 -0
  89. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/migrations/env.py +0 -0
  90. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/migrations/script.py.mako +0 -0
  91. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/migrations/versions/0001_1_4_0_placeholder_migration.py +0 -0
  92. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/migrations/versions/__init__.py +0 -0
  93. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/__init__.py +0 -0
  94. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/airflow_flask_app.py +0 -0
  95. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/api_connexion/__init__.py +0 -0
  96. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/api_connexion/exceptions.py +0 -0
  97. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/api_connexion/parameters.py +0 -0
  98. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/api_connexion/security.py +0 -0
  99. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/api_connexion/types.py +0 -0
  100. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/app.py +0 -0
  101. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/auth.py +0 -0
  102. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/constants.py +0 -0
  103. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/extensions/__init__.py +0 -0
  104. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/extensions/init_appbuilder.py +0 -0
  105. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/extensions/init_jinja_globals.py +0 -0
  106. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/extensions/init_manifest_files.py +0 -0
  107. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/extensions/init_security.py +0 -0
  108. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/extensions/init_session.py +0 -0
  109. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/extensions/init_views.py +0 -0
  110. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/security/__init__.py +0 -0
  111. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/security_appless.py +0 -0
  112. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/security_manager.py +0 -0
  113. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/session.py +0 -0
  114. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/css/bootstrap-theme.css +0 -0
  115. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/css/flash.css +0 -0
  116. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/css/loading-dots.css +0 -0
  117. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/css/main.css +0 -0
  118. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/css/material-icons.css +0 -0
  119. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/48f0ea180c40270a5b05.png +0 -0
  120. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/649c0b07771e68fafdeb.png +0 -0
  121. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.css +0 -0
  122. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.js +0 -0
  123. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/f7490d556a6c42e49ba4.png +0 -0
  124. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/flash.137b30cff85b5588e661.css +0 -0
  125. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/flash.137b30cff85b5588e661.js +0 -0
  126. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.css +0 -0
  127. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js +0 -0
  128. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js.LICENSE.txt +0 -0
  129. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.css +0 -0
  130. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.js +0 -0
  131. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.css +0 -0
  132. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.js +0 -0
  133. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.js.LICENSE.txt +0 -0
  134. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/manifest.json +0 -0
  135. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.css +0 -0
  136. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.js +0 -0
  137. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/moment.624b1f00ba723d39ce06.js +0 -0
  138. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/moment.624b1f00ba723d39ce06.js.LICENSE.txt +0 -0
  139. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/dist/oss-licenses.json +0 -0
  140. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/js/datetime_utils.js +0 -0
  141. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/js/main.js +0 -0
  142. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/sort_asc.png +0 -0
  143. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/sort_both.png +0 -0
  144. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/static/sort_desc.png +0 -0
  145. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/templates/airflow/_messages.html +0 -0
  146. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/templates/airflow/error.html +0 -0
  147. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/templates/airflow/main.html +0 -0
  148. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/templates/airflow/traceback.html +0 -0
  149. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/templates/appbuilder/flash.html +0 -0
  150. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/templates/appbuilder/index.html +0 -0
  151. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/templates/appbuilder/navbar.html +0 -0
  152. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/templates/appbuilder/navbar_menu.html +0 -0
  153. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/templates/appbuilder/navbar_right.html +0 -0
  154. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/utils.py +0 -0
  155. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/src/airflow/providers/fab/www/webpack.config.js +0 -0
  156. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/conftest.py +0 -0
  157. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/__init__.py +0 -0
  158. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/__init__.py +0 -0
  159. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/__init__.py +0 -0
  160. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api/__init__.py +0 -0
  161. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api/auth/__init__.py +0 -0
  162. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api/auth/backend/__init__.py +0 -0
  163. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api/auth/backend/test_basic_auth.py +0 -0
  164. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api/auth/backend/test_kerberos_auth.py +0 -0
  165. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api/auth/backend/test_session.py +0 -0
  166. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api_endpoints/__init__.py +0 -0
  167. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api_endpoints/api_connexion_utils.py +0 -0
  168. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api_endpoints/remote_user_api_auth_backend.py +0 -0
  169. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api_endpoints/test_auth.py +0 -0
  170. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api_endpoints/test_role_and_permission_endpoint.py +0 -0
  171. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api_endpoints/test_user_endpoint.py +0 -0
  172. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api_fastapi/__init__.py +0 -0
  173. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api_fastapi/conftest.py +0 -0
  174. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
  175. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api_fastapi/routes/test_login.py +0 -0
  176. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
  177. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/api_fastapi/services/test_login.py +0 -0
  178. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/cli_commands/__init__.py +0 -0
  179. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/cli_commands/test_db_command.py +0 -0
  180. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/cli_commands/test_definition.py +0 -0
  181. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/cli_commands/test_role_command.py +0 -0
  182. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/cli_commands/test_sync_perm_command.py +0 -0
  183. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/cli_commands/test_user_command.py +0 -0
  184. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/cli_commands/test_utils.py +0 -0
  185. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/conftest.py +0 -0
  186. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/models/__init__.py +0 -0
  187. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/models/test_anonymous_user.py +0 -0
  188. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/models/test_db.py +0 -0
  189. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/schemas/__init__.py +0 -0
  190. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/schemas/test_role_and_permission_schema.py +0 -0
  191. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/schemas/test_user_schema.py +0 -0
  192. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/security_manager/__init__.py +0 -0
  193. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/security_manager/test_constants.py +0 -0
  194. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/security_manager/test_override.py +0 -0
  195. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/test_fab_auth_manager.py +0 -0
  196. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/test_models.py +0 -0
  197. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/views/__init__.py +0 -0
  198. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/views/test_permissions.py +0 -0
  199. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/views/test_roles_list.py +0 -0
  200. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/views/test_user.py +0 -0
  201. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/views/test_user_edit.py +0 -0
  202. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/auth_manager/views/test_user_stats.py +0 -0
  203. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/decorators.py +0 -0
  204. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/utils.py +0 -0
  205. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/www/__init__.py +0 -0
  206. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/www/test_auth.py +0 -0
  207. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/www/test_utils.py +0 -0
  208. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/www/views/__init__.py +0 -0
  209. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/www/views/conftest.py +0 -0
  210. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/tests/unit/fab/www/views/test_connection_form_fields.py +0 -0
  211. {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2rc2}/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.0.1rc1
3
+ Version: 2.0.2rc2
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.0rc0
26
- Requires-Dist: apache-airflow-providers-common-compat>=1.2.1rc0
25
+ Requires-Dist: apache-airflow>=3.0.0rc1
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.5.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.0.1/changelog.html
40
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.1
39
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.2/changelog.html
40
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.2
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.0.1``
72
+ Release: ``2.0.2``
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.0.1/>`_.
85
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.2/>`_.
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.0.1/changelog.html>`_.
136
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.2/changelog.html>`_.
137
137
 
@@ -23,7 +23,7 @@
23
23
 
24
24
  Package ``apache-airflow-providers-fab``
25
25
 
26
- Release: ``2.0.1``
26
+ Release: ``2.0.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/2.0.1/>`_.
39
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.2/>`_.
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.0.1/changelog.html>`_.
90
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.2/changelog.html>`_.
@@ -57,7 +57,7 @@ To enable Kerberos authentication, set the following in the configuration:
57
57
  [kerberos]
58
58
  keytab = <KEYTAB>
59
59
 
60
- The airflow Kerberos service is configured as ``airflow/fully.qualified.domainname@REALM``. Make sure this
60
+ The Airflow Kerberos service is configured as ``airflow/fully.qualified.domainname@REALM``. Make sure this
61
61
  principal exists `in both the Kerberos database as well as in the keytab file </docs/apache-airflow/stable/security/kerberos.html#enabling-kerberos>`_.
62
62
 
63
63
  You have to make sure to name your users with the kerberos full username/realm in order to make it
@@ -0,0 +1,38 @@
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
+ Configuring Flask Application for Airflow Webserver
19
+ ===================================================
20
+
21
+ ``FabAuthManager`` and Airflow 2 plugins uses Flask to render the web UI.When initialized, predefined configuration
22
+ is used, based on the ``webserver`` section of the ``airflow.cfg`` file. You can override these settings
23
+ and add any extra settings by adding flask configuration to ``webserver_config.py`` file specified in ``[fab] config_file`` (by default it is ``$AIRFLOW_HOME/webserver_config.py``). This file is automatically loaded by the webserver.
24
+
25
+ For example if you would like to change rate limit strategy to "moving window", you can set the
26
+ ``RATELIMIT_STRATEGY`` to ``moving-window``.
27
+
28
+ You could also enhance / modify the underlying flask app directly,
29
+ as the `app context <https://flask.palletsprojects.com/en/2.3.x/appcontext/>`_ is pushed to ``webserver_config.py``:
30
+
31
+ .. code-block:: python
32
+
33
+ from flask import current_app as app
34
+
35
+
36
+ @app.before_requestq
37
+ def print_custom_message() -> None:
38
+ print("Executing before every request")
@@ -30,6 +30,7 @@ Follow the below topics as well to understand other aspects of FAB auth manager:
30
30
  * :doc:`access-control`. How FAB auth manager manage users and permissions
31
31
  * :doc:`webserver-authentication`. To learn the different options available in FAB auth manager to authenticate users
32
32
  * :doc:`security`. To learn the different options available in FAB auth manager to secure the UI provided by FAB auth manager
33
+ * :doc:`configuring-flask-app`. To learn the configuration options available for the flask app used by ``FabAuthManager``.
33
34
 
34
35
  .. toctree::
35
36
  :hidden:
@@ -20,6 +20,35 @@
20
20
  Changelog
21
21
  ---------
22
22
 
23
+ 2.0.2
24
+ .....
25
+
26
+ Bug Fixes
27
+ ~~~~~~~~~
28
+
29
+ * ``Add read config permission to viewer role in 'FabAuthManager' (#49581)``
30
+ * ``Fix infinite redirect in FAB AuthManager caused by mistakenly setting token cookie as secure (#49724)``
31
+
32
+ Misc
33
+ ~~~~
34
+
35
+ * ``Remove some lingering subdag references (#49663)``
36
+ * ``Bump stylelint (#49638)``
37
+ * ``Bump the fab-ui-package-updates group across 1 directory with 2 updates (#49511)``
38
+ * ``Remove old dynamic attr accessing re dag resource in FAB provider (#49669)``
39
+
40
+ Doc-only
41
+ ~~~~~~~~
42
+
43
+ * ``Adding flask app configuration docs to FAB provider (#49492)``
44
+ * ``Add note in FAB migration doc (#49423)``
45
+
46
+ .. Below changes are excluded from the changelog. Move them to
47
+ appropriate section above if needed. Do not delete the lines(!):
48
+ * ``capitalize the term airflow (#49450)``
49
+ * ``Bump the fab-ui-package-updates group across 1 directory with 2 updates (#49792)``
50
+ * ``Prepare docs for Apr ad hoc release of fab and common.compat providers (#49690)``
51
+
23
52
  2.0.1
24
53
  .....
25
54
 
@@ -34,6 +34,27 @@ For high-level changelog, see :doc:`package information including changelog <ind
34
34
 
35
35
 
36
36
 
37
+ 2.0.2
38
+ .....
39
+
40
+ Latest change: 2025-04-25
41
+
42
+ ================================================================================================== =========== =========================================================================================================
43
+ Commit Committed Subject
44
+ ================================================================================================== =========== =========================================================================================================
45
+ `36c8975522 <https://github.com/apache/airflow/commit/36c8975522a9241605ff34d0d78daa26f02a360b>`__ 2025-04-25 ``Bump the fab-ui-package-updates group across 1 directory with 2 updates (#49792)``
46
+ `e3c221d135 <https://github.com/apache/airflow/commit/e3c221d13577b1fbd3d6c54267d50ee11a4ab62e>`__ 2025-04-24 ``Remove old dynamic attr accessing re dag resource in FAB provider (#49669)``
47
+ `8ad08fa075 <https://github.com/apache/airflow/commit/8ad08fa075ee23f891339fa237a093ea5e52f49c>`__ 2025-04-24 ``Fix infinite redirect in FAB AuthManager caused by mistakenly setting token cookie as secure (#49724)``
48
+ `c14b3c7407 <https://github.com/apache/airflow/commit/c14b3c74078e523a1623ab461213ec07a3bfac62>`__ 2025-04-24 ``Prepare docs for Apr ad hoc release of fab and common.compat providers (#49690)``
49
+ `b01e534195 <https://github.com/apache/airflow/commit/b01e534195fff5dea03d000051e6469b83852f6c>`__ 2025-04-23 ``Remove some lingering subdag references (#49663)``
50
+ `d2755fc52e <https://github.com/apache/airflow/commit/d2755fc52e13db4816fa69409c16ac777b5f7c9f>`__ 2025-04-23 ``Bump stylelint (#49638)``
51
+ `998f70036b <https://github.com/apache/airflow/commit/998f70036b919a434edd086c0233991c5ff1c736>`__ 2025-04-23 ``Add read config permission to viewer role in 'FabAuthManager' (#49581)``
52
+ `1ec1e68f6b <https://github.com/apache/airflow/commit/1ec1e68f6bcd18affa2cad5e72408b7463fa81c0>`__ 2025-04-23 ``Adding flask app configuration docs to FAB provider (#49492)``
53
+ `5595ded129 <https://github.com/apache/airflow/commit/5595ded129e00553df0af735e2513f996b1b524d>`__ 2025-04-22 ``Bump the fab-ui-package-updates group across 1 directory with 2 updates (#49511)``
54
+ `223a741869 <https://github.com/apache/airflow/commit/223a741869505ad31c38310f307bf2f0f0f193fb>`__ 2025-04-19 ``capitalize the term airflow (#49450)``
55
+ `f65eeb05f4 <https://github.com/apache/airflow/commit/f65eeb05f48d9ad67cdbbeb81a5db085c519aaba>`__ 2025-04-18 ``Add note in FAB migration doc (#49423)``
56
+ ================================================================================================== =========== =========================================================================================================
57
+
37
58
  2.0.1
38
59
  .....
39
60
 
@@ -42,6 +63,7 @@ Latest change: 2025-04-16
42
63
  ================================================================================================== =========== ===================================================================================================
43
64
  Commit Committed Subject
44
65
  ================================================================================================== =========== ===================================================================================================
66
+ `ca3e4e75c6 <https://github.com/apache/airflow/commit/ca3e4e75c634afdceb23a86b7e0b0ff74614a7f1>`__ 2025-04-16 ``Prepare docs for Apr 3rd wave of providers (#49338)``
45
67
  `ade9fb185a <https://github.com/apache/airflow/commit/ade9fb185a92530001e23fb6391163a300463c36>`__ 2025-04-16 ``refactor: remove 'navbar_logo_text_color' (#49161)``
46
68
  `47bd8961a9 <https://github.com/apache/airflow/commit/47bd8961a9ce4e2cea0dbabd400d2508eb291948>`__ 2025-04-15 ``Use contextlib.suppress(exception) instead of try-except-pass and add SIM105 ruff rule (#49251)``
47
69
  `a45c32971c <https://github.com/apache/airflow/commit/a45c32971ce1f91a985af57d0b186295e6fae887>`__ 2025-04-15 ``Add possibility to have extra project metadata in providers (#49306)``
@@ -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.0.1
87
+ Release: 2.0.2
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.0.1 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.0.1.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.0.1.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.0.1.tar.gz.sha512>`__)
150
- * `The apache-airflow-providers-fab 2.0.1 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.0.1-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.0.1-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.0.1-py3-none-any.whl.sha512>`__)
149
+ * `The apache-airflow-providers-fab 2.0.2 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.0.2.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.0.2.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.0.2.tar.gz.sha512>`__)
150
+ * `The apache-airflow-providers-fab 2.0.2 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.0.2-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.0.2-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.0.2-py3-none-any.whl.sha512>`__)
@@ -28,6 +28,10 @@ must run ``airflow fab-db migrate`` to migrate your database with the schema cha
28
28
  upgrading to. If ``FABDBManager`` is included in the ``[core] external_db_managers`` configuration, the migrations will
29
29
  be run automatically as part of the ``airflow db migrate`` command.
30
30
 
31
+ .. note::
32
+ If FAB auth manager is configured as auth manager in your environment, ``FABDBManager`` is automatically added in the
33
+ ``[core] external_db_managers`` configuration.
34
+
31
35
  How to upgrade
32
36
  ==============
33
37
  To upgrade the FAB provider, you need to install the new version of the package. You can do this using ``pip``.
@@ -28,10 +28,11 @@ description: |
28
28
  # For providers until we think it should be released.
29
29
  state: ready
30
30
 
31
- source-date-epoch: 1741121873
31
+ source-date-epoch: 1745478857
32
32
 
33
33
  # note that those versions are maintained by release manager - do not update them manually
34
34
  versions:
35
+ - 2.0.2
35
36
  - 2.0.1
36
37
  - 2.0.0
37
38
  - 1.5.2
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
25
25
 
26
26
  [project]
27
27
  name = "apache-airflow-providers-fab"
28
- version = "2.0.1.rc1"
28
+ version = "2.0.2rc2"
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.0rc0",
61
- "apache-airflow-providers-common-compat>=1.2.1rc0",
60
+ "apache-airflow>=3.0.0rc1",
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.0.1"
131
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.1/changelog.html"
130
+ "Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.2"
131
+ "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.2/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"
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "2.0.1"
32
+ __version__ = "2.0.2"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "3.0.0"
@@ -566,7 +566,7 @@ class FabAuthManager(BaseAuthManager[User]):
566
566
 
567
567
  if details and details.id:
568
568
  # Check whether the user has permissions to access a specific DAG
569
- resource_dag_name = self._resource_name(details.id, RESOURCE_DAG)
569
+ resource_dag_name = permissions.resource_name(details.id, RESOURCE_DAG)
570
570
  return self._is_authorized(method=method, resource_type=resource_dag_name, user=user)
571
571
 
572
572
  return False
@@ -592,7 +592,7 @@ class FabAuthManager(BaseAuthManager[User]):
592
592
 
593
593
  if details and details.id:
594
594
  # Check whether the user has permissions to access a specific DAG Run permission on a DAG Level
595
- resource_dag_name = self._resource_name(details.id, RESOURCE_DAG_RUN)
595
+ resource_dag_name = permissions.resource_name(details.id, RESOURCE_DAG_RUN)
596
596
  return self._is_authorized(method=method, resource_type=resource_dag_name, user=user)
597
597
 
598
598
  return False
@@ -624,19 +624,6 @@ class FabAuthManager(BaseAuthManager[User]):
624
624
  raise AirflowException(f"Unknown DAG access entity: {dag_access_entity}")
625
625
  return _MAP_DAG_ACCESS_ENTITY_TO_FAB_RESOURCE_TYPE[dag_access_entity]
626
626
 
627
- def _resource_name(self, dag_id: str, resource_type: str) -> str:
628
- """
629
- Return the FAB resource name for a DAG id.
630
-
631
- :param dag_id: the DAG id
632
-
633
- :meta private:
634
- """
635
- root_dag_id = self._get_root_dag_id(dag_id)
636
- if hasattr(permissions, "resource_name"):
637
- return getattr(permissions, "resource_name")(root_dag_id, resource_type)
638
- return getattr(permissions, "resource_name_for_dag")(root_dag_id)
639
-
640
627
  @staticmethod
641
628
  def _get_user_permissions(user: User):
642
629
  """
@@ -651,23 +638,6 @@ class FabAuthManager(BaseAuthManager[User]):
651
638
  return []
652
639
  return getattr(user, "perms") or []
653
640
 
654
- def _get_root_dag_id(self, dag_id: str) -> str:
655
- """
656
- Return the root DAG id in case of sub DAG, return the DAG id otherwise.
657
-
658
- :param dag_id: the DAG id
659
-
660
- :meta private:
661
- """
662
- if not self.appbuilder:
663
- raise AirflowException("AppBuilder is not initialized.")
664
-
665
- if "." in dag_id and hasattr(DagModel, "root_dag_id"):
666
- return self.appbuilder.get_session.scalar(
667
- select(DagModel.dag_id, DagModel.root_dag_id).where(DagModel.dag_id == dag_id).limit(1)
668
- )
669
- return dag_id
670
-
671
641
  def _sync_appbuilder_roles(self):
672
642
  """
673
643
  Sync appbuilder roles to DB.
@@ -216,6 +216,7 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
216
216
  (permissions.ACTION_CAN_READ, RESOURCE_ASSET_ALIAS),
217
217
  (permissions.ACTION_CAN_READ, RESOURCE_BACKFILL),
218
218
  (permissions.ACTION_CAN_READ, permissions.RESOURCE_CLUSTER_ACTIVITY),
219
+ (permissions.ACTION_CAN_READ, permissions.RESOURCE_CONFIG),
219
220
  (permissions.ACTION_CAN_READ, permissions.RESOURCE_POOL),
220
221
  (permissions.ACTION_CAN_READ, permissions.RESOURCE_IMPORT_ERROR),
221
222
  (permissions.ACTION_CAN_READ, permissions.RESOURCE_JOB),
@@ -258,7 +259,6 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
258
259
 
259
260
  # [START security_op_perms]
260
261
  OP_PERMISSIONS = [
261
- (permissions.ACTION_CAN_READ, permissions.RESOURCE_CONFIG),
262
262
  (permissions.ACTION_CAN_ACCESS_MENU, permissions.RESOURCE_ADMIN_MENU),
263
263
  (permissions.ACTION_CAN_ACCESS_MENU, permissions.RESOURCE_CONFIG),
264
264
  (permissions.ACTION_CAN_ACCESS_MENU, permissions.RESOURCE_CONNECTION),
@@ -921,15 +921,14 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
921
921
  dags = dagbag.dags.values()
922
922
 
923
923
  for dag in dags:
924
- root_dag_id = dag.dag_id
925
924
  for resource_name, resource_values in self.RESOURCE_DETAILS_MAP.items():
926
- dag_resource_name = self._resource_name(root_dag_id, resource_name)
925
+ dag_resource_name = permissions.resource_name(dag.dag_id, resource_name)
927
926
  for action_name in resource_values["actions"]:
928
927
  if (action_name, dag_resource_name) not in perms:
929
928
  self._merge_perm(action_name, dag_resource_name)
930
929
 
931
930
  if dag.access_control is not None:
932
- self.sync_perm_for_dag(root_dag_id, dag.access_control)
931
+ self.sync_perm_for_dag(dag.dag_id, dag.access_control)
933
932
 
934
933
  def sync_perm_for_dag(
935
934
  self,
@@ -949,7 +948,7 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
949
948
  :return:
950
949
  """
951
950
  for resource_name, resource_values in self.RESOURCE_DETAILS_MAP.items():
952
- dag_resource_name = self._resource_name(dag_id, resource_name)
951
+ dag_resource_name = permissions.resource_name(dag_id, resource_name)
953
952
  for dag_action_name in resource_values["actions"]:
954
953
  self.create_permission(dag_action_name, dag_resource_name)
955
954
 
@@ -962,17 +961,6 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
962
961
  dag_id,
963
962
  )
964
963
 
965
- def _resource_name(self, dag_id: str, resource_name: str) -> str:
966
- """
967
- Get the resource name from permissions.
968
-
969
- This method is to keep compatibility with new FAB versions
970
- running with old airflow versions.
971
- """
972
- if hasattr(permissions, "resource_name"):
973
- return getattr(permissions, "resource_name")(dag_id, resource_name)
974
- return getattr(permissions, "resource_name_for_dag")(dag_id)
975
-
976
964
  def _sync_dag_view_permissions(
977
965
  self,
978
966
  dag_id: str,
@@ -1000,7 +988,7 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
1000
988
 
1001
989
  # Revoking stale permissions for all possible DAG level resources
1002
990
  for resource_name in self.RESOURCE_DETAILS_MAP.keys():
1003
- dag_resource_name = self._resource_name(dag_id, resource_name)
991
+ dag_resource_name = permissions.resource_name(dag_id, resource_name)
1004
992
  if resource := self.get_resource(dag_resource_name):
1005
993
  existing_dag_perms = self.get_resource_permissions(resource)
1006
994
  for perm in existing_dag_perms:
@@ -1043,7 +1031,7 @@ class FabAirflowSecurityManagerOverride(AirflowSecurityManagerV2):
1043
1031
  f"The set of valid resource names is: {self.RESOURCE_DETAILS_MAP.keys()}"
1044
1032
  )
1045
1033
 
1046
- dag_resource_name = self._resource_name(dag_id, resource_name)
1034
+ dag_resource_name = permissions.resource_name(dag_id, resource_name)
1047
1035
  self.log.debug("Syncing DAG-level permissions for DAG '%s'", dag_resource_name)
1048
1036
 
1049
1037
  invalid_actions = set(actions) - self.RESOURCE_DETAILS_MAP[resource_name]["actions"]