apache-airflow-providers-fab 2.4.2rc1__tar.gz → 2.4.3__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.
Potentially problematic release.
This version of apache-airflow-providers-fab might be problematic. Click here for more details.
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/PKG-INFO +19 -8
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/README.rst +13 -3
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/changelog.rst +22 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/index.rst +4 -3
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/provider.yaml +2 -1
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/pyproject.toml +9 -5
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/__init__.py +1 -1
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/cli_commands/definition.py +32 -0
- apache_airflow_providers_fab-2.4.3/src/airflow/providers/fab/auth_manager/cli_commands/permissions_command.py +196 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/fab_auth_manager.py +2 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/security_manager/override.py +3 -2
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/package-lock.json +84 -83
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/package.json +4 -4
- apache_airflow_providers_fab-2.4.3/tests/unit/fab/auth_manager/cli_commands/test_permissions_command.py +353 -0
- apache_airflow_providers_fab-2.4.3/www-hash.txt +1 -0
- apache_airflow_providers_fab-2.4.2rc1/www-hash.txt +0 -1
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/3rd-party-licenses/LICENSES-ui.txt +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/NOTICE +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/api-ref/fab-public-api-ref.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/api-ref/fab-token-api-ref.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/auth-manager/access-control.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/auth-manager/api-authentication.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/auth-manager/configuring-flask-app.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/auth-manager/index.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/auth-manager/security.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/auth-manager/token.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/auth-manager/webserver-authentication.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/cli-ref.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/commits.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/conf.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/configurations-ref.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/img/add-role.png +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/img/diagram_fab_auth_manager_airflow_architecture.md5sum +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/img/diagram_fab_auth_manager_airflow_architecture.png +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/img/diagram_fab_auth_manager_airflow_architecture.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/img/new-role.png +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/migrations-ref.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/security.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/upgrading.rst +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/3rd-party-licenses/LICENSES-ui.txt +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/LICENSE +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/alembic.ini +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api/auth/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api/auth/backend/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api/auth/backend/session.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api_endpoints/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api_fastapi/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/login.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/v2-fab-auth-manager-generated.yaml +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/login.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/api_fastapi/services/login.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/cli_commands/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/cli_commands/db_command.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/cli_commands/role_command.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/cli_commands/sync_perm_command.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/cli_commands/user_command.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/cli_commands/utils.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/models/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/models/anonymous_user.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/models/db.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/openapi/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/openapi/v1-flask-api.yaml +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/schemas/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/schemas/role_and_permission_schema.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/schemas/user_schema.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/security_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/security_manager/constants.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/views/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/views/permissions.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/views/roles_list.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/views/user.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/views/user_edit.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/auth_manager/views/user_stats.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/get_provider_info.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/migrations/README +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/migrations/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/migrations/env.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/migrations/script.py.mako +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/migrations/versions/0001_1_4_0_create_ab_tables_if_missing.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/migrations/versions/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/version_compat.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/airflow_flask_app.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/api_connexion/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/api_connexion/exceptions.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/api_connexion/parameters.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/api_connexion/security.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/api_connexion/types.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/app.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/auth.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/constants.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/extensions/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/extensions/init_appbuilder.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/extensions/init_jinja_globals.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/extensions/init_manifest_files.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/extensions/init_security.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/extensions/init_session.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/extensions/init_views.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/extensions/init_wsgi_middlewares.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/security/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/security/permissions.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/security_appless.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/security_manager.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/session.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/css/bootstrap-theme.css +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/css/flash.css +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/css/loading-dots.css +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/css/main.css +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/css/material-icons.css +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/48f0ea180c40270a5b05.png +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/649c0b07771e68fafdeb.png +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/743.fc7a7c6ef9d09365976e.js +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/743.fc7a7c6ef9d09365976e.js.LICENSE.txt +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ff5a35f322070b094aa2.css +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ff5a35f322070b094aa2.js +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/f7490d556a6c42e49ba4.png +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/flash.5583a9e0cf11f2be93da.css +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/flash.5583a9e0cf11f2be93da.js +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.css +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js.LICENSE.txt +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/loadingDots.2e5f555f0753107b0300.css +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/loadingDots.2e5f555f0753107b0300.js +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.css +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.js +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.js.LICENSE.txt +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/manifest.json +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/materialIcons.3e67dd6fbfcc4f3b5105.css +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/materialIcons.3e67dd6fbfcc4f3b5105.js +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/moment.9baee5ec3d7639a10897.js +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/oss-licenses.json +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/dist/runtime.ad800fc1845ad5c6ddeb.js +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/js/datetime_utils.js +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/js/main.js +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/pin_100.png +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/pin_32.png +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/sort_asc.png +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/sort_both.png +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/static/sort_desc.png +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/templates/airflow/_messages.html +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/templates/airflow/error.html +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/templates/airflow/main.html +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/templates/airflow/traceback.html +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/templates/appbuilder/flash.html +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/templates/appbuilder/index.html +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/templates/appbuilder/navbar.html +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/templates/appbuilder/navbar_menu.html +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/templates/appbuilder/navbar_right.html +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/utils.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/views.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/src/airflow/providers/fab/www/webpack.config.js +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/conftest.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api/auth/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api/auth/backend/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api/auth/backend/test_basic_auth.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api/auth/backend/test_kerberos_auth.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api/auth/backend/test_session.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api_endpoints/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api_endpoints/api_connexion_utils.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api_endpoints/remote_user_api_auth_backend.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api_endpoints/test_auth.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api_endpoints/test_role_and_permission_endpoint.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api_endpoints/test_user_endpoint.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api_fastapi/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api_fastapi/conftest.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api_fastapi/routes/test_login.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/api_fastapi/services/test_login.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/cli_commands/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/cli_commands/test_db_command.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/cli_commands/test_definition.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/cli_commands/test_role_command.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/cli_commands/test_sync_perm_command.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/cli_commands/test_user_command.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/cli_commands/test_utils.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/conftest.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/models/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/models/test_anonymous_user.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/models/test_db.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/models/test_user_model.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/schemas/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/schemas/test_role_and_permission_schema.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/schemas/test_user_schema.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/security_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/security_manager/test_constants.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/security_manager/test_override.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/test_fab_auth_manager.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/test_models.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/test_security.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/views/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/views/test_permissions.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/views/test_roles_list.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/views/test_user.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/views/test_user_edit.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/auth_manager/views/test_user_stats.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/db_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/db_manager/test_fab_db_manager.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/decorators.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/plugins/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/plugins/conftest.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/plugins/test_plugin.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/utils.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/www/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/www/test_auth.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/www/test_utils.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/www/views/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/www/views/conftest.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/tests/unit/fab/www/views/test_connection_form_fields.py +0 -0
- {apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/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.4.
|
|
3
|
+
Version: 2.4.3
|
|
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>
|
|
@@ -21,8 +21,8 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
21
21
|
Classifier: Topic :: System :: Monitoring
|
|
22
22
|
License-File: 3rd-party-licenses/LICENSES-ui.txt
|
|
23
23
|
License-File: NOTICE
|
|
24
|
-
Requires-Dist: apache-airflow>=3.0.
|
|
25
|
-
Requires-Dist: apache-airflow-providers-common-compat>=1.2.
|
|
24
|
+
Requires-Dist: apache-airflow>=3.0.2
|
|
25
|
+
Requires-Dist: apache-airflow-providers-common-compat>=1.2.1
|
|
26
26
|
Requires-Dist: blinker>=1.6.2; python_version < '3.13'
|
|
27
27
|
Requires-Dist: flask>=2.2.1,<2.3; python_version < '3.13'
|
|
28
28
|
Requires-Dist: flask-appbuilder==4.6.3; python_version < '3.13'
|
|
@@ -33,10 +33,11 @@ Requires-Dist: connexion[flask]>=2.14.2,<3.0; python_version < '3.13'
|
|
|
33
33
|
Requires-Dist: jmespath>=0.7.0; python_version < '3.13'
|
|
34
34
|
Requires-Dist: werkzeug>=2.2,<4; python_version < '3.13'
|
|
35
35
|
Requires-Dist: wtforms>=3.0,<4; python_version < '3.13'
|
|
36
|
+
Requires-Dist: flask_limiter>3,<4,!=3.13
|
|
36
37
|
Requires-Dist: kerberos>=1.3.0 ; extra == "kerberos" and ( python_version < '3.13')
|
|
37
38
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
38
|
-
Project-URL: Changelog, https://airflow.
|
|
39
|
-
Project-URL: Documentation, https://airflow.
|
|
39
|
+
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3/changelog.html
|
|
40
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3
|
|
40
41
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
|
41
42
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
42
43
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
@@ -68,7 +69,7 @@ Provides-Extra: kerberos
|
|
|
68
69
|
|
|
69
70
|
Package ``apache-airflow-providers-fab``
|
|
70
71
|
|
|
71
|
-
Release: ``2.4.
|
|
72
|
+
Release: ``2.4.3``
|
|
72
73
|
|
|
73
74
|
|
|
74
75
|
`Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
|
|
@@ -81,7 +82,7 @@ This is a provider package for ``fab`` provider. All classes for this provider p
|
|
|
81
82
|
are in ``airflow.providers.fab`` python package.
|
|
82
83
|
|
|
83
84
|
You can find package information and changelog for the provider
|
|
84
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.
|
|
85
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3/>`_.
|
|
85
86
|
|
|
86
87
|
Installation
|
|
87
88
|
------------
|
|
@@ -110,6 +111,7 @@ PIP package Version required
|
|
|
110
111
|
``jmespath`` ``>=0.7.0; python_version < "3.13"``
|
|
111
112
|
``werkzeug`` ``>=2.2,<4; python_version < "3.13"``
|
|
112
113
|
``wtforms`` ``>=3.0,<4; python_version < "3.13"``
|
|
114
|
+
``flask_limiter`` ``>3,!=3.13,<4``
|
|
113
115
|
========================================== ==========================================
|
|
114
116
|
|
|
115
117
|
Cross provider package dependencies
|
|
@@ -131,6 +133,15 @@ Dependent package
|
|
|
131
133
|
`apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
|
|
132
134
|
================================================================================================================== =================
|
|
133
135
|
|
|
136
|
+
Optional dependencies
|
|
137
|
+
----------------------
|
|
138
|
+
|
|
139
|
+
============ ============================================
|
|
140
|
+
Extra Dependencies
|
|
141
|
+
============ ============================================
|
|
142
|
+
``kerberos`` ``kerberos>=1.3.0; python_version < '3.13'``
|
|
143
|
+
============ ============================================
|
|
144
|
+
|
|
134
145
|
The changelog for the provider package can be found in the
|
|
135
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.
|
|
146
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3/changelog.html>`_.
|
|
136
147
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-fab``
|
|
25
25
|
|
|
26
|
-
Release: ``2.4.
|
|
26
|
+
Release: ``2.4.3``
|
|
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.4.
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3/>`_.
|
|
40
40
|
|
|
41
41
|
Installation
|
|
42
42
|
------------
|
|
@@ -65,6 +65,7 @@ PIP package Version required
|
|
|
65
65
|
``jmespath`` ``>=0.7.0; python_version < "3.13"``
|
|
66
66
|
``werkzeug`` ``>=2.2,<4; python_version < "3.13"``
|
|
67
67
|
``wtforms`` ``>=3.0,<4; python_version < "3.13"``
|
|
68
|
+
``flask_limiter`` ``>3,!=3.13,<4``
|
|
68
69
|
========================================== ==========================================
|
|
69
70
|
|
|
70
71
|
Cross provider package dependencies
|
|
@@ -86,5 +87,14 @@ Dependent package
|
|
|
86
87
|
`apache-airflow-providers-common-compat <https://airflow.apache.org/docs/apache-airflow-providers-common-compat>`_ ``common.compat``
|
|
87
88
|
================================================================================================================== =================
|
|
88
89
|
|
|
90
|
+
Optional dependencies
|
|
91
|
+
----------------------
|
|
92
|
+
|
|
93
|
+
============ ============================================
|
|
94
|
+
Extra Dependencies
|
|
95
|
+
============ ============================================
|
|
96
|
+
``kerberos`` ``kerberos>=1.3.0; python_version < '3.13'``
|
|
97
|
+
============ ============================================
|
|
98
|
+
|
|
89
99
|
The changelog for the provider package can be found in the
|
|
90
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.
|
|
100
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3/changelog.html>`_.
|
{apache_airflow_providers_fab-2.4.2rc1 → apache_airflow_providers_fab-2.4.3}/docs/changelog.rst
RENAMED
|
@@ -20,6 +20,28 @@
|
|
|
20
20
|
Changelog
|
|
21
21
|
---------
|
|
22
22
|
|
|
23
|
+
2.4.3
|
|
24
|
+
.....
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
Release Date: ``|PypiReleaseDate|``
|
|
28
|
+
|
|
29
|
+
Bug Fixes
|
|
30
|
+
~~~~~~~~~
|
|
31
|
+
|
|
32
|
+
* ``Fix: Clean up FAB permissions when deleting DAGs (#54528)``
|
|
33
|
+
|
|
34
|
+
Misc
|
|
35
|
+
~~~~
|
|
36
|
+
|
|
37
|
+
* ``Bump stylelint from 16.23.1 to 16.24.0 in /providers/fab/src/airflow/providers/fab/www in the fab-ui-package-updates group across 1 directory (#55382)``
|
|
38
|
+
* ``Remove SDK dependency from SerializedDAG (#55538)``
|
|
39
|
+
* ``Set flask_limiter>3,<4,!=3.13 (#55592)``
|
|
40
|
+
* ``Bump the fab-ui-package-updates group across 1 directory with 3 updates (#55302)``
|
|
41
|
+
|
|
42
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
43
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
44
|
+
|
|
23
45
|
2.4.2
|
|
24
46
|
.....
|
|
25
47
|
|
|
@@ -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.4.
|
|
87
|
+
Release: 2.4.3
|
|
88
88
|
|
|
89
89
|
Provider package
|
|
90
90
|
----------------
|
|
@@ -119,6 +119,7 @@ PIP package Version required
|
|
|
119
119
|
``jmespath`` ``>=0.7.0; python_version < "3.13"``
|
|
120
120
|
``werkzeug`` ``>=2.2,<4; python_version < "3.13"``
|
|
121
121
|
``wtforms`` ``>=3.0,<4; python_version < "3.13"``
|
|
122
|
+
``flask_limiter`` ``>3,!=3.13,<4``
|
|
122
123
|
========================================== ==========================================
|
|
123
124
|
|
|
124
125
|
Cross provider package dependencies
|
|
@@ -146,5 +147,5 @@ Downloading official packages
|
|
|
146
147
|
You can download officially released packages and verify their checksums and signatures from the
|
|
147
148
|
`Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
|
|
148
149
|
|
|
149
|
-
* `The apache-airflow-providers-fab 2.4.
|
|
150
|
-
* `The apache-airflow-providers-fab 2.4.
|
|
150
|
+
* `The apache-airflow-providers-fab 2.4.3 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.3.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.3.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.3.tar.gz.sha512>`__)
|
|
151
|
+
* `The apache-airflow-providers-fab 2.4.3 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.3-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.3-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-2.4.3-py3-none-any.whl.sha512>`__)
|
|
@@ -28,13 +28,14 @@ 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: 1757950286
|
|
32
32
|
|
|
33
33
|
# Note that those versions are maintained by release manager - do not update them manually
|
|
34
34
|
# with the exception of case where other provider in sources has >= new provider version.
|
|
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.4.3
|
|
38
39
|
- 2.4.2
|
|
39
40
|
- 2.4.1
|
|
40
41
|
- 2.4.0
|
|
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
|
|
|
25
25
|
|
|
26
26
|
[project]
|
|
27
27
|
name = "apache-airflow-providers-fab"
|
|
28
|
-
version = "2.4.
|
|
28
|
+
version = "2.4.3"
|
|
29
29
|
description = "Provider package apache-airflow-providers-fab for Apache Airflow"
|
|
30
30
|
readme = "README.rst"
|
|
31
31
|
authors = [
|
|
@@ -56,8 +56,8 @@ license-files = ["NOTICE", "*/LICENSE*"]
|
|
|
56
56
|
# Make sure to run ``prek update-providers-dependencies --all-files``
|
|
57
57
|
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
|
|
58
58
|
dependencies = [
|
|
59
|
-
"apache-airflow>=3.0.
|
|
60
|
-
"apache-airflow-providers-common-compat>=1.2.
|
|
59
|
+
"apache-airflow>=3.0.2",
|
|
60
|
+
"apache-airflow-providers-common-compat>=1.2.1",
|
|
61
61
|
# Blinker use for signals in Flask, this is an optional dependency in Flask 2.2 and lower.
|
|
62
62
|
# In Flask 2.3 it becomes a mandatory dependency, and flask signals are always available.
|
|
63
63
|
"blinker>=1.6.2; python_version < '3.13'",
|
|
@@ -80,6 +80,10 @@ dependencies = [
|
|
|
80
80
|
"jmespath>=0.7.0; python_version < '3.13'",
|
|
81
81
|
"werkzeug>=2.2,<4; python_version < '3.13'",
|
|
82
82
|
"wtforms>=3.0,<4; python_version < '3.13'",
|
|
83
|
+
|
|
84
|
+
# https://github.com/dpgaspar/Flask-AppBuilder/blob/release/4.6.3/setup.py#L54C8-L54C26
|
|
85
|
+
# with an exclusion to account for https://github.com/alisaifee/flask-limiter/issues/479
|
|
86
|
+
"flask_limiter>3,<4,!=3.13",
|
|
83
87
|
]
|
|
84
88
|
|
|
85
89
|
# The optional dependencies should be modified in place in the generated file
|
|
@@ -126,8 +130,8 @@ apache-airflow-providers-common-sql = {workspace = true}
|
|
|
126
130
|
apache-airflow-providers-standard = {workspace = true}
|
|
127
131
|
|
|
128
132
|
[project.urls]
|
|
129
|
-
"Documentation" = "https://airflow.
|
|
130
|
-
"Changelog" = "https://airflow.
|
|
133
|
+
"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3"
|
|
134
|
+
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-fab/2.4.3/changelog.html"
|
|
131
135
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
132
136
|
"Source Code" = "https://github.com/apache/airflow"
|
|
133
137
|
"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.4.
|
|
32
|
+
__version__ = "2.4.3"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
35
|
"3.0.2"
|
|
@@ -108,6 +108,14 @@ ARG_INCLUDE_DAGS = Arg(
|
|
|
108
108
|
("--include-dags",), help="If passed, DAG specific permissions will also be synced.", action="store_true"
|
|
109
109
|
)
|
|
110
110
|
|
|
111
|
+
# permissions cleanup
|
|
112
|
+
ARG_DRY_RUN = Arg(
|
|
113
|
+
("--dry-run",), help="Show what would be cleaned up without making any changes.", action="store_true"
|
|
114
|
+
)
|
|
115
|
+
ARG_DAG_ID_OPTIONAL = Arg(
|
|
116
|
+
("-d", "--dag-id"), help="Optional: Clean up permissions for specific DAG ID only", type=str
|
|
117
|
+
)
|
|
118
|
+
|
|
111
119
|
################
|
|
112
120
|
# # COMMANDS # #
|
|
113
121
|
################
|
|
@@ -253,6 +261,30 @@ SYNC_PERM_COMMAND = ActionCommand(
|
|
|
253
261
|
args=(ARG_INCLUDE_DAGS, ARG_VERBOSE),
|
|
254
262
|
)
|
|
255
263
|
|
|
264
|
+
PERMISSIONS_CLEANUP_COMMAND = ActionCommand(
|
|
265
|
+
name="permissions-cleanup",
|
|
266
|
+
help="Clean up DAG permissions in Flask-AppBuilder tables",
|
|
267
|
+
description=(
|
|
268
|
+
"Clean up DAG-specific permissions. By default, cleans up orphaned permissions "
|
|
269
|
+
"for deleted DAGs. Use --dag-id to clean up permissions for a specific DAG."
|
|
270
|
+
),
|
|
271
|
+
func=lazy_load_command(
|
|
272
|
+
"airflow.providers.fab.auth_manager.cli_commands.permissions_command.permissions_cleanup"
|
|
273
|
+
),
|
|
274
|
+
args=(ARG_DAG_ID_OPTIONAL, ARG_DRY_RUN, ARG_YES, ARG_VERBOSE),
|
|
275
|
+
epilog=(
|
|
276
|
+
"examples:\n"
|
|
277
|
+
"To see what orphaned permissions would be cleaned up:\n"
|
|
278
|
+
" $ airflow fab-auth-manager permissions-cleanup --dry-run\n"
|
|
279
|
+
"To clean up all orphaned permissions:\n"
|
|
280
|
+
" $ airflow fab-auth-manager permissions-cleanup\n"
|
|
281
|
+
"To clean up permissions for specific DAG:\n"
|
|
282
|
+
" $ airflow fab-auth-manager permissions-cleanup --dag-id my_dag\n"
|
|
283
|
+
"To clean up without confirmation:\n"
|
|
284
|
+
" $ airflow fab-auth-manager permissions-cleanup --yes"
|
|
285
|
+
),
|
|
286
|
+
)
|
|
287
|
+
|
|
256
288
|
DB_COMMANDS = (
|
|
257
289
|
ActionCommand(
|
|
258
290
|
name="migrate",
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
# or more contributor license agreements. See the NOTICE file
|
|
4
|
+
# distributed with this work for additional information
|
|
5
|
+
# regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
# to you under the Apache License, Version 2.0 (the
|
|
7
|
+
# "License"); you may not use this file except in compliance
|
|
8
|
+
# with the License. You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing,
|
|
13
|
+
# software distributed under the License is distributed on an
|
|
14
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
# KIND, either express or implied. See the License for the
|
|
16
|
+
# specific language governing permissions and limitations
|
|
17
|
+
# under the License.
|
|
18
|
+
"""Permissions cleanup command."""
|
|
19
|
+
|
|
20
|
+
from __future__ import annotations
|
|
21
|
+
|
|
22
|
+
import logging
|
|
23
|
+
from typing import TYPE_CHECKING
|
|
24
|
+
|
|
25
|
+
from airflow.utils import cli as cli_utils
|
|
26
|
+
from airflow.utils.providers_configuration_loader import providers_configuration_loaded
|
|
27
|
+
from airflow.utils.session import NEW_SESSION, provide_session
|
|
28
|
+
from airflow.utils.strings import to_boolean
|
|
29
|
+
|
|
30
|
+
if TYPE_CHECKING:
|
|
31
|
+
from sqlalchemy.orm import Session
|
|
32
|
+
|
|
33
|
+
log = logging.getLogger(__name__)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@provide_session
|
|
37
|
+
def cleanup_dag_permissions(dag_id: str, session: Session = NEW_SESSION) -> None:
|
|
38
|
+
"""
|
|
39
|
+
Clean up DAG-specific permissions from Flask-AppBuilder tables.
|
|
40
|
+
|
|
41
|
+
When a DAG is deleted, we need to clean up the corresponding permissions
|
|
42
|
+
to prevent orphaned entries in the ab_view_menu table.
|
|
43
|
+
|
|
44
|
+
This addresses issue #50905: Deleted DAGs not removed from ab_view_menu table
|
|
45
|
+
and show up in permissions.
|
|
46
|
+
|
|
47
|
+
:param dag_id: Specific DAG ID to clean up.
|
|
48
|
+
:param session: Database session.
|
|
49
|
+
"""
|
|
50
|
+
from sqlalchemy import delete, select
|
|
51
|
+
|
|
52
|
+
from airflow.providers.fab.auth_manager.models import Permission, Resource, assoc_permission_role
|
|
53
|
+
from airflow.security.permissions import RESOURCE_DAG_PREFIX, RESOURCE_DAG_RUN, RESOURCE_DETAILS_MAP
|
|
54
|
+
|
|
55
|
+
# Clean up specific DAG permissions
|
|
56
|
+
dag_resources = session.scalars(
|
|
57
|
+
select(Resource).filter(
|
|
58
|
+
Resource.name.in_(
|
|
59
|
+
[
|
|
60
|
+
f"{RESOURCE_DAG_PREFIX}{dag_id}", # DAG:dag_id
|
|
61
|
+
f"{RESOURCE_DETAILS_MAP[RESOURCE_DAG_RUN]['prefix']}{dag_id}", # DAG_RUN:dag_id
|
|
62
|
+
]
|
|
63
|
+
)
|
|
64
|
+
)
|
|
65
|
+
).all()
|
|
66
|
+
log.info("Cleaning up DAG-specific permissions for dag_id: %s", dag_id)
|
|
67
|
+
|
|
68
|
+
if not dag_resources:
|
|
69
|
+
return
|
|
70
|
+
|
|
71
|
+
dag_resource_ids = [resource.id for resource in dag_resources]
|
|
72
|
+
|
|
73
|
+
# Find all permissions associated with these resources
|
|
74
|
+
dag_permissions = session.scalars(
|
|
75
|
+
select(Permission).filter(Permission.resource_id.in_(dag_resource_ids))
|
|
76
|
+
).all()
|
|
77
|
+
|
|
78
|
+
if not dag_permissions:
|
|
79
|
+
# Delete resources even if no permissions exist
|
|
80
|
+
session.execute(delete(Resource).where(Resource.id.in_(dag_resource_ids)))
|
|
81
|
+
return
|
|
82
|
+
|
|
83
|
+
dag_permission_ids = [permission.id for permission in dag_permissions]
|
|
84
|
+
|
|
85
|
+
# Delete permission-role associations first (foreign key constraint)
|
|
86
|
+
session.execute(
|
|
87
|
+
delete(assoc_permission_role).where(
|
|
88
|
+
assoc_permission_role.c.permission_view_id.in_(dag_permission_ids)
|
|
89
|
+
)
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
# Delete permissions
|
|
93
|
+
session.execute(delete(Permission).where(Permission.resource_id.in_(dag_resource_ids)))
|
|
94
|
+
|
|
95
|
+
# Delete resources (ab_view_menu entries)
|
|
96
|
+
session.execute(delete(Resource).where(Resource.id.in_(dag_resource_ids)))
|
|
97
|
+
|
|
98
|
+
log.info("Cleaned up %d DAG-specific permissions", len(dag_permissions))
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
@cli_utils.action_cli
|
|
102
|
+
@providers_configuration_loaded
|
|
103
|
+
def permissions_cleanup(args):
|
|
104
|
+
"""Clean up DAG permissions in Flask-AppBuilder tables."""
|
|
105
|
+
from sqlalchemy import select
|
|
106
|
+
|
|
107
|
+
from airflow.models import DagModel
|
|
108
|
+
from airflow.providers.fab.auth_manager.cli_commands.utils import get_application_builder
|
|
109
|
+
from airflow.providers.fab.auth_manager.models import Resource
|
|
110
|
+
from airflow.security.permissions import (
|
|
111
|
+
RESOURCE_DAG_PREFIX,
|
|
112
|
+
RESOURCE_DAG_RUN,
|
|
113
|
+
RESOURCE_DETAILS_MAP,
|
|
114
|
+
)
|
|
115
|
+
from airflow.utils.session import create_session
|
|
116
|
+
|
|
117
|
+
with get_application_builder() as _:
|
|
118
|
+
with create_session() as session:
|
|
119
|
+
# Get all existing DAG IDs from DagModel
|
|
120
|
+
existing_dag_ids = {dag.dag_id for dag in session.scalars(select(DagModel)).all()}
|
|
121
|
+
|
|
122
|
+
# Get all DAG-related resources from FAB tables
|
|
123
|
+
dag_resources = session.scalars(
|
|
124
|
+
select(Resource).filter(
|
|
125
|
+
Resource.name.like(f"{RESOURCE_DAG_PREFIX}%")
|
|
126
|
+
| Resource.name.like(f"{RESOURCE_DETAILS_MAP[RESOURCE_DAG_RUN]['prefix']}%")
|
|
127
|
+
)
|
|
128
|
+
).all()
|
|
129
|
+
|
|
130
|
+
orphaned_resources = []
|
|
131
|
+
orphaned_dag_ids = set()
|
|
132
|
+
|
|
133
|
+
for resource in dag_resources:
|
|
134
|
+
# Extract DAG ID from resource name
|
|
135
|
+
dag_id = None
|
|
136
|
+
if resource.name.startswith(RESOURCE_DAG_PREFIX):
|
|
137
|
+
dag_id = resource.name[len(RESOURCE_DAG_PREFIX) :]
|
|
138
|
+
elif resource.name.startswith(RESOURCE_DETAILS_MAP[RESOURCE_DAG_RUN]["prefix"]):
|
|
139
|
+
dag_id = resource.name[len(RESOURCE_DETAILS_MAP[RESOURCE_DAG_RUN]["prefix"]) :]
|
|
140
|
+
|
|
141
|
+
# Check if this DAG ID still exists
|
|
142
|
+
if dag_id and dag_id not in existing_dag_ids:
|
|
143
|
+
orphaned_resources.append(resource)
|
|
144
|
+
orphaned_dag_ids.add(dag_id)
|
|
145
|
+
|
|
146
|
+
# Filter by specific DAG ID if provided
|
|
147
|
+
if args.dag_id:
|
|
148
|
+
if args.dag_id in orphaned_dag_ids:
|
|
149
|
+
orphaned_dag_ids = {args.dag_id}
|
|
150
|
+
print(f"Filtering to clean up permissions for DAG: {args.dag_id}")
|
|
151
|
+
else:
|
|
152
|
+
print(
|
|
153
|
+
f"DAG '{args.dag_id}' not found in orphaned permissions or still exists in database."
|
|
154
|
+
)
|
|
155
|
+
return
|
|
156
|
+
|
|
157
|
+
if not orphaned_dag_ids:
|
|
158
|
+
if args.dag_id:
|
|
159
|
+
print(f"No orphaned permissions found for DAG: {args.dag_id}")
|
|
160
|
+
else:
|
|
161
|
+
print("No orphaned DAG permissions found.")
|
|
162
|
+
return
|
|
163
|
+
|
|
164
|
+
print(f"Found orphaned permissions for {len(orphaned_dag_ids)} deleted DAG(s):")
|
|
165
|
+
for dag_id in sorted(orphaned_dag_ids):
|
|
166
|
+
print(f" - {dag_id}")
|
|
167
|
+
|
|
168
|
+
if args.dry_run:
|
|
169
|
+
print("\nDry run mode: No changes will be made.")
|
|
170
|
+
print(f"Would clean up permissions for {len(orphaned_dag_ids)} orphaned DAG(s).")
|
|
171
|
+
return
|
|
172
|
+
|
|
173
|
+
# Perform cleanup if not in dry run mode
|
|
174
|
+
if not args.yes:
|
|
175
|
+
action = (
|
|
176
|
+
f"clean up permissions for {len(orphaned_dag_ids)} DAG(s)"
|
|
177
|
+
if not args.dag_id
|
|
178
|
+
else f"clean up permissions for DAG '{args.dag_id}'"
|
|
179
|
+
)
|
|
180
|
+
confirm = input(f"\nDo you want to {action}? [y/N]: ")
|
|
181
|
+
if not to_boolean(confirm):
|
|
182
|
+
print("Cleanup cancelled.")
|
|
183
|
+
return
|
|
184
|
+
|
|
185
|
+
# Perform the actual cleanup
|
|
186
|
+
cleanup_count = 0
|
|
187
|
+
for dag_id in orphaned_dag_ids:
|
|
188
|
+
try:
|
|
189
|
+
cleanup_dag_permissions(dag_id, session)
|
|
190
|
+
cleanup_count += 1
|
|
191
|
+
if args.verbose:
|
|
192
|
+
print(f"Cleaned up permissions for DAG: {dag_id}")
|
|
193
|
+
except Exception as e:
|
|
194
|
+
print(f"Failed to clean up permissions for DAG {dag_id}: {e}")
|
|
195
|
+
|
|
196
|
+
print(f"\nSuccessfully cleaned up permissions for {cleanup_count} DAG(s).")
|
|
@@ -60,6 +60,7 @@ from airflow.exceptions import AirflowConfigException, AirflowException
|
|
|
60
60
|
from airflow.models import DagModel
|
|
61
61
|
from airflow.providers.fab.auth_manager.cli_commands.definition import (
|
|
62
62
|
DB_COMMANDS,
|
|
63
|
+
PERMISSIONS_CLEANUP_COMMAND,
|
|
63
64
|
ROLES_COMMANDS,
|
|
64
65
|
SYNC_PERM_COMMAND,
|
|
65
66
|
USERS_COMMANDS,
|
|
@@ -211,6 +212,7 @@ class FabAuthManager(BaseAuthManager[User]):
|
|
|
211
212
|
subcommands=ROLES_COMMANDS,
|
|
212
213
|
),
|
|
213
214
|
SYNC_PERM_COMMAND, # not in a command group
|
|
215
|
+
PERMISSIONS_CLEANUP_COMMAND, # single command for permissions cleanup
|
|
214
216
|
]
|
|
215
217
|
# If Airflow version is 3.0.0 or higher, add the fab-db command group
|
|
216
218
|
if packaging.version.parse(
|
|
@@ -112,6 +112,7 @@ if TYPE_CHECKING:
|
|
|
112
112
|
RESOURCE_ASSET_ALIAS,
|
|
113
113
|
)
|
|
114
114
|
from airflow.sdk import DAG
|
|
115
|
+
from airflow.serialization.serialized_objects import SerializedDAG
|
|
115
116
|
else:
|
|
116
117
|
from airflow.providers.common.compat.security.permissions import (
|
|
117
118
|
RESOURCE_ASSET,
|
|
@@ -122,13 +123,13 @@ if AIRFLOW_V_3_1_PLUS:
|
|
|
122
123
|
from airflow.models.dagbag import DBDagBag
|
|
123
124
|
from airflow.utils.session import create_session
|
|
124
125
|
|
|
125
|
-
def _iter_dags() -> Iterable[DAG]:
|
|
126
|
+
def _iter_dags() -> Iterable[DAG | SerializedDAG]:
|
|
126
127
|
with create_session() as session:
|
|
127
128
|
yield from DBDagBag().iter_all_latest_version_dags(session=session)
|
|
128
129
|
else:
|
|
129
130
|
from airflow.models.dagbag import DagBag
|
|
130
131
|
|
|
131
|
-
def _iter_dags() -> Iterable[DAG]:
|
|
132
|
+
def _iter_dags() -> Iterable[DAG | SerializedDAG]:
|
|
132
133
|
dagbag = DagBag(read_dags_from_db=True) # type: ignore[call-arg]
|
|
133
134
|
dagbag.collect_dags_from_db() # type: ignore[attr-defined]
|
|
134
135
|
return dagbag.dags.values()
|