apache-airflow-providers-fab 2.4.4rc1__tar.gz → 3.0.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.
Potentially problematic release.
This version of apache-airflow-providers-fab might be problematic. Click here for more details.
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/PKG-INFO +16 -10
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/README.rst +8 -5
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/changelog.rst +27 -4
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/index.rst +8 -5
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/provider.yaml +2 -1
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/pyproject.toml +8 -5
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/__init__.py +1 -1
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py +2 -2
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py +4 -4
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/login.py +7 -4
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/user_command.py +1 -2
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/utils.py +7 -3
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/fab_auth_manager.py +15 -11
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/models/__init__.py +179 -122
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/models/db.py +11 -6
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/security_manager/override.py +239 -213
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/views/user.py +11 -5
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/migrations/versions/0001_1_4_0_create_ab_tables_if_missing.py +1 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/app.py +3 -4
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/extensions/init_appbuilder.py +26 -39
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/extensions/init_session.py +2 -2
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/security_appless.py +6 -1
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/security_manager.py +4 -14
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/session.py +26 -3
- apache_airflow_providers_fab-3.0.0rc1/src/airflow/providers/fab/www/utils.py +86 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api/auth/backend/test_basic_auth.py +1 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api/auth/backend/test_session.py +1 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api_endpoints/test_role_and_permission_endpoint.py +24 -29
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api_endpoints/test_user_endpoint.py +28 -19
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api_fastapi/routes/test_login.py +3 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api_fastapi/services/test_login.py +1 -2
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/cli_commands/test_role_command.py +1 -1
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/cli_commands/test_user_command.py +1 -1
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/cli_commands/test_utils.py +2 -1
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/models/test_db.py +3 -1
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/schemas/test_role_and_permission_schema.py +42 -44
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/schemas/test_user_schema.py +16 -9
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/test_fab_auth_manager.py +20 -19
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/test_security.py +9 -23
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/views/test_permissions.py +14 -13
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/views/test_roles_list.py +11 -10
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/views/test_user.py +11 -10
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/views/test_user_edit.py +11 -10
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/views/test_user_stats.py +11 -10
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/www/views/test_views_custom_user_views.py +102 -117
- apache_airflow_providers_fab-3.0.0rc1/www-hash.txt +1 -0
- apache_airflow_providers_fab-2.4.4rc1/src/airflow/providers/fab/www/utils.py +0 -293
- apache_airflow_providers_fab-2.4.4rc1/www-hash.txt +0 -1
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/3rd-party-licenses/LICENSES-ui.txt +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/NOTICE +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/api-ref/fab-public-api-ref.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/api-ref/fab-token-api-ref.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/auth-manager/access-control.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/auth-manager/api-authentication.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/auth-manager/configuring-flask-app.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/auth-manager/index.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/auth-manager/security.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/auth-manager/sso.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/auth-manager/token.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/auth-manager/webserver-authentication.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/cli-ref.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/commits.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/conf.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/configurations-ref.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/img/add-role.png +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/img/diagram_fab_auth_manager_airflow_architecture.md5sum +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/img/diagram_fab_auth_manager_airflow_architecture.png +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/img/diagram_fab_auth_manager_airflow_architecture.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/img/new-role.png +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/migrations-ref.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/security.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/upgrading.rst +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/3rd-party-licenses/LICENSES-ui.txt +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/LICENSE +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/alembic.ini +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api/auth/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api/auth/backend/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api/auth/backend/session.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api_endpoints/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/login.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/v2-fab-auth-manager-generated.yaml +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/api_fastapi/services/login.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/db_command.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/definition.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/permissions_command.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/role_command.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/cli_commands/sync_perm_command.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/models/anonymous_user.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/openapi/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/openapi/v1-flask-api.yaml +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/schemas/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/schemas/role_and_permission_schema.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/schemas/user_schema.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/security_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/security_manager/constants.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/views/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/views/permissions.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/views/roles_list.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/views/user_edit.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/auth_manager/views/user_stats.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/get_provider_info.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/migrations/README +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/migrations/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/migrations/env.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/migrations/script.py.mako +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/migrations/versions/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/version_compat.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/airflow_flask_app.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/api_connexion/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/api_connexion/exceptions.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/api_connexion/parameters.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/api_connexion/security.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/api_connexion/types.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/auth.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/constants.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/extensions/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/extensions/init_jinja_globals.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/extensions/init_manifest_files.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/extensions/init_security.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/extensions/init_views.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/extensions/init_wsgi_middlewares.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/package-lock.json +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/package.json +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/security/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/security/permissions.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/css/bootstrap-theme.css +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/css/flash.css +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/css/loading-dots.css +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/css/main.css +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/css/material-icons.css +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/48f0ea180c40270a5b05.png +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/649c0b07771e68fafdeb.png +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/743.fc7a7c6ef9d09365976e.js +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/743.fc7a7c6ef9d09365976e.js.LICENSE.txt +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ff5a35f322070b094aa2.css +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ff5a35f322070b094aa2.js +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/f7490d556a6c42e49ba4.png +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/flash.5583a9e0cf11f2be93da.css +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/flash.5583a9e0cf11f2be93da.js +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.css +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js.LICENSE.txt +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/loadingDots.2e5f555f0753107b0300.css +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/loadingDots.2e5f555f0753107b0300.js +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.css +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.js +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.js.LICENSE.txt +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/manifest.json +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/materialIcons.3e67dd6fbfcc4f3b5105.css +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/materialIcons.3e67dd6fbfcc4f3b5105.js +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/moment.9baee5ec3d7639a10897.js +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/oss-licenses.json +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/dist/runtime.ad800fc1845ad5c6ddeb.js +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/js/datetime_utils.js +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/js/main.js +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/pin_100.png +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/pin_32.png +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/sort_asc.png +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/sort_both.png +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/static/sort_desc.png +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/templates/airflow/_messages.html +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/templates/airflow/error.html +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/templates/airflow/main.html +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/templates/airflow/traceback.html +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/templates/appbuilder/flash.html +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/templates/appbuilder/index.html +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/templates/appbuilder/navbar.html +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/templates/appbuilder/navbar_menu.html +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/templates/appbuilder/navbar_right.html +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/views.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/src/airflow/providers/fab/www/webpack.config.js +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/conftest.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api/auth/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api/auth/backend/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api/auth/backend/test_kerberos_auth.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api_endpoints/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api_endpoints/api_connexion_utils.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api_endpoints/remote_user_api_auth_backend.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api_endpoints/test_auth.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api_fastapi/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api_fastapi/conftest.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/cli_commands/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/cli_commands/test_db_command.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/cli_commands/test_definition.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/cli_commands/test_permissions_command.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/cli_commands/test_sync_perm_command.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/conftest.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/models/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/models/test_anonymous_user.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/models/test_user_model.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/schemas/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/security_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/security_manager/test_constants.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/security_manager/test_override.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/test_models.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/auth_manager/views/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/db_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/db_manager/test_fab_db_manager.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/decorators.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/plugins/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/plugins/conftest.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/plugins/test_plugin.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/utils.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/www/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/www/test_auth.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/www/test_utils.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/www/views/__init__.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/www/views/conftest.py +0 -0
- {apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/tests/unit/fab/www/views/test_connection_form_fields.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-fab
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0.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>
|
|
@@ -25,9 +25,12 @@ Requires-Dist: apache-airflow>=3.0.2rc1
|
|
|
25
25
|
Requires-Dist: apache-airflow-providers-common-compat>=1.2.1rc1
|
|
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
|
-
Requires-Dist: flask-appbuilder==
|
|
28
|
+
Requires-Dist: flask-appbuilder==5.0.0; python_version < '3.13'
|
|
29
29
|
Requires-Dist: flask-login>=0.6.2; python_version < '3.13'
|
|
30
|
-
Requires-Dist: flask-session>=0.
|
|
30
|
+
Requires-Dist: flask-session>=0.8.0; python_version < '3.13'
|
|
31
|
+
Requires-Dist: msgpack>=1.0.0; python_version < '3.13'
|
|
32
|
+
Requires-Dist: flask-sqlalchemy>=3.0.5; python_version < '3.13'
|
|
33
|
+
Requires-Dist: sqlalchemy<2; python_version < '3.13'
|
|
31
34
|
Requires-Dist: flask-wtf>=1.1.0; python_version < '3.13'
|
|
32
35
|
Requires-Dist: connexion[flask]>=2.14.2,<3.0; python_version < '3.13'
|
|
33
36
|
Requires-Dist: jmespath>=0.7.0; python_version < '3.13'
|
|
@@ -36,8 +39,8 @@ Requires-Dist: wtforms>=3.0,<4; python_version < '3.13'
|
|
|
36
39
|
Requires-Dist: flask_limiter>3,<4,!=3.13
|
|
37
40
|
Requires-Dist: kerberos>=1.3.0 ; extra == "kerberos" and ( python_version < '3.13')
|
|
38
41
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
39
|
-
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/
|
|
40
|
-
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/
|
|
42
|
+
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/3.0.0/changelog.html
|
|
43
|
+
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/3.0.0
|
|
41
44
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
|
42
45
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
43
46
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
@@ -69,7 +72,7 @@ Provides-Extra: kerberos
|
|
|
69
72
|
|
|
70
73
|
Package ``apache-airflow-providers-fab``
|
|
71
74
|
|
|
72
|
-
Release: ``
|
|
75
|
+
Release: ``3.0.0``
|
|
73
76
|
|
|
74
77
|
|
|
75
78
|
`Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
|
|
@@ -82,7 +85,7 @@ This is a provider package for ``fab`` provider. All classes for this provider p
|
|
|
82
85
|
are in ``airflow.providers.fab`` python package.
|
|
83
86
|
|
|
84
87
|
You can find package information and changelog for the provider
|
|
85
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/
|
|
88
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.0.0/>`_.
|
|
86
89
|
|
|
87
90
|
Installation
|
|
88
91
|
------------
|
|
@@ -103,9 +106,12 @@ PIP package Version required
|
|
|
103
106
|
``apache-airflow-providers-common-compat`` ``>=1.2.1``
|
|
104
107
|
``blinker`` ``>=1.6.2; python_version < "3.13"``
|
|
105
108
|
``flask`` ``>=2.2.1,<2.3; python_version < "3.13"``
|
|
106
|
-
``flask-appbuilder`` ``==
|
|
109
|
+
``flask-appbuilder`` ``==5.0.0; python_version < "3.13"``
|
|
107
110
|
``flask-login`` ``>=0.6.2; python_version < "3.13"``
|
|
108
|
-
``flask-session`` ``>=0.
|
|
111
|
+
``flask-session`` ``>=0.8.0; python_version < "3.13"``
|
|
112
|
+
``msgpack`` ``>=1.0.0; python_version < "3.13"``
|
|
113
|
+
``flask-sqlalchemy`` ``>=3.0.5; python_version < "3.13"``
|
|
114
|
+
``sqlalchemy`` ``<2; python_version < "3.13"``
|
|
109
115
|
``flask-wtf`` ``>=1.1.0; python_version < "3.13"``
|
|
110
116
|
``connexion[flask]`` ``>=2.14.2,<3.0; python_version < "3.13"``
|
|
111
117
|
``jmespath`` ``>=0.7.0; python_version < "3.13"``
|
|
@@ -143,5 +149,5 @@ Extra Dependencies
|
|
|
143
149
|
============ ============================================
|
|
144
150
|
|
|
145
151
|
The changelog for the provider package can be found in the
|
|
146
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/
|
|
152
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.0.0/changelog.html>`_.
|
|
147
153
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-fab``
|
|
25
25
|
|
|
26
|
-
Release: ``
|
|
26
|
+
Release: ``3.0.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/
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.0.0/>`_.
|
|
40
40
|
|
|
41
41
|
Installation
|
|
42
42
|
------------
|
|
@@ -57,9 +57,12 @@ PIP package Version required
|
|
|
57
57
|
``apache-airflow-providers-common-compat`` ``>=1.2.1``
|
|
58
58
|
``blinker`` ``>=1.6.2; python_version < "3.13"``
|
|
59
59
|
``flask`` ``>=2.2.1,<2.3; python_version < "3.13"``
|
|
60
|
-
``flask-appbuilder`` ``==
|
|
60
|
+
``flask-appbuilder`` ``==5.0.0; python_version < "3.13"``
|
|
61
61
|
``flask-login`` ``>=0.6.2; python_version < "3.13"``
|
|
62
|
-
``flask-session`` ``>=0.
|
|
62
|
+
``flask-session`` ``>=0.8.0; python_version < "3.13"``
|
|
63
|
+
``msgpack`` ``>=1.0.0; python_version < "3.13"``
|
|
64
|
+
``flask-sqlalchemy`` ``>=3.0.5; python_version < "3.13"``
|
|
65
|
+
``sqlalchemy`` ``<2; python_version < "3.13"``
|
|
63
66
|
``flask-wtf`` ``>=1.1.0; python_version < "3.13"``
|
|
64
67
|
``connexion[flask]`` ``>=2.14.2,<3.0; python_version < "3.13"``
|
|
65
68
|
``jmespath`` ``>=0.7.0; python_version < "3.13"``
|
|
@@ -97,4 +100,4 @@ Extra Dependencies
|
|
|
97
100
|
============ ============================================
|
|
98
101
|
|
|
99
102
|
The changelog for the provider package can be found in the
|
|
100
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/
|
|
103
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.0.0/changelog.html>`_.
|
{apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/changelog.rst
RENAMED
|
@@ -20,6 +20,33 @@
|
|
|
20
20
|
Changelog
|
|
21
21
|
---------
|
|
22
22
|
|
|
23
|
+
3.0.0
|
|
24
|
+
.....
|
|
25
|
+
|
|
26
|
+
Breaking changes
|
|
27
|
+
~~~~~~~~~~~~~~~~
|
|
28
|
+
|
|
29
|
+
Migrated to Flask-appbuilder 5 which removed the authentication type ``AUTH_OID``.
|
|
30
|
+
Using the authentication type ``AUTH_OID`` in fab provider is no longer possible.
|
|
31
|
+
Applications using ``AUTH_TYPE = AUTH_OID`` must migrate to ``AUTH_OAUTH``.
|
|
32
|
+
|
|
33
|
+
* ``Upgrade flask-appbuilder to version 5 (#50960)``
|
|
34
|
+
|
|
35
|
+
Features
|
|
36
|
+
~~~~~~~~
|
|
37
|
+
|
|
38
|
+
* ``Support nested groups resolution for LDAP authentication in Fab auth manager``
|
|
39
|
+
|
|
40
|
+
Bug Fixes
|
|
41
|
+
~~~~~~~~~
|
|
42
|
+
|
|
43
|
+
* ``Add 'if_not_exists=True' to FAB migration (#56100)``
|
|
44
|
+
|
|
45
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
46
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
47
|
+
* ``Fix static check error resulting from not rebased change in FAB5 (#56178)``
|
|
48
|
+
* ``Remove placeholder Release Date in changelog and index files (#56056)``
|
|
49
|
+
|
|
23
50
|
2.4.4
|
|
24
51
|
.....
|
|
25
52
|
|
|
@@ -47,8 +74,6 @@ Doc-only
|
|
|
47
74
|
.....
|
|
48
75
|
|
|
49
76
|
|
|
50
|
-
Release Date: ``|PypiReleaseDate|``
|
|
51
|
-
|
|
52
77
|
Bug Fixes
|
|
53
78
|
~~~~~~~~~
|
|
54
79
|
|
|
@@ -69,8 +94,6 @@ Misc
|
|
|
69
94
|
.....
|
|
70
95
|
|
|
71
96
|
|
|
72
|
-
Release Date: ``|PypiReleaseDate|``
|
|
73
|
-
|
|
74
97
|
Bug Fixes
|
|
75
98
|
~~~~~~~~~
|
|
76
99
|
|
{apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/docs/index.rst
RENAMED
|
@@ -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:
|
|
87
|
+
Release: 3.0.0
|
|
88
88
|
|
|
89
89
|
Provider package
|
|
90
90
|
----------------
|
|
@@ -111,9 +111,12 @@ PIP package Version required
|
|
|
111
111
|
``apache-airflow-providers-common-compat`` ``>=1.2.1``
|
|
112
112
|
``blinker`` ``>=1.6.2; python_version < "3.13"``
|
|
113
113
|
``flask`` ``>=2.2.1,<2.3; python_version < "3.13"``
|
|
114
|
-
``flask-appbuilder`` ``==
|
|
114
|
+
``flask-appbuilder`` ``==5.0.0; python_version < "3.13"``
|
|
115
115
|
``flask-login`` ``>=0.6.2; python_version < "3.13"``
|
|
116
|
-
``flask-session`` ``>=0.
|
|
116
|
+
``flask-session`` ``>=0.8.0; python_version < "3.13"``
|
|
117
|
+
``msgpack`` ``>=1.0.0; python_version < "3.13"``
|
|
118
|
+
``flask-sqlalchemy`` ``>=3.0.5; python_version < "3.13"``
|
|
119
|
+
``sqlalchemy`` ``<2; python_version < "3.13"``
|
|
117
120
|
``flask-wtf`` ``>=1.1.0; python_version < "3.13"``
|
|
118
121
|
``connexion[flask]`` ``>=2.14.2,<3.0; python_version < "3.13"``
|
|
119
122
|
``jmespath`` ``>=0.7.0; python_version < "3.13"``
|
|
@@ -147,5 +150,5 @@ Downloading official packages
|
|
|
147
150
|
You can download officially released packages and verify their checksums and signatures from the
|
|
148
151
|
`Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
|
|
149
152
|
|
|
150
|
-
* `The apache-airflow-providers-fab
|
|
151
|
-
* `The apache-airflow-providers-fab
|
|
153
|
+
* `The apache-airflow-providers-fab 3.0.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-3.0.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-3.0.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-3.0.0.tar.gz.sha512>`__)
|
|
154
|
+
* `The apache-airflow-providers-fab 3.0.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-3.0.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-3.0.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_fab-3.0.0-py3-none-any.whl.sha512>`__)
|
{apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/provider.yaml
RENAMED
|
@@ -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: 1759212936
|
|
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
|
+
- 3.0.0
|
|
38
39
|
- 2.4.4
|
|
39
40
|
- 2.4.3
|
|
40
41
|
- 2.4.2
|
{apache_airflow_providers_fab-2.4.4rc1 → apache_airflow_providers_fab-3.0.0rc1}/pyproject.toml
RENAMED
|
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
|
|
|
25
25
|
|
|
26
26
|
[project]
|
|
27
27
|
name = "apache-airflow-providers-fab"
|
|
28
|
-
version = "
|
|
28
|
+
version = "3.0.0rc1"
|
|
29
29
|
description = "Provider package apache-airflow-providers-fab for Apache Airflow"
|
|
30
30
|
readme = "README.rst"
|
|
31
31
|
authors = [
|
|
@@ -70,11 +70,14 @@ dependencies = [
|
|
|
70
70
|
# Every time we update FAB version here, please make sure that you review the classes and models in
|
|
71
71
|
# `airflow/providers/fab/auth_manager/security_manager/override.py` with their upstream counterparts.
|
|
72
72
|
# In particular, make sure any breaking changes, for example any new methods, are accounted for.
|
|
73
|
-
"flask-appbuilder==
|
|
73
|
+
"flask-appbuilder==5.0.0; python_version < '3.13'",
|
|
74
74
|
"flask-login>=0.6.2; python_version < '3.13'",
|
|
75
75
|
# Flask-Session 0.6 add new arguments into the SqlAlchemySessionInterface constructor as well as
|
|
76
76
|
# all parameters now are mandatory which make AirflowDatabaseSessionInterface incompatible with this version.
|
|
77
|
-
"flask-session>=0.
|
|
77
|
+
"flask-session>=0.8.0; python_version < '3.13'",
|
|
78
|
+
"msgpack>=1.0.0; python_version < '3.13'",
|
|
79
|
+
"flask-sqlalchemy>=3.0.5; python_version < '3.13'",
|
|
80
|
+
"sqlalchemy<2; python_version < '3.13'",
|
|
78
81
|
"flask-wtf>=1.1.0; python_version < '3.13'",
|
|
79
82
|
"connexion[flask]>=2.14.2,<3.0; python_version < '3.13'",
|
|
80
83
|
"jmespath>=0.7.0; python_version < '3.13'",
|
|
@@ -130,8 +133,8 @@ apache-airflow-providers-common-sql = {workspace = true}
|
|
|
130
133
|
apache-airflow-providers-standard = {workspace = true}
|
|
131
134
|
|
|
132
135
|
[project.urls]
|
|
133
|
-
"Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/
|
|
134
|
-
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/
|
|
136
|
+
"Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/3.0.0"
|
|
137
|
+
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-fab/3.0.0/changelog.html"
|
|
135
138
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
136
139
|
"Source Code" = "https://github.com/apache/airflow"
|
|
137
140
|
"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__ = "
|
|
32
|
+
__version__ = "3.0.0"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
35
|
"3.0.2"
|
|
@@ -72,7 +72,7 @@ def get_role(*, role_name: str) -> APIResponse:
|
|
|
72
72
|
def get_roles(*, order_by: str = "name", limit: int, offset: int | None = None) -> APIResponse:
|
|
73
73
|
"""Get roles."""
|
|
74
74
|
security_manager = cast("FabAuthManager", get_auth_manager()).security_manager
|
|
75
|
-
session = security_manager.
|
|
75
|
+
session = security_manager.session
|
|
76
76
|
total_entries = session.scalars(select(func.count(Role.id))).one()
|
|
77
77
|
direction = desc if order_by.startswith("-") else asc
|
|
78
78
|
to_replace = {"role_id": "id"}
|
|
@@ -99,7 +99,7 @@ def get_roles(*, order_by: str = "name", limit: int, offset: int | None = None)
|
|
|
99
99
|
def get_permissions(*, limit: int, offset: int | None = None) -> APIResponse:
|
|
100
100
|
"""Get permissions."""
|
|
101
101
|
security_manager = cast("FabAuthManager", get_auth_manager()).security_manager
|
|
102
|
-
session = security_manager.
|
|
102
|
+
session = security_manager.session
|
|
103
103
|
total_entries = session.scalars(select(func.count(Action.id))).one()
|
|
104
104
|
query = select(Action)
|
|
105
105
|
actions = session.scalars(query.offset(offset).limit(limit)).all()
|
|
@@ -56,10 +56,10 @@ def get_user(*, username: str) -> APIResponse:
|
|
|
56
56
|
|
|
57
57
|
@requires_access_custom_view("GET", permissions.RESOURCE_USER)
|
|
58
58
|
@format_parameters({"limit": check_limit})
|
|
59
|
-
def get_users(*, limit: int, order_by: str = "id", offset:
|
|
59
|
+
def get_users(*, limit: int, order_by: str = "id", offset: int | None = None) -> APIResponse:
|
|
60
60
|
"""Get users."""
|
|
61
61
|
security_manager = cast("FabAuthManager", get_auth_manager()).security_manager
|
|
62
|
-
session = security_manager.
|
|
62
|
+
session = security_manager.session
|
|
63
63
|
total_entries = session.execute(select(func.count(User.id))).scalar()
|
|
64
64
|
direction = desc if order_by.startswith("-") else asc
|
|
65
65
|
to_replace = {"user_id": "id"}
|
|
@@ -212,7 +212,7 @@ def delete_user(*, username: str) -> APIResponse:
|
|
|
212
212
|
raise NotFound(title="User not found", detail=detail)
|
|
213
213
|
|
|
214
214
|
user.roles = [] # Clear foreign keys on this user first.
|
|
215
|
-
security_manager.
|
|
216
|
-
security_manager.
|
|
215
|
+
security_manager.session.delete(user)
|
|
216
|
+
security_manager.session.commit()
|
|
217
217
|
|
|
218
218
|
return NoContent, HTTPStatus.NO_CONTENT
|
|
@@ -23,6 +23,7 @@ from airflow.api_fastapi.core_api.openapi.exceptions import create_openapi_http_
|
|
|
23
23
|
from airflow.configuration import conf
|
|
24
24
|
from airflow.providers.fab.auth_manager.api_fastapi.datamodels.login import LoginBody, LoginResponse
|
|
25
25
|
from airflow.providers.fab.auth_manager.api_fastapi.services.login import FABAuthManagerLogin
|
|
26
|
+
from airflow.providers.fab.auth_manager.cli_commands.utils import get_application_builder
|
|
26
27
|
|
|
27
28
|
login_router = AirflowRouter(tags=["FabAuthManager"])
|
|
28
29
|
|
|
@@ -35,7 +36,8 @@ login_router = AirflowRouter(tags=["FabAuthManager"])
|
|
|
35
36
|
)
|
|
36
37
|
def create_token(body: LoginBody) -> LoginResponse:
|
|
37
38
|
"""Generate a new API token."""
|
|
38
|
-
|
|
39
|
+
with get_application_builder():
|
|
40
|
+
return FABAuthManagerLogin.create_token(body=body)
|
|
39
41
|
|
|
40
42
|
|
|
41
43
|
@login_router.post(
|
|
@@ -46,6 +48,7 @@ def create_token(body: LoginBody) -> LoginResponse:
|
|
|
46
48
|
)
|
|
47
49
|
def create_token_cli(body: LoginBody) -> LoginResponse:
|
|
48
50
|
"""Generate a new CLI API token."""
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
with get_application_builder():
|
|
52
|
+
return FABAuthManagerLogin.create_token(
|
|
53
|
+
body=body, expiration_time_in_seconds=conf.getint("api_auth", "jwt_cli_expiration_time")
|
|
54
|
+
)
|
|
@@ -144,9 +144,8 @@ def users_delete(args):
|
|
|
144
144
|
@providers_configuration_loaded
|
|
145
145
|
def users_manage_role(args, remove=False):
|
|
146
146
|
"""Delete or appends user roles."""
|
|
147
|
-
user = _find_user(args)
|
|
148
|
-
|
|
149
147
|
with get_application_builder() as appbuilder:
|
|
148
|
+
user = _find_user(args)
|
|
150
149
|
role = appbuilder.sm.find_role(args.role)
|
|
151
150
|
if not role:
|
|
152
151
|
valid_roles = appbuilder.sm.get_all_roles()
|
|
@@ -25,6 +25,7 @@ from os.path import isabs
|
|
|
25
25
|
from typing import TYPE_CHECKING
|
|
26
26
|
|
|
27
27
|
from flask import Flask
|
|
28
|
+
from flask_sqlalchemy import SQLAlchemy
|
|
28
29
|
from sqlalchemy.engine import make_url
|
|
29
30
|
|
|
30
31
|
import airflow
|
|
@@ -39,11 +40,11 @@ if TYPE_CHECKING:
|
|
|
39
40
|
|
|
40
41
|
|
|
41
42
|
@cache
|
|
42
|
-
def _return_appbuilder(app: Flask) -> AirflowAppBuilder:
|
|
43
|
+
def _return_appbuilder(app: Flask, db) -> AirflowAppBuilder:
|
|
43
44
|
"""Return an appbuilder instance for the given app."""
|
|
44
45
|
init_appbuilder(app, enable_plugins=False)
|
|
45
46
|
init_plugins(app)
|
|
46
|
-
init_airflow_session_interface(app)
|
|
47
|
+
init_airflow_session_interface(app, db)
|
|
47
48
|
return app.appbuilder # type: ignore[attr-defined]
|
|
48
49
|
|
|
49
50
|
|
|
@@ -63,4 +64,7 @@ def get_application_builder() -> Generator[AirflowAppBuilder, None, None]:
|
|
|
63
64
|
"Please use absolute path such as `sqlite:////tmp/airflow.db`."
|
|
64
65
|
)
|
|
65
66
|
flask_app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
|
|
66
|
-
|
|
67
|
+
|
|
68
|
+
db = SQLAlchemy(flask_app)
|
|
69
|
+
yield _return_appbuilder(flask_app, db)
|
|
70
|
+
db.engine.dispose(close=True)
|
|
@@ -26,7 +26,7 @@ from urllib.parse import urljoin
|
|
|
26
26
|
import packaging.version
|
|
27
27
|
from connexion import FlaskApi
|
|
28
28
|
from fastapi import FastAPI
|
|
29
|
-
from flask import Blueprint, g
|
|
29
|
+
from flask import Blueprint, current_app, g
|
|
30
30
|
from sqlalchemy import select
|
|
31
31
|
from sqlalchemy.orm import Session, joinedload
|
|
32
32
|
from starlette.middleware.wsgi import WSGIMiddleware
|
|
@@ -282,7 +282,7 @@ class FabAuthManager(BaseAuthManager[User]):
|
|
|
282
282
|
|
|
283
283
|
def deserialize_user(self, token: dict[str, Any]) -> User:
|
|
284
284
|
with create_session() as session:
|
|
285
|
-
return session.
|
|
285
|
+
return session.scalars(select(User).where(User.id == int(token["sub"]))).one()
|
|
286
286
|
|
|
287
287
|
def serialize_user(self, user: User) -> dict[str, Any]:
|
|
288
288
|
return {"sub": str(user.id)}
|
|
@@ -292,7 +292,7 @@ class FabAuthManager(BaseAuthManager[User]):
|
|
|
292
292
|
user = self.get_user()
|
|
293
293
|
return (
|
|
294
294
|
self.appbuilder
|
|
295
|
-
and self.appbuilder.
|
|
295
|
+
and self.appbuilder.app.config.get("AUTH_ROLE_PUBLIC", None)
|
|
296
296
|
or (not user.is_anonymous and user.is_active)
|
|
297
297
|
)
|
|
298
298
|
|
|
@@ -470,14 +470,18 @@ class FabAuthManager(BaseAuthManager[User]):
|
|
|
470
470
|
return {dag.dag_id for dag in session.execute(select(DagModel.dag_id))}
|
|
471
471
|
if isinstance(user, AnonymousUser):
|
|
472
472
|
return set()
|
|
473
|
-
user_query =
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
473
|
+
user_query = (
|
|
474
|
+
session.scalars(
|
|
475
|
+
select(User)
|
|
476
|
+
.options(
|
|
477
|
+
joinedload(User.roles)
|
|
478
|
+
.subqueryload(Role.permissions)
|
|
479
|
+
.options(joinedload(Permission.action), joinedload(Permission.resource))
|
|
480
|
+
)
|
|
481
|
+
.where(User.id == user.id)
|
|
479
482
|
)
|
|
480
|
-
.
|
|
483
|
+
.unique()
|
|
484
|
+
.one()
|
|
481
485
|
)
|
|
482
486
|
roles = user_query.roles
|
|
483
487
|
|
|
@@ -547,7 +551,7 @@ class FabAuthManager(BaseAuthManager[User]):
|
|
|
547
551
|
if not self.appbuilder:
|
|
548
552
|
raise AirflowException("AppBuilder is not initialized.")
|
|
549
553
|
|
|
550
|
-
sm_from_config =
|
|
554
|
+
sm_from_config = current_app.config.get("SECURITY_MANAGER_CLASS")
|
|
551
555
|
if sm_from_config:
|
|
552
556
|
if not issubclass(sm_from_config, FabAirflowSecurityManagerOverride):
|
|
553
557
|
raise AirflowConfigException(
|