apache-airflow-providers-fab 3.0.1rc1__tar.gz → 3.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- apache_airflow_providers_fab-3.1.2/.pre-commit-config.yaml +60 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/3rd-party-licenses/LICENSES-ui.txt +1 -1
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/NOTICE +1 -1
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/PKG-INFO +13 -14
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/README.rst +5 -6
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/auth-manager/access-control.rst +1 -1
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/auth-manager/api-authentication.rst +3 -3
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/auth-manager/configuring-flask-app.rst +1 -1
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/auth-manager/sso.rst +30 -4
- apache_airflow_providers_fab-3.1.2/docs/auth-manager/token.rst +155 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/auth-manager/webserver-authentication.rst +3 -1
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/changelog.rst +148 -3
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/cli-ref.rst +1 -1
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/index.rst +5 -6
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/provider.yaml +8 -2
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/pyproject.toml +9 -11
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/__init__.py +1 -1
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_endpoints/user_endpoint.py +2 -2
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/login.py +0 -7
- apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/roles.py +63 -0
- apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/v2-fab-auth-manager-generated.yaml +553 -0
- apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/auth_manager/api_fastapi/parameters.py +55 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/login.py +36 -6
- apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/auth_manager/api_fastapi/routes/roles.py +137 -0
- apache_airflow_providers_fab-3.0.1rc1/tests/unit/fab/auth_manager/api_fastapi/conftest.py → apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/auth_manager/api_fastapi/security.py +10 -10
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/services/login.py +13 -27
- apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/auth_manager/api_fastapi/services/roles.py +158 -0
- apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/auth_manager/api_fastapi/sorting.py +49 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/cli_commands/db_command.py +2 -2
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/cli_commands/permissions_command.py +6 -2
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/cli_commands/user_command.py +3 -3
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/fab_auth_manager.py +37 -49
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/models/__init__.py +3 -8
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/models/db.py +1 -1
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/security_manager/override.py +62 -17
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/views/user.py +12 -0
- apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/cli/__init__.py +18 -0
- {apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/auth_manager/cli_commands → apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/cli}/definition.py +50 -2
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/get_provider_info.py +1 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/version_compat.py +1 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/api_connexion/parameters.py +1 -46
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/app.py +6 -8
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/init_appbuilder.py +8 -4
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/init_security.py +1 -1
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/init_views.py +11 -7
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/package-lock.json +451 -296
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/package.json +13 -10
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/session.py +5 -8
- apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/743.935ed3d26e56ed8f63d3.js → apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/743.0c0bf201ae17e66a9a3f.js +2 -2
- apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ff5a35f322070b094aa2.js → apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ef6fc04c9b6920cd75c9.js +1 -1
- apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/flash.5583a9e0cf11f2be93da.js → apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/flash.eaaf777ec1b3628cf7be.js +1 -1
- apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/loadingDots.2e5f555f0753107b0300.js → apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/loadingDots.76f4332c0a932c3dc08f.js +1 -1
- apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/main.bc1f701c3d133e2a3bab.js +2 -0
- apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/manifest.json +22 -0
- apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/materialIcons.3e67dd6fbfcc4f3b5105.js → apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/materialIcons.ad07a489b2f0fc1a96bf.js +1 -1
- apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/moment.5b85b4f6be2fe9c405ac.js +1 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/views.py +18 -14
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_endpoints/test_role_and_permission_endpoint.py +11 -11
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_endpoints/test_user_endpoint.py +5 -5
- apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/conftest.py +70 -0
- apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/datamodels/test_roles.py +130 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_fastapi/routes/test_login.py +13 -4
- apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/routes/test_roles.py +554 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_fastapi/services/test_login.py +22 -42
- apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/services/test_roles.py +363 -0
- apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/test_parameters.py +70 -0
- apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/test_security.py +50 -0
- apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/test_sorting.py +69 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/cli_commands/test_db_command.py +18 -16
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/cli_commands/test_permissions_command.py +3 -3
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/cli_commands/test_role_command.py +2 -2
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/cli_commands/test_user_command.py +6 -6
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/models/test_user_model.py +3 -6
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/security_manager/test_override.py +1 -1
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/test_fab_auth_manager.py +62 -15
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/test_security.py +2 -2
- apache_airflow_providers_fab-3.1.2/tests/unit/fab/cli/__init__.py +16 -0
- {apache_airflow_providers_fab-3.0.1rc1/tests/unit/fab/auth_manager/cli_commands → apache_airflow_providers_fab-3.1.2/tests/unit/fab/cli}/test_definition.py +1 -1
- apache_airflow_providers_fab-3.1.2/tests/unit/fab/db_manager/__init__.py +16 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/db_manager/test_fab_db_manager.py +1 -1
- apache_airflow_providers_fab-3.1.2/tests/unit/fab/plugins/__init__.py +16 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/plugins/test_plugin.py +1 -1
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/www/test_auth.py +2 -2
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/www/views/test_views_custom_user_views.py +39 -3
- apache_airflow_providers_fab-3.1.2/www-hash.txt +1 -0
- apache_airflow_providers_fab-3.0.1rc1/docs/auth-manager/token.rst +0 -45
- apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/v2-fab-auth-manager-generated.yaml +0 -153
- apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.js +0 -2
- apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/manifest.json +0 -22
- apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/moment.9baee5ec3d7639a10897.js +0 -1
- apache_airflow_providers_fab-3.0.1rc1/www-hash.txt +0 -1
- {apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab → apache_airflow_providers_fab-3.1.2}/LICENSE +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/api-ref/fab-public-api-ref.rst +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/api-ref/fab-token-api-ref.rst +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/auth-manager/index.rst +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/auth-manager/security.rst +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/commits.rst +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/conf.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/configurations-ref.rst +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/img/add-role.png +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/img/diagram_fab_auth_manager_airflow_architecture.md5sum +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/img/diagram_fab_auth_manager_airflow_architecture.png +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/img/diagram_fab_auth_manager_airflow_architecture.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/img/new-role.png +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/migrations-ref.rst +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/security.rst +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/upgrading.rst +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/3rd-party-licenses/LICENSES-ui.txt +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/alembic.ini +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api/auth/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api/auth/backend/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api/auth/backend/basic_auth.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api/auth/backend/kerberos_auth.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api/auth/backend/session.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_endpoints/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_endpoints/role_and_permission_endpoint.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/routes/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/cli_commands/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/cli_commands/role_command.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/cli_commands/sync_perm_command.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/cli_commands/utils.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/models/anonymous_user.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/openapi/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/openapi/v1-flask-api.yaml +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/schemas/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/schemas/role_and_permission_schema.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/schemas/user_schema.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/security_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/security_manager/constants.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/views/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/views/permissions.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/views/roles_list.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/views/user_edit.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/auth_manager/views/user_stats.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/migrations/README +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/migrations/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/migrations/env.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/migrations/script.py.mako +0 -0
- /apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/migrations/versions/0001_1_4_0_create_ab_tables_if_missing.py → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/migrations/versions/0000_1_4_0_create_ab_tables_if_missing.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/migrations/versions/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/airflow_flask_app.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/api_connexion/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/api_connexion/exceptions.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/api_connexion/security.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/api_connexion/types.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/auth.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/constants.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/init_jinja_globals.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/init_manifest_files.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/init_session.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/extensions/init_wsgi_middlewares.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/security/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/security/permissions.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/security_appless.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/security_manager.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/css/bootstrap-theme.css +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/css/flash.css +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/css/loading-dots.css +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/css/main.css +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/css/material-icons.css +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/dist/48f0ea180c40270a5b05.png +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/dist/649c0b07771e68fafdeb.png +0 -0
- /apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/743.935ed3d26e56ed8f63d3.js.LICENSE.txt → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/743.0c0bf201ae17e66a9a3f.js.LICENSE.txt +0 -0
- /apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ff5a35f322070b094aa2.css → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.ef6fc04c9b6920cd75c9.css +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/dist/f7490d556a6c42e49ba4.png +0 -0
- /apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/flash.5583a9e0cf11f2be93da.css → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/flash.eaaf777ec1b3628cf7be.css +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.css +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/dist/jquery-ui.min.js.LICENSE.txt +0 -0
- /apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/loadingDots.2e5f555f0753107b0300.css → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/loadingDots.76f4332c0a932c3dc08f.css +0 -0
- /apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.css → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/main.bc1f701c3d133e2a3bab.css +0 -0
- /apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/main.3cf3be1a0c5439bb640d.js.LICENSE.txt → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/main.bc1f701c3d133e2a3bab.js.LICENSE.txt +0 -0
- /apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/materialIcons.3e67dd6fbfcc4f3b5105.css → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/materialIcons.ad07a489b2f0fc1a96bf.css +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/dist/oss-licenses.json +0 -0
- /apache_airflow_providers_fab-3.0.1rc1/src/airflow/providers/fab/www/static/dist/runtime.6ad9da077ea169d60db9.js → /apache_airflow_providers_fab-3.1.2/src/airflow/providers/fab/www/static/dist/runtime.254c277d91ce3ac79c64.js +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/js/datetime_utils.js +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/js/main.js +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/pin_100.png +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/pin_32.png +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/sort_asc.png +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/sort_both.png +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/static/sort_desc.png +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/airflow/_messages.html +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/airflow/error.html +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/airflow/main.html +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/airflow/traceback.html +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/appbuilder/flash.html +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/appbuilder/index.html +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/appbuilder/navbar.html +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/appbuilder/navbar_menu.html +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/templates/appbuilder/navbar_right.html +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/utils.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/src/airflow/providers/fab/www/webpack.config.js +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/conftest.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api/auth/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api/auth/backend/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api/auth/backend/test_basic_auth.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api/auth/backend/test_kerberos_auth.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api/auth/backend/test_session.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_endpoints/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_endpoints/api_connexion_utils.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_endpoints/remote_user_api_auth_backend.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_endpoints/test_auth.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_fastapi/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1/tests/unit/fab/auth_manager/api_fastapi/routes → apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/datamodels}/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1/tests/unit/fab/auth_manager/cli_commands → apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/api_fastapi/routes}/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/api_fastapi/services/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1/tests/unit/fab/auth_manager/security_manager → apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/cli}/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1/tests/unit/fab/db_manager → apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/cli_commands}/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/cli_commands/test_sync_perm_command.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/cli_commands/test_utils.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/conftest.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/models/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/models/test_anonymous_user.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/models/test_db.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/schemas/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/schemas/test_role_and_permission_schema.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/schemas/test_user_schema.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1/tests/unit/fab/plugins → apache_airflow_providers_fab-3.1.2/tests/unit/fab/auth_manager/security_manager}/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/security_manager/test_constants.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/test_models.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/views/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/views/test_permissions.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/views/test_roles_list.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/views/test_user.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/views/test_user_edit.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/auth_manager/views/test_user_stats.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/decorators.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/plugins/conftest.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/utils.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/www/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/www/test_utils.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/www/views/__init__.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/www/views/conftest.py +0 -0
- {apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/tests/unit/fab/www/views/test_connection_form_fields.py +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
|
2
|
+
# or more contributor license agreements. See the NOTICE file
|
|
3
|
+
# distributed with this work for additional information
|
|
4
|
+
# regarding copyright ownership. The ASF licenses this file
|
|
5
|
+
# to you under the Apache License, Version 2.0 (the
|
|
6
|
+
# "License"); you may not use this file except in compliance
|
|
7
|
+
# with the License. You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
|
12
|
+
# software distributed under the License is distributed on an
|
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
+
# KIND, either express or implied. See the License for the
|
|
15
|
+
# specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
---
|
|
18
|
+
default_stages: [pre-commit, pre-push]
|
|
19
|
+
minimum_prek_version: '0.2.0'
|
|
20
|
+
default_language_version:
|
|
21
|
+
python: python3
|
|
22
|
+
node: 22.19.0
|
|
23
|
+
golang: 1.24.0
|
|
24
|
+
repos:
|
|
25
|
+
- repo: local
|
|
26
|
+
hooks:
|
|
27
|
+
- id: compile-fab-assets
|
|
28
|
+
name: Compile FAB provider assets
|
|
29
|
+
language: node
|
|
30
|
+
files: ^src/airflow/providers/fab/www/
|
|
31
|
+
exclude: |
|
|
32
|
+
(?x)
|
|
33
|
+
^src/airflow/providers/fab/www/api_connexion/.*|
|
|
34
|
+
^src/airflow/providers/fab/www/extensions/.*|
|
|
35
|
+
^src/airflow/providers/fab/www/security/.*
|
|
36
|
+
entry: ../../scripts/ci/prek/compile_provider_assets.py fab
|
|
37
|
+
pass_filenames: false
|
|
38
|
+
additional_dependencies: ['yarn@1.22.21']
|
|
39
|
+
- id: generate-openapi-spec-fab
|
|
40
|
+
name: Generate the FastAPI API spec for FAB
|
|
41
|
+
language: python
|
|
42
|
+
entry: ../../scripts/ci/prek/generate_openapi_spec_providers.py fab
|
|
43
|
+
pass_filenames: false
|
|
44
|
+
files: ^src/airflow/providers/fab/auth_manager/api_fastapi/.*\.py$
|
|
45
|
+
- id: check-revision-heads-map-fab
|
|
46
|
+
name: Check that the REVISION_HEADS_MAP is up-to-date
|
|
47
|
+
language: python
|
|
48
|
+
entry: ../../scripts/ci/prek/check_revision_heads_map.py
|
|
49
|
+
pass_filenames: false
|
|
50
|
+
files: >
|
|
51
|
+
(?x)
|
|
52
|
+
^src/airflow/providers/fab/migrations/versions/.*$|
|
|
53
|
+
^src/airflow/providers/fab/migrations/versions|
|
|
54
|
+
^src/airflow/providers/fab/auth_manager/models/db\.py$
|
|
55
|
+
- id: prevent-deprecated-sqlalchemy-usage-fab
|
|
56
|
+
name: Prevent deprecated sqlalchemy usage
|
|
57
|
+
entry: ../../scripts/ci/prek/prevent_deprecated_sqlalchemy_usage.py
|
|
58
|
+
language: python
|
|
59
|
+
files: ^.*\.py$
|
|
60
|
+
pass_filenames: true
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-fab
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.1.2
|
|
4
4
|
Summary: Provider package apache-airflow-providers-fab for Apache Airflow
|
|
5
5
|
Keywords: airflow-provider,fab,airflow,integration
|
|
6
6
|
Author-email: Apache Software Foundation <dev@airflow.apache.org>
|
|
7
7
|
Maintainer-email: Apache Software Foundation <dev@airflow.apache.org>
|
|
8
8
|
Requires-Python: >=3.10,!=3.13
|
|
9
9
|
Description-Content-Type: text/x-rst
|
|
10
|
+
License-Expression: Apache-2.0
|
|
10
11
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
12
|
Classifier: Environment :: Console
|
|
12
13
|
Classifier: Environment :: Web Environment
|
|
@@ -14,23 +15,22 @@ Classifier: Intended Audience :: Developers
|
|
|
14
15
|
Classifier: Intended Audience :: System Administrators
|
|
15
16
|
Classifier: Framework :: Apache Airflow
|
|
16
17
|
Classifier: Framework :: Apache Airflow :: Provider
|
|
17
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
21
21
|
Classifier: Topic :: System :: Monitoring
|
|
22
22
|
License-File: 3rd-party-licenses/LICENSES-ui.txt
|
|
23
|
+
License-File: LICENSE
|
|
23
24
|
License-File: NOTICE
|
|
24
|
-
Requires-Dist: apache-airflow>=3.0.
|
|
25
|
-
Requires-Dist: apache-airflow-providers-common-compat>=1.
|
|
25
|
+
Requires-Dist: apache-airflow>=3.0.2
|
|
26
|
+
Requires-Dist: apache-airflow-providers-common-compat>=1.12.0
|
|
26
27
|
Requires-Dist: blinker>=1.6.2; python_version < '3.13'
|
|
27
28
|
Requires-Dist: flask>=2.2.1,<2.3; python_version < '3.13'
|
|
28
|
-
Requires-Dist: flask-appbuilder==5.0.
|
|
29
|
+
Requires-Dist: flask-appbuilder==5.0.1; python_version < '3.13'
|
|
29
30
|
Requires-Dist: flask-login>=0.6.2; python_version < '3.13'
|
|
30
31
|
Requires-Dist: flask-session>=0.8.0; python_version < '3.13'
|
|
31
32
|
Requires-Dist: msgpack>=1.0.0; python_version < '3.13'
|
|
32
33
|
Requires-Dist: flask-sqlalchemy>=3.0.5; python_version < '3.13'
|
|
33
|
-
Requires-Dist: sqlalchemy<2; python_version < '3.13'
|
|
34
34
|
Requires-Dist: flask-wtf>=1.1.0; python_version < '3.13'
|
|
35
35
|
Requires-Dist: connexion[flask]>=2.14.2,<3.0; python_version < '3.13'
|
|
36
36
|
Requires-Dist: jmespath>=0.7.0; python_version < '3.13'
|
|
@@ -39,8 +39,8 @@ Requires-Dist: wtforms>=3.0,<4; python_version < '3.13'
|
|
|
39
39
|
Requires-Dist: flask_limiter>3,<4,!=3.13
|
|
40
40
|
Requires-Dist: kerberos>=1.3.0 ; extra == "kerberos" and ( python_version < '3.13')
|
|
41
41
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
42
|
-
Project-URL: Changelog, https://airflow.
|
|
43
|
-
Project-URL: Documentation, https://airflow.
|
|
42
|
+
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-fab/3.1.2/changelog.html
|
|
43
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-fab/3.1.2
|
|
44
44
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
|
45
45
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
46
46
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
@@ -72,7 +72,7 @@ Provides-Extra: kerberos
|
|
|
72
72
|
|
|
73
73
|
Package ``apache-airflow-providers-fab``
|
|
74
74
|
|
|
75
|
-
Release: ``3.
|
|
75
|
+
Release: ``3.1.2``
|
|
76
76
|
|
|
77
77
|
|
|
78
78
|
`Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
|
|
@@ -85,7 +85,7 @@ This is a provider package for ``fab`` provider. All classes for this provider p
|
|
|
85
85
|
are in ``airflow.providers.fab`` python package.
|
|
86
86
|
|
|
87
87
|
You can find package information and changelog for the provider
|
|
88
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.
|
|
88
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.1.2/>`_.
|
|
89
89
|
|
|
90
90
|
Installation
|
|
91
91
|
------------
|
|
@@ -103,15 +103,14 @@ Requirements
|
|
|
103
103
|
PIP package Version required
|
|
104
104
|
========================================== ==========================================
|
|
105
105
|
``apache-airflow`` ``>=3.0.2``
|
|
106
|
-
``apache-airflow-providers-common-compat`` ``>=1.
|
|
106
|
+
``apache-airflow-providers-common-compat`` ``>=1.10.1``
|
|
107
107
|
``blinker`` ``>=1.6.2; python_version < "3.13"``
|
|
108
108
|
``flask`` ``>=2.2.1,<2.3; python_version < "3.13"``
|
|
109
|
-
``flask-appbuilder`` ``==5.0.
|
|
109
|
+
``flask-appbuilder`` ``==5.0.1; python_version < "3.13"``
|
|
110
110
|
``flask-login`` ``>=0.6.2; python_version < "3.13"``
|
|
111
111
|
``flask-session`` ``>=0.8.0; python_version < "3.13"``
|
|
112
112
|
``msgpack`` ``>=1.0.0; python_version < "3.13"``
|
|
113
113
|
``flask-sqlalchemy`` ``>=3.0.5; python_version < "3.13"``
|
|
114
|
-
``sqlalchemy`` ``<2; python_version < "3.13"``
|
|
115
114
|
``flask-wtf`` ``>=1.1.0; python_version < "3.13"``
|
|
116
115
|
``connexion[flask]`` ``>=2.14.2,<3.0; python_version < "3.13"``
|
|
117
116
|
``jmespath`` ``>=0.7.0; python_version < "3.13"``
|
|
@@ -149,5 +148,5 @@ Extra Dependencies
|
|
|
149
148
|
============ ============================================
|
|
150
149
|
|
|
151
150
|
The changelog for the provider package can be found in the
|
|
152
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.
|
|
151
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.1.2/changelog.html>`_.
|
|
153
152
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-fab``
|
|
25
25
|
|
|
26
|
-
Release: ``3.
|
|
26
|
+
Release: ``3.1.2``
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
`Flask App Builder <https://flask-appbuilder.readthedocs.io/>`__
|
|
@@ -36,7 +36,7 @@ This is a provider package for ``fab`` provider. All classes for this provider p
|
|
|
36
36
|
are in ``airflow.providers.fab`` python package.
|
|
37
37
|
|
|
38
38
|
You can find package information and changelog for the provider
|
|
39
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.1.2/>`_.
|
|
40
40
|
|
|
41
41
|
Installation
|
|
42
42
|
------------
|
|
@@ -54,15 +54,14 @@ Requirements
|
|
|
54
54
|
PIP package Version required
|
|
55
55
|
========================================== ==========================================
|
|
56
56
|
``apache-airflow`` ``>=3.0.2``
|
|
57
|
-
``apache-airflow-providers-common-compat`` ``>=1.
|
|
57
|
+
``apache-airflow-providers-common-compat`` ``>=1.10.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`` ``==5.0.
|
|
60
|
+
``flask-appbuilder`` ``==5.0.1; python_version < "3.13"``
|
|
61
61
|
``flask-login`` ``>=0.6.2; python_version < "3.13"``
|
|
62
62
|
``flask-session`` ``>=0.8.0; python_version < "3.13"``
|
|
63
63
|
``msgpack`` ``>=1.0.0; python_version < "3.13"``
|
|
64
64
|
``flask-sqlalchemy`` ``>=3.0.5; python_version < "3.13"``
|
|
65
|
-
``sqlalchemy`` ``<2; python_version < "3.13"``
|
|
66
65
|
``flask-wtf`` ``>=1.1.0; python_version < "3.13"``
|
|
67
66
|
``connexion[flask]`` ``>=2.14.2,<3.0; python_version < "3.13"``
|
|
68
67
|
``jmespath`` ``>=0.7.0; python_version < "3.13"``
|
|
@@ -100,4 +99,4 @@ Extra Dependencies
|
|
|
100
99
|
============ ============================================
|
|
101
100
|
|
|
102
101
|
The changelog for the provider package can be found in the
|
|
103
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.
|
|
102
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-fab/3.1.2/changelog.html>`_.
|
|
@@ -333,7 +333,7 @@ It's also possible to add Dag Runs resource permissions in a similar way, but ex
|
|
|
333
333
|
dag_id="example_fine_grained_access",
|
|
334
334
|
start_date=pendulum.datetime(2021, 1, 1, tz="UTC"),
|
|
335
335
|
access_control={
|
|
336
|
-
"Viewer": {"
|
|
336
|
+
"Viewer": {"DAGs": {"can_edit", "can_read", "can_delete"}, "DAG Runs": {"can_create"}},
|
|
337
337
|
},
|
|
338
338
|
)
|
|
339
339
|
|
|
@@ -38,9 +38,9 @@ command as in the example below.
|
|
|
38
38
|
|
|
39
39
|
.. versionchanged:: 3.0.0
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
This
|
|
43
|
-
|
|
41
|
+
Airflow now uses token-based authentication for the public API.
|
|
42
|
+
This mechanism is independent of the configured ``auth_backend``.
|
|
43
|
+
Clients must first obtain a JWT token using :doc:`token`, then include that token in subsequent API requests.
|
|
44
44
|
|
|
45
45
|
Kerberos authentication
|
|
46
46
|
'''''''''''''''''''''''
|
|
@@ -59,7 +59,33 @@ Configuration Steps
|
|
|
59
59
|
|
|
60
60
|
This replaces the default ``SimpleAuthManager``.
|
|
61
61
|
|
|
62
|
-
2. **
|
|
62
|
+
2. **Enable OAuth Authentication Type**
|
|
63
|
+
|
|
64
|
+
Set ``AUTH_TYPE`` to ``AUTH_OAUTH`` in your ``webserver_config.py`` file
|
|
65
|
+
(located at ``$AIRFLOW_HOME/webserver_config.py`` by default, configurable via
|
|
66
|
+
``[fab] config_file`` in ``airflow.cfg``):
|
|
67
|
+
|
|
68
|
+
.. code-block:: python
|
|
69
|
+
|
|
70
|
+
from flask_appbuilder.const import AUTH_OAUTH
|
|
71
|
+
|
|
72
|
+
AUTH_TYPE = AUTH_OAUTH
|
|
73
|
+
|
|
74
|
+
.. important::
|
|
75
|
+
This step is required. Without setting ``AUTH_TYPE = AUTH_OAUTH``,
|
|
76
|
+
the OAuth providers will not be activated even if ``OAUTH_PROVIDERS``
|
|
77
|
+
is configured. The default ``AUTH_TYPE = AUTH_DB`` uses database
|
|
78
|
+
authentication only.
|
|
79
|
+
|
|
80
|
+
.. note::
|
|
81
|
+
If the ``webserver_config.py`` file does not exist in your environment,
|
|
82
|
+
you need to create it manually. A template with default values and examples
|
|
83
|
+
can be found in the Airflow source at
|
|
84
|
+
``airflow-core/src/airflow/config_templates/default_webserver_config.py``.
|
|
85
|
+
You can copy this file to ``$AIRFLOW_HOME/webserver_config.py`` and modify
|
|
86
|
+
it for your needs.
|
|
87
|
+
|
|
88
|
+
3. **Install Required Packages**
|
|
63
89
|
|
|
64
90
|
If not already installed, ensure the FAB provider is available:
|
|
65
91
|
|
|
@@ -71,7 +97,7 @@ Configuration Steps
|
|
|
71
97
|
The FAB Auth Manager provider is not installed by default in Airflow 3.
|
|
72
98
|
You must install it explicitly to use OAuth2-based SSO.
|
|
73
99
|
|
|
74
|
-
|
|
100
|
+
4. **Configure OAuth2 Provider**
|
|
75
101
|
|
|
76
102
|
FAB Auth Manager reads provider configuration from the ``[fab]`` section
|
|
77
103
|
of ``airflow.cfg`` or from environment variables.
|
|
@@ -119,13 +145,13 @@ Configuration Steps
|
|
|
119
145
|
|
|
120
146
|
Adjust these values according to your provider's documentation.
|
|
121
147
|
|
|
122
|
-
|
|
148
|
+
5. **Restart Airflow Webserver**
|
|
123
149
|
|
|
124
150
|
.. code-block:: bash
|
|
125
151
|
|
|
126
152
|
airflow webserver --reload
|
|
127
153
|
|
|
128
|
-
|
|
154
|
+
6. **Test SSO Login**
|
|
129
155
|
|
|
130
156
|
Open the Airflow UI. You should see a login option for your SSO provider.
|
|
131
157
|
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
.. Licensed to the Apache Software Foundation (ASF) under one
|
|
2
|
+
or more contributor license agreements. See the NOTICE file
|
|
3
|
+
distributed with this work for additional information
|
|
4
|
+
regarding copyright ownership. The ASF licenses this file
|
|
5
|
+
to you under the Apache License, Version 2.0 (the
|
|
6
|
+
"License"); you may not use this file except in compliance
|
|
7
|
+
with the License. You may obtain a copy of the License at
|
|
8
|
+
|
|
9
|
+
.. http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
|
|
11
|
+
.. Unless required by applicable law or agreed to in writing,
|
|
12
|
+
software distributed under the License is distributed on an
|
|
13
|
+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
+
KIND, either express or implied. See the License for the
|
|
15
|
+
specific language governing permissions and limitations
|
|
16
|
+
under the License.
|
|
17
|
+
|
|
18
|
+
Generate JWT token with FAB auth manager
|
|
19
|
+
========================================
|
|
20
|
+
|
|
21
|
+
.. note::
|
|
22
|
+
This guide only applies if your environment is configured with FAB auth manager.
|
|
23
|
+
|
|
24
|
+
To use the :doc:`Airflow public API <apache-airflow:stable-rest-api-ref>`, you first need to obtain a JWT Token for
|
|
25
|
+
authentication.
|
|
26
|
+
Once you have the token, include it in the ``Authorization`` header when making requests to the public API.
|
|
27
|
+
|
|
28
|
+
You can generate a JWT token using the ``Create Token`` API endpoint,
|
|
29
|
+
documented in :doc:`/api-ref/fab-token-api-ref`.
|
|
30
|
+
|
|
31
|
+
Example
|
|
32
|
+
'''''''
|
|
33
|
+
|
|
34
|
+
Use the following example to generate a token via username and password.
|
|
35
|
+
|
|
36
|
+
.. code-block:: bash
|
|
37
|
+
|
|
38
|
+
ENDPOINT_URL="http://localhost:8080"
|
|
39
|
+
curl -X 'POST' \
|
|
40
|
+
"${ENDPOINT_URL}/auth/token" \
|
|
41
|
+
-H 'Content-Type: application/json' \
|
|
42
|
+
-d '{
|
|
43
|
+
"username": "<username>",
|
|
44
|
+
"password": "<password>"
|
|
45
|
+
}'
|
|
46
|
+
|
|
47
|
+
If successful, this request returns a JWT token that you can use for subsequent Airflow public API calls.
|
|
48
|
+
|
|
49
|
+
Only users authenticated via the database (``AUTH_TYPE = AUTH_DB``) or LDAP
|
|
50
|
+
(``AUTH_TYPE = AUTH_LDAP``) can generate tokens using this method.
|
|
51
|
+
For more details, see :doc:`webserver-authentication`.
|
|
52
|
+
|
|
53
|
+
If you need to generate a token using a different authentication mechanism, see the next section.
|
|
54
|
+
|
|
55
|
+
Custom authentication implementation
|
|
56
|
+
------------------------------------
|
|
57
|
+
|
|
58
|
+
By default, JWT tokens for the Airflow public API can only be generated using
|
|
59
|
+
basic authentication (username and password) for database or LDAP users.
|
|
60
|
+
|
|
61
|
+
If you want to support another authentication mechanism, such as oauth, you can do so by overriding the
|
|
62
|
+
``create_token`` method in the FAB auth manager.
|
|
63
|
+
|
|
64
|
+
Example
|
|
65
|
+
'''''''
|
|
66
|
+
|
|
67
|
+
.. code-block:: python
|
|
68
|
+
|
|
69
|
+
class MyAuthManager(FabAuthManager):
|
|
70
|
+
|
|
71
|
+
def create_token(self, headers: dict[str, str], body: dict[str, Any]) -> User:
|
|
72
|
+
"""
|
|
73
|
+
Return the authenticated user for a given payload.
|
|
74
|
+
|
|
75
|
+
Implement your own custom token creation logic here.
|
|
76
|
+
"""
|
|
77
|
+
...
|
|
78
|
+
|
|
79
|
+
Oauth example
|
|
80
|
+
'''''''''''''
|
|
81
|
+
|
|
82
|
+
Below is an example implementation that uses OAuth to allow users to obtain a JWT token.
|
|
83
|
+
This custom logic overrides the default ``create_token`` method from the FAB authentication manager.
|
|
84
|
+
|
|
85
|
+
.. warning::
|
|
86
|
+
The example shown below disables signature verification (``verify_signature=False``).
|
|
87
|
+
This is **insecure** and should only be used for testing. Always validate tokens properly in production.
|
|
88
|
+
Furthermore you need to make sure that the claims of the JWT are valid.
|
|
89
|
+
Critical claims that you must verify are for example (but not limited to):
|
|
90
|
+
- ``iss`` (issuer)
|
|
91
|
+
- ``aud`` (audience)
|
|
92
|
+
- ``nbf`` (not before time)
|
|
93
|
+
- ``exp`` (expiration time)
|
|
94
|
+
Refer to the documentation of your identity provider for more information.
|
|
95
|
+
|
|
96
|
+
.. code-block:: python
|
|
97
|
+
|
|
98
|
+
class MyAuthManager(FabAuthManager):
|
|
99
|
+
|
|
100
|
+
def create_token(self, headers: dict[str, str], body: dict[str, Any]) -> User:
|
|
101
|
+
"""
|
|
102
|
+
Return the authenticated user derived from an OAuth access token.
|
|
103
|
+
|
|
104
|
+
Implement your own custom token validation and user mapping logic here.
|
|
105
|
+
"""
|
|
106
|
+
user = None
|
|
107
|
+
|
|
108
|
+
# Handle OAuth-based authentication
|
|
109
|
+
if self.security_manager.auth_type == AUTH_OAUTH:
|
|
110
|
+
# Require a Bearer token
|
|
111
|
+
auth_header = headers.get("Authorization")
|
|
112
|
+
if not auth_header:
|
|
113
|
+
return None
|
|
114
|
+
|
|
115
|
+
token = auth_header.replace("Bearer ", "")
|
|
116
|
+
|
|
117
|
+
# Example token decoding
|
|
118
|
+
#
|
|
119
|
+
# With signature validation (recommended):
|
|
120
|
+
# me = jwt.decode(
|
|
121
|
+
# token,
|
|
122
|
+
# public_key,
|
|
123
|
+
# algorithms=['HS256', 'RS256'],
|
|
124
|
+
# audience=CLIENT_ID,
|
|
125
|
+
# issuer=ISSUER_URL,
|
|
126
|
+
# )
|
|
127
|
+
#
|
|
128
|
+
# Without signature validation (not recommended):
|
|
129
|
+
me = jwt.decode(token, options={"verify_signature": False})
|
|
130
|
+
|
|
131
|
+
# Extract groups/roles (example schema — adjust to your provider)
|
|
132
|
+
groups = me["resource_access"]["airflow"]["roles"] # requires validation
|
|
133
|
+
if not groups:
|
|
134
|
+
groups = ["airflow_public"]
|
|
135
|
+
else:
|
|
136
|
+
groups = [g for g in groups if "airflow" in g]
|
|
137
|
+
|
|
138
|
+
# Build user info payload for FAB
|
|
139
|
+
userinfo = {
|
|
140
|
+
"username": me.get("preferred_username"),
|
|
141
|
+
"email": me.get("email"),
|
|
142
|
+
"first_name": me.get("given_name"),
|
|
143
|
+
"last_name": me.get("family_name"),
|
|
144
|
+
"role_keys": groups,
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
user = self.security_manager.auth_user_oauth(userinfo, rotate_session_id=False)
|
|
148
|
+
|
|
149
|
+
# Fall back to the default implementation
|
|
150
|
+
else:
|
|
151
|
+
user = super().create_token(headers=headers, body=body)
|
|
152
|
+
|
|
153
|
+
log.info("User: %s", user)
|
|
154
|
+
|
|
155
|
+
return user
|
|
@@ -23,7 +23,9 @@ FAB auth manager authentication
|
|
|
23
23
|
While this documentation refers to authentication using the ``apache-airflow-providers-fab`` package, please note:
|
|
24
24
|
|
|
25
25
|
- The **FAB auth provider** is actively maintained and compatible with the latest versions of Airflow.
|
|
26
|
-
-
|
|
26
|
+
- It is preferred to configure supported authentication options using the new ``auth_manager`` framework configured in ``airflow.cfg``.
|
|
27
|
+
- The ``webserver_config.py`` file is still used for more advanced options,
|
|
28
|
+
such as Single Sign-On with OAuth.
|
|
27
29
|
|
|
28
30
|
For more, see the :doc:`token`.
|
|
29
31
|
|
{apache_airflow_providers_fab-3.0.1rc1 → apache_airflow_providers_fab-3.1.2}/docs/changelog.rst
RENAMED
|
@@ -20,6 +20,153 @@
|
|
|
20
20
|
Changelog
|
|
21
21
|
---------
|
|
22
22
|
|
|
23
|
+
3.1.2
|
|
24
|
+
.....
|
|
25
|
+
|
|
26
|
+
Bug Fixes
|
|
27
|
+
~~~~~~~~~
|
|
28
|
+
|
|
29
|
+
* ``Fab Auth Manager add xcom missing perms (#60315)``
|
|
30
|
+
* ``Fix typos in CLI commands (#60227)``
|
|
31
|
+
* ``Hide Groups field from User edit form in FAB Auth Manager (#60019)``
|
|
32
|
+
* ``Fix user creation in FAB fails when no role specified (#60015)``
|
|
33
|
+
|
|
34
|
+
Misc
|
|
35
|
+
~~~~
|
|
36
|
+
|
|
37
|
+
* ``Change starlette import to fastapi (#60382)``
|
|
38
|
+
* ``New year means updated Copyright notices (#60344)``
|
|
39
|
+
* ``rename names of data models related to roles for consistency across requests and responses (#60312)``
|
|
40
|
+
* ``Introduce a "cli" section in provider metadata (#59805)``
|
|
41
|
+
* ``Move over plugins_manager to a shared library (#59956)``
|
|
42
|
+
* ``Bump the fab-ui-package-updates group across 1 directory with 4 updates (#59717)``
|
|
43
|
+
* ``Make FAB AirflowAppBuilder use scoped_session (#59953)``
|
|
44
|
+
* ``Upgrade SQLAlchemy (SQLA) to 2.0 (#59218)``
|
|
45
|
+
|
|
46
|
+
Doc-only
|
|
47
|
+
~~~~~~~~
|
|
48
|
+
|
|
49
|
+
* ``Clarify note re: webserver_config.py deprecation (#59529)``
|
|
50
|
+
* ``#59475 (docs): added few clarification docs for OAuth Authentication type (#60109)``
|
|
51
|
+
|
|
52
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
53
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
54
|
+
|
|
55
|
+
3.1.1
|
|
56
|
+
.....
|
|
57
|
+
|
|
58
|
+
Misc
|
|
59
|
+
~~~~
|
|
60
|
+
|
|
61
|
+
* ``Remove global from plugins_manager (#59851)``
|
|
62
|
+
* ``Replace imports from airflow.security.permissions module in fab provider due to future deprecation of the module. (#59755)``
|
|
63
|
+
* ``Split SerializedBaseOperator from serde logic (#59627)``
|
|
64
|
+
* ``Adaptions for custom auth manager example in documentation (#59355)``
|
|
65
|
+
* ``Pnpm upgrade to 10.x and prevent script execution (#59466)``
|
|
66
|
+
* ``Bump the fab-ui-package-updates group across 1 directory with 3 updates (#59242)``
|
|
67
|
+
|
|
68
|
+
Doc-only
|
|
69
|
+
~~~~~~~~
|
|
70
|
+
|
|
71
|
+
* ``Add hints for claim validation to auth manager documentation (#59320)``
|
|
72
|
+
* ``Fix release process issues after going through 2025-12-09 release (#59261)``
|
|
73
|
+
|
|
74
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
75
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
76
|
+
|
|
77
|
+
3.1.0
|
|
78
|
+
.....
|
|
79
|
+
|
|
80
|
+
Features
|
|
81
|
+
~~~~~~~~
|
|
82
|
+
|
|
83
|
+
* ``Create 'create_token' method in FAB auth manager (#59245)``
|
|
84
|
+
|
|
85
|
+
Bug Fixes
|
|
86
|
+
~~~~~~~~~
|
|
87
|
+
|
|
88
|
+
* ``Permit 'airflow db migrate -r' with an empty database (#59205)``
|
|
89
|
+
|
|
90
|
+
Misc
|
|
91
|
+
~~~~
|
|
92
|
+
|
|
93
|
+
* ``Add backcompat for exceptions in providers (#58727)``
|
|
94
|
+
* ``Remove global statement from Fab provider (#59018)``
|
|
95
|
+
* ``Bump the fab-ui-package-updates group across 1 directory with 2 updates (#58954)``
|
|
96
|
+
* ``Bump minimum prek version to 0.2.0 (#58952)``
|
|
97
|
+
* ``Use 'HTTP_422_UNPROCESSABLE_CONTENT' instead of 'HTTP_422_UNPROCESSABLE_ENTITY' (#58828)``
|
|
98
|
+
|
|
99
|
+
Doc-only
|
|
100
|
+
~~~~~~~~
|
|
101
|
+
|
|
102
|
+
* ``docs: adjust misleading docs (#59228)``
|
|
103
|
+
|
|
104
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
105
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
3.0.3
|
|
109
|
+
.....
|
|
110
|
+
|
|
111
|
+
Misc
|
|
112
|
+
~~~~
|
|
113
|
+
|
|
114
|
+
* ``Bump stylelint from 16.25.0 to 16.26.0 in /providers/fab/src/airflow/providers/fab/www in the fab-ui-package-updates group across 1 directory (#58678)``
|
|
115
|
+
* ``Remove deprecation warning in Fab provider (#58686)``
|
|
116
|
+
* ``Fix mypy errors in providers (#58644)``
|
|
117
|
+
* ``Bump webpack from 5.102.1 to 5.103.0 in /providers/fab/src/airflow/providers/fab/www in the fab-ui-package-updates group across 1 directory (#58634)``
|
|
118
|
+
* ``Upgrade js-yaml to 4.1.1 in FAB (#58501)``
|
|
119
|
+
* ``Migrate FAB PATCH /roles/{name} to FastAPI (#58023)``
|
|
120
|
+
|
|
121
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
122
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
123
|
+
* ``Updates to release process of providers (#58316)``
|
|
124
|
+
|
|
125
|
+
3.0.2
|
|
126
|
+
.....
|
|
127
|
+
|
|
128
|
+
Bug Fixes
|
|
129
|
+
~~~~~~~~~
|
|
130
|
+
|
|
131
|
+
* ``Fix duplicated SQLAlchemy sessions caused transactions fail to close (#58196)``
|
|
132
|
+
* ``Fix logout in Fab and Keycloak auth managers (#57992)``
|
|
133
|
+
* ``Fix double redirection while authenticating in Fab auth manager (#57993)``
|
|
134
|
+
* ``Fix remote user authentication in Fab auth manager (#57775)``
|
|
135
|
+
* ``Fix Fab auth manager with 'securecookie' as session backend (#57578)``
|
|
136
|
+
|
|
137
|
+
Misc
|
|
138
|
+
~~~~
|
|
139
|
+
|
|
140
|
+
* ``Convert all airflow distributions to be compliant with ASF requirements (#58138)``
|
|
141
|
+
* ``Migrate FAB GET /roles/{name} to FastAPI (#58009)``
|
|
142
|
+
* ``Migrate FAB DELETE /roles to FastAPI (#57780)``
|
|
143
|
+
* ``Bump the fab-ui-package-updates group across 1 directory with 2 updates (#57760)``
|
|
144
|
+
* ``Migrate FAB GET /roles to FastAPI (#57411)``
|
|
145
|
+
* ``Synchronize boto3 and sqlalchemy dependency lower-binds (#57385)``
|
|
146
|
+
* ``Bump the fab-ui-package-updates group across 1 directory with 4 updates (#57160)``
|
|
147
|
+
* ``Migrate FAB POST /roles to FastAPI (#57199)``
|
|
148
|
+
* ``Upgrade 'flask-appbuilder' to 5.0.1 (#57170)``
|
|
149
|
+
* ``refactor: migrate models to use mapped_column for SQLAlchemy 2.0 compatibility (#56827)``
|
|
150
|
+
|
|
151
|
+
Doc-only
|
|
152
|
+
~~~~~~~~
|
|
153
|
+
|
|
154
|
+
* ``Fixing some typos and spelling errors (#57186)``
|
|
155
|
+
|
|
156
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
157
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
158
|
+
* ``Delete all unnecessary LICENSE Files (#58191)``
|
|
159
|
+
* ``Enable pt006 rule and fix new generate errors (#58238)``
|
|
160
|
+
* ``Enable ruff PLW2101,PLW2901,PLW3301 rule (#57700)``
|
|
161
|
+
* ``Revert "Fix duplicated SQLAlchemy sessions caused transactions fail to close (#57815)" (#58097)``
|
|
162
|
+
* ``Fix duplicated SQLAlchemy sessions caused transactions fail to close (#57815)``
|
|
163
|
+
* ``Synchronize default versions in all split .pre-commit-config.yaml (#57851)``
|
|
164
|
+
* ``Fix mypy static errors in fab provider (#57761)``
|
|
165
|
+
* ``Fix mypy static errors in main (#57755)``
|
|
166
|
+
* ``Fix mypy type errors in providers/standard/ in external_task.py for SQLAlchemy 2 migration (#57369)``
|
|
167
|
+
* ``Enable ruff PLW1641 rule (#57679)``
|
|
168
|
+
* ``Extract prek hooks for FAB provider (#57181)``
|
|
169
|
+
|
|
23
170
|
3.0.1
|
|
24
171
|
.....
|
|
25
172
|
|
|
@@ -251,7 +398,7 @@ Doc-only
|
|
|
251
398
|
Bug Fixes
|
|
252
399
|
~~~~~~~~~
|
|
253
400
|
|
|
254
|
-
* ``Fix: allow users with specific DAG permissions to access DAGs when no
|
|
401
|
+
* ``Fix: allow users with specific DAG permissions to access DAGs when no specific DAG is requested (#51462)``
|
|
255
402
|
* ``Fix fab asset compilation hashing script (#51446)``
|
|
256
403
|
* ``Fix default setting for hash algorithm for FAB password hash (#51858)``
|
|
257
404
|
|
|
@@ -655,8 +802,6 @@ Misc
|
|
|
655
802
|
appropriate section above if needed. Do not delete the lines(!):
|
|
656
803
|
* ``Add TODOs in providers code for Subdag code removal (#41963)``
|
|
657
804
|
* ``Add fixes by breeze/precommit-lint static checks (#41604) (#41618)``
|
|
658
|
-
|
|
659
|
-
.. Review and move the new changes to one of the sections above:
|
|
660
805
|
* ``Fix pre-commit for auto update of fab migration versions (#42382)``
|
|
661
806
|
* ``Handle 'AUTH_ROLE_PUBLIC' in FAB auth manager (#42280)``
|
|
662
807
|
|