apache-airflow-providers-fab 2.0.1rc1__tar.gz → 2.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/PKG-INFO +8 -8
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/README.rst +3 -3
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/auth-manager/api-authentication.rst +1 -1
- apache_airflow_providers_fab-2.0.2/docs/auth-manager/configuring-flask-app.rst +38 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/auth-manager/index.rst +1 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/changelog.rst +29 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/commits.rst +22 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/index.rst +3 -3
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/upgrading.rst +4 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/provider.yaml +2 -1
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/pyproject.toml +5 -5
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/__init__.py +1 -1
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/fab_auth_manager.py +2 -32
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/security_manager/override.py +6 -18
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/package-lock.json +58 -57
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/package.json +3 -3
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/security/permissions.py +1 -24
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/views.py +1 -1
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/test_security.py +1 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/3rd-party-licenses/LICENSES-ui.txt +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/NOTICE +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/api-ref/fab-public-api-ref.rst +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/api-ref/fab-token-api-ref.rst +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/auth-manager/access-control.rst +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/auth-manager/security.rst +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/auth-manager/token.rst +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/auth-manager/webserver-authentication.rst +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/cli-ref.rst +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/conf.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/configurations-ref.rst +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/img/add-role.png +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/img/diagram_fab_auth_manager_airflow_architecture.md5sum +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/img/diagram_fab_auth_manager_airflow_architecture.png +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/img/diagram_fab_auth_manager_airflow_architecture.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/img/new-role.png +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/migrations-ref.rst +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/security.rst +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/3rd-party-licenses/LICENSES-ui.txt +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/LICENSE +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/alembic.ini +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api/auth/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api/auth/backend/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api/auth/backend/session.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api_endpoints/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api_fastapi/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/login.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/v1-fab-auth-manager-generated.yaml +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/login.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/api_fastapi/services/login.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/cli_commands/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/cli_commands/db_command.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/cli_commands/definition.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/cli_commands/role_command.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/cli_commands/sync_perm_command.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/cli_commands/user_command.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/cli_commands/utils.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/models/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/models/anonymous_user.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/models/db.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/openapi/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/openapi/v1-flask-api.yaml +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/schemas/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/schemas/role_and_permission_schema.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/schemas/user_schema.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/security_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/security_manager/constants.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/views/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/views/permissions.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/views/roles_list.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/views/user.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/views/user_edit.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/auth_manager/views/user_stats.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/get_provider_info.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/migrations/README +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/migrations/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/migrations/env.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/migrations/script.py.mako +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/migrations/versions/0001_1_4_0_placeholder_migration.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/migrations/versions/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/airflow_flask_app.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/api_connexion/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/api_connexion/exceptions.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/api_connexion/parameters.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/api_connexion/security.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/api_connexion/types.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/app.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/auth.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/constants.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/extensions/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/extensions/init_appbuilder.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/extensions/init_jinja_globals.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/extensions/init_manifest_files.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/extensions/init_security.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/extensions/init_session.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/extensions/init_views.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/security/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/security_appless.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/security_manager.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/session.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/css/bootstrap-theme.css +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/css/flash.css +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/css/loading-dots.css +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/css/main.css +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/css/material-icons.css +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/48f0ea180c40270a5b05.png +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/649c0b07771e68fafdeb.png +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.css +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.js +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/f7490d556a6c42e49ba4.png +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/flash.137b30cff85b5588e661.css +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/flash.137b30cff85b5588e661.js +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.css +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js.LICENSE.txt +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.css +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.js +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.css +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.js +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/main.edb2d40dfbbc537916e3.js.LICENSE.txt +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/manifest.json +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.css +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.js +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/moment.624b1f00ba723d39ce06.js +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/moment.624b1f00ba723d39ce06.js.LICENSE.txt +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/dist/oss-licenses.json +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/js/datetime_utils.js +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/js/main.js +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/sort_asc.png +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/sort_both.png +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/static/sort_desc.png +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/templates/airflow/_messages.html +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/templates/airflow/error.html +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/templates/airflow/main.html +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/templates/airflow/traceback.html +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/templates/appbuilder/flash.html +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/templates/appbuilder/index.html +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/templates/appbuilder/navbar.html +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/templates/appbuilder/navbar_menu.html +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/templates/appbuilder/navbar_right.html +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/utils.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/src/airflow/providers/fab/www/webpack.config.js +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/conftest.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api/auth/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api/auth/backend/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api/auth/backend/test_basic_auth.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api/auth/backend/test_kerberos_auth.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api/auth/backend/test_session.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api_endpoints/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api_endpoints/api_connexion_utils.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api_endpoints/remote_user_api_auth_backend.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api_endpoints/test_auth.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api_endpoints/test_role_and_permission_endpoint.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api_endpoints/test_user_endpoint.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api_fastapi/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api_fastapi/conftest.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api_fastapi/routes/test_login.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/api_fastapi/services/test_login.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/cli_commands/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/cli_commands/test_db_command.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/cli_commands/test_definition.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/cli_commands/test_role_command.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/cli_commands/test_sync_perm_command.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/cli_commands/test_user_command.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/cli_commands/test_utils.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/conftest.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/models/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/models/test_anonymous_user.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/models/test_db.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/schemas/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/schemas/test_role_and_permission_schema.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/schemas/test_user_schema.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/security_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/security_manager/test_constants.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/security_manager/test_override.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/test_fab_auth_manager.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/test_models.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/views/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/views/test_permissions.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/views/test_roles_list.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/views/test_user.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/views/test_user_edit.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/auth_manager/views/test_user_stats.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/decorators.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/utils.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/www/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/www/test_auth.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/www/test_utils.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/www/views/__init__.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/www/views/conftest.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/tests/unit/fab/www/views/test_connection_form_fields.py +0 -0
- {apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/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.
|
3
|
+
Version: 2.0.2
|
4
4
|
Summary: Provider package apache-airflow-providers-fab for Apache Airflow
|
5
5
|
Keywords: airflow-provider,fab,airflow,integration
|
6
6
|
Author-email: Apache Software Foundation <dev@airflow.apache.org>
|
@@ -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.
|
26
|
-
Requires-Dist: apache-airflow-providers-common-compat>=1.2.
|
25
|
+
Requires-Dist: apache-airflow>=3.0.0
|
26
|
+
Requires-Dist: apache-airflow-providers-common-compat>=1.2.1
|
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.
|
40
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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
|
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:
|
{apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/changelog.rst
RENAMED
@@ -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
|
|
{apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/commits.rst
RENAMED
@@ -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.
|
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.
|
150
|
-
* `The apache-airflow-providers-fab 2.0.
|
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>`__)
|
{apache_airflow_providers_fab-2.0.1rc1 → apache_airflow_providers_fab-2.0.2}/docs/upgrading.rst
RENAMED
@@ -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:
|
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.
|
28
|
+
version = "2.0.2"
|
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.
|
61
|
-
"apache-airflow-providers-common-compat>=1.2.
|
60
|
+
"apache-airflow>=3.0.0",
|
61
|
+
"apache-airflow-providers-common-compat>=1.2.1",
|
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.
|
131
|
-
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-fab/2.0.
|
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.
|
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 =
|
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 =
|
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 =
|
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(
|
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 =
|
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 =
|
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 =
|
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"]
|