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