This is an automated email from the ASF dual-hosted git repository. github-bot pushed a change to branch dependabot/npm_and_yarn/airflow-core/src/airflow/ui/core-ui-package-updates-2067516e94 in repository https://gitbox.apache.org/repos/asf/airflow.git
omit bb1ada18ebe Bump the core-ui-package-updates group across 1 directory with 46 updates add 1cf28896087 Use public facing class for ``TaskGroup`` deprecation (#53714) add 1361afafbf9 Bump gitpython from 3.1.44 to 3.1.45 in /airflow-core (#53725) add aa2b533bb3e Bump gitpython from 3.1.44 to 3.1.45 (#53724) add d3ff8b96128 Source distributions missing for deltalake 1.1.1 (#53729) add 04a13b50624 misc: fix spelling in md,py,rst,yaml files (#48781) add e85717b8e21 AIP-86 - Add `callback_state` to deadline table (#53650) add 047686f4638 feat: Refactor Databricks error handling with utility functions (#52704) add 36fbb3fc9ca Pass cluster context to AsyncKubernetesHook (#53504) add 194da6a1400 Add environment and oslogin for yandex dataproc create cluster (#52973) add ef80507e803 Restore proper DAG callback execution context (#53684) add f5b12db393b AIP-81 Make list operations to return all results (#50132) add c0e9952314d Add pre-commit hook to prevent task SDK imports in airflow core (#53700) add dc3dfd862eb Fix spelling of GitHub brand name (#53735) add bc28c15562c Making some brittle tests related to log assertion more robust (#53743) add e9ed4e17ec7 Making another brittle test related to log assertion more robust (#53747) add 61862eea295 Unconditionally disable start_from_trigger (#53744) add f35576a65db Task SDK Integration Testing Infrastructure (#53332) add f02b8a86532 Reduce log noise in BaseHook while getting a connection (#53704) add 7796cdc7eeb Initialize DAG bundles and sync dags in CLI `get_dag` function (#53699) add e3ddf97c9a1 Add pre-commit that verifies if shared project are properly structured (#53697) add e4fb6862c6b Allow Remote logging providers to load connections from the API Server (#53719) add 5d6d98d274b AIP-84 Enable multi sorting (#53408) add 5f33250ac8a Fix tests (#53760) add 70dbf40a480 Make Elasticsearch/OpensearchTaskHandler to render log well (#53639) add 1237634180c Add full support for AWS SSM Run Command in Airflow (#52769) add 8881579cd41 Fix variable name in EKS command for token expiration timestamp (#53720) add c620125db9f Add Keycloak Refresh Token Endpoint to Core and Keycloak Provider (#51657) add 31db12826ee Remove extra slash from endpoint URL (#53755) add 1cbc4753991 Bump the core-ui-package-updates group across 1 directory with 46 updates This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (bb1ada18ebe) \ N -- N -- N refs/heads/dependabot/npm_and_yarn/airflow-core/src/airflow/ui/core-ui-package-updates-2067516e94 (1cbc4753991) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omit" are not gone; other references still refer to them. Any revisions marked "discard" are gone forever. No new revisions were added by this update. Summary of changes: .asf.yaml | 6 +- .dockerignore | 1 + .github/CODEOWNERS | 2 +- .github/workflows/additional-prod-image-tests.yml | 30 ++ .pre-commit-config.yaml | 101 +++++ Dockerfile | 1 + Dockerfile.ci | 1 + RELEASE_NOTES.rst | 2 +- .../logging-monitoring/logging-tasks.rst | 2 +- .../core-concepts/auth-manager/simple/token.rst | 4 +- airflow-core/docs/howto/docker-compose/index.rst | 2 +- airflow-core/docs/howto/set-up-database.rst | 2 +- airflow-core/docs/img/airflow_erd.sha256 | 2 +- airflow-core/docs/img/airflow_erd.svg | 154 ++++---- airflow-core/docs/migrations-ref.rst | 4 +- airflow-core/docs/security/api.rst | 4 +- airflow-core/pyproject.toml | 2 +- .../api_fastapi/auth/managers/base_auth_manager.py | 9 + .../src/airflow/api_fastapi/common/db/dags.py | 12 +- .../src/airflow/api_fastapi/common/parameters.py | 72 ++-- .../api_fastapi/core_api/openapi/_private_ui.yaml | 28 +- .../core_api/openapi/v2-rest-api-generated.yaml | 160 ++++++-- .../api_fastapi/core_api/routes/public/auth.py | 21 + .../api_fastapi/core_api/routes/public/dag_run.py | 2 +- .../core_api/routes/public/task_instances.py | 2 +- .../airflow/api_fastapi/core_api/routes/ui/grid.py | 10 +- .../src/airflow/callbacks/callback_requests.py | 8 + .../config_templates/airflow_local_settings.py | 29 ++ .../src/airflow/dag_processing/processor.py | 60 ++- .../src/airflow/jobs/scheduler_job_runner.py | 6 +- airflow-core/src/airflow/logging_config.py | 10 +- ...> 0079_3_1_0_add_callback_state_to_deadline.py} | 28 +- airflow-core/src/airflow/models/dagrun.py | 85 +++- airflow-core/src/airflow/models/deadline.py | 30 +- airflow-core/src/airflow/models/mappedoperator.py | 9 +- airflow-core/src/airflow/triggers/deadline.py | 26 +- .../src/airflow/ui/openapi-gen/queries/common.ts | 50 +-- .../ui/openapi-gen/queries/ensureQueryData.ts | 55 +-- .../src/airflow/ui/openapi-gen/queries/prefetch.ts | 55 +-- .../src/airflow/ui/openapi-gen/queries/queries.ts | 55 +-- .../src/airflow/ui/openapi-gen/queries/suspense.ts | 55 +-- .../ui/openapi-gen/requests/services.gen.ts | 24 +- .../airflow/ui/openapi-gen/requests/types.gen.ts | 69 ++-- airflow-core/src/airflow/ui/package.json | 6 +- airflow-core/src/airflow/ui/pnpm-lock.yaml | 188 ++++----- .../airflow/ui/src/components/DagVersionSelect.tsx | 2 +- .../src/airflow/ui/src/pages/Asset/AssetLayout.tsx | 2 +- .../airflow/ui/src/pages/AssetsList/AssetsList.tsx | 2 +- .../ui/src/pages/Connections/Connections.tsx | 2 +- .../airflow/ui/src/pages/Dag/Overview/Overview.tsx | 4 +- .../airflow/ui/src/pages/Dag/Tasks/TaskCard.tsx | 2 +- airflow-core/src/airflow/ui/src/pages/DagRuns.tsx | 2 +- .../src/pages/DagsList/DagsFilters/DagsFilters.tsx | 2 +- .../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 2 +- .../HistoricalMetrics/HistoricalMetrics.tsx | 2 +- .../src/airflow/ui/src/pages/Events/Events.tsx | 2 +- .../src/airflow/ui/src/pages/Pools/Pools.tsx | 2 +- .../ui/src/pages/Task/Overview/Overview.tsx | 2 +- .../ui/src/pages/TaskInstances/TaskInstances.tsx | 2 +- .../airflow/ui/src/pages/Variables/Variables.tsx | 2 +- .../airflow/ui/src/queries/useDagTagsInfinite.ts | 2 +- .../src/airflow/ui/src/queries/useDags.tsx | 2 +- .../src/airflow/ui/src/queries/useGridRuns.ts | 2 +- .../src/airflow/ui/src/queries/useGridStructure.ts | 2 +- airflow-core/src/airflow/utils/__init__.py | 3 +- airflow-core/src/airflow/utils/cli.py | 4 + airflow-core/src/airflow/utils/db.py | 2 +- .../tests/unit/api_fastapi/common/db/test_dags.py | 16 +- .../unit/api_fastapi/common/test_parameters.py | 29 +- .../core_api/routes/public/test_auth.py | 58 +++ .../core_api/routes/public/test_dags.py | 5 + .../api_fastapi/core_api/routes/test_routes.py | 1 + .../tests/unit/callbacks/test_callback_requests.py | 194 ++++++++++ .../tests/unit/cli/commands/test_dag_command.py | 2 +- .../tests/unit/cli/commands/test_task_command.py | 3 - .../tests/unit/dag_processing/test_manager.py | 2 + .../tests/unit/dag_processing/test_processor.py | 266 ++++++++++++- airflow-core/tests/unit/jobs/test_scheduler_job.py | 65 +++- airflow-core/tests/unit/models/test_dagrun.py | 211 +++++++++- airflow-core/tests/unit/models/test_deadline.py | 39 +- airflow-core/tests/unit/triggers/test_deadline.py | 33 +- airflow-ctl/docs/images/command_hashes.txt | 2 +- airflow-ctl/docs/images/output_main.svg | 112 +++--- airflow-ctl/src/airflowctl/api/operations.py | 136 +++---- .../tests/airflow_ctl/api/test_operations.py | 79 +++- chart/templates/check-values.yaml | 2 +- chart/values.yaml | 2 +- contributing-docs/08_static_code_checks.rst | 4 + contributing-docs/09_testing.rst | 3 + contributing-docs/testing/k8s_tests.rst | 2 +- .../testing/task_sdk_integration_tests.rst | 215 +++++++++++ dev/README.md | 6 +- dev/README_RELEASE_AIRFLOW.md | 2 +- dev/README_RELEASE_HELM_CHART.md | 2 +- dev/README_RELEASE_PROVIDERS.md | 6 +- dev/breeze/doc/05_test_commands.rst | 19 + dev/breeze/doc/images/output_ci-image_build.svg | 2 +- dev/breeze/doc/images/output_ci-image_build.txt | 2 +- dev/breeze/doc/images/output_ci-image_pull.svg | 2 +- dev/breeze/doc/images/output_ci-image_pull.txt | 2 +- dev/breeze/doc/images/output_ci-image_verify.svg | 2 +- dev/breeze/doc/images/output_ci-image_verify.txt | 2 +- .../doc/images/output_ci_selective-check.svg | 6 +- .../doc/images/output_ci_selective-check.txt | 2 +- dev/breeze/doc/images/output_prod-image_build.svg | 2 +- dev/breeze/doc/images/output_prod-image_build.txt | 2 +- dev/breeze/doc/images/output_prod-image_pull.svg | 2 +- dev/breeze/doc/images/output_prod-image_pull.txt | 2 +- dev/breeze/doc/images/output_prod-image_verify.svg | 2 +- dev/breeze/doc/images/output_prod-image_verify.txt | 2 +- .../output_sbom_export-dependency-information.svg | 2 +- .../output_sbom_export-dependency-information.txt | 2 +- .../output_setup_check-all-params-in-groups.svg | 24 +- .../output_setup_check-all-params-in-groups.txt | 2 +- .../output_setup_regenerate-command-images.svg | 4 +- .../output_setup_regenerate-command-images.txt | 2 +- dev/breeze/doc/images/output_static-checks.svg | 128 +++--- dev/breeze/doc/images/output_static-checks.txt | 2 +- dev/breeze/doc/images/output_testing.svg | 32 +- dev/breeze/doc/images/output_testing.txt | 2 +- .../output_testing_task-sdk-integration-tests.svg | 144 +++++++ .../output_testing_task-sdk-integration-tests.txt | 1 + .../src/airflow_breeze/commands/ci_commands.py | 4 +- .../airflow_breeze/commands/ci_commands_config.py | 2 +- .../commands/ci_image_commands_config.py | 6 +- .../commands/production_image_commands_config.py | 6 +- .../src/airflow_breeze/commands/release_command.py | 2 +- .../commands/release_management_commands.py | 6 +- .../commands/sbom_commands_config.py | 2 +- .../src/airflow_breeze/commands/setup_commands.py | 8 +- .../airflow_breeze/commands/testing_commands.py | 61 +++ .../commands/testing_commands_config.py | 15 +- dev/breeze/src/airflow_breeze/global_constants.py | 2 + dev/breeze/src/airflow_breeze/pre_commit_ids.py | 2 + dev/breeze/src/airflow_breeze/utils/cdxgen.py | 4 +- dev/breeze/src/airflow_breeze/utils/run_tests.py | 20 +- dev/breeze/src/airflow_breeze/utils/run_utils.py | 2 +- dev/send_email.py | 4 +- dev/system_tests/update_issue_status.py | 2 +- docs/spelling_wordlist.txt | 1 + .../tests/helm_tests/other/test_pgbouncer.py | 4 +- providers/amazon/docs/operators/ssm.rst | 103 +++++ providers/amazon/provider.yaml | 11 + .../src/airflow/providers/amazon/aws/hooks/eks.py | 2 +- .../aws/operators/{glue_databrew.py => ssm.py} | 117 +++--- .../sensors/{opensearch_serverless.py => ssm.py} | 104 ++--- .../airflow/providers/amazon/aws/triggers/ssm.py | 86 +++++ .../airflow/providers/amazon/get_provider_info.py | 13 + .../amazon/tests/system/amazon/aws/example_ec2.py | 32 +- .../amazon/tests/system/amazon/aws/example_glue.py | 7 +- .../amazon/tests/system/amazon/aws/example_ssm.py | 242 ++++++++++++ .../tests/system/amazon/aws/utils/__init__.py | 5 + .../amazon/tests/system/amazon/aws/utils/ec2.py | 31 ++ .../tests/unit/amazon/aws/operators/test_ssm.py | 75 ++++ .../tests/unit/amazon/aws/sensors/test_ssm.py | 95 +++++ .../tests/unit/amazon/aws/triggers/test_ssm.py | 97 +++++ .../apache/flink/sensors/test_flink_kubernetes.py | 7 +- .../providers/cncf/kubernetes/hooks/kubernetes.py | 2 +- .../unit/cncf/kubernetes/hooks/test_kubernetes.py | 24 +- .../kubernetes/sensors/test_spark_kubernetes.py | 10 +- providers/databricks/pyproject.toml | 3 +- .../providers/databricks/operators/databricks.py | 34 +- .../providers/databricks/triggers/databricks.py | 16 +- .../providers/databricks/utils/databricks.py | 54 ++- .../unit/databricks/operators/test_databricks.py | 4 +- .../tests/unit/databricks/utils/test_databricks.py | 429 ++++++++++++++++++++- providers/edge3/docs/architecture.rst | 2 +- .../providers/elasticsearch/log/es_task_handler.py | 14 +- .../unit/elasticsearch/log/test_es_task_handler.py | 38 +- .../fab/docs/auth-manager/api-authentication.rst | 4 +- providers/fab/docs/auth-manager/token.rst | 2 +- .../docs/auth-manager/webserver-authentication.rst | 4 +- .../google/docs/api-auth-backend/google-openid.rst | 2 +- .../keycloak/auth_manager/keycloak_auth_manager.py | 4 + .../keycloak/auth_manager/routes/login.py | 27 +- .../keycloak/auth_manager/routes/test_login.py | 77 +++- .../providers/opensearch/log/os_task_handler.py | 31 +- .../opensearch/tests/unit/opensearch/conftest.py | 83 +--- .../unit/opensearch/log/test_os_task_handler.py | 40 +- .../airflow/providers/yandex/operators/dataproc.py | 15 + .../tests/unit/yandex/operators/test_dataproc.py | 68 ++++ pyproject.toml | 7 +- reproducible_build.yaml | 4 +- scripts/ci/constraints/ci_commit_constraints.sh | 2 +- scripts/ci/pre_commit/check_sdk_imports.py | 78 ++++ scripts/ci/pre_commit/check_shared_projects.py | 218 +++++++++++ .../docker/install_airflow_when_building_images.sh | 1 + .../in_container/install_airflow_and_providers.py | 2 +- .../timezones/tests/timezones}/__init__.py | 0 .../tests/{ => timezones}/test_timezone.py | 0 task-sdk-tests/docker/docker-compose.yaml | 105 +++++ {docker-tests => task-sdk-tests}/pyproject.toml | 7 +- .../tests/task_sdk_tests}/__init__.py | 0 task-sdk-tests/tests/task_sdk_tests/conftest.py | 71 ++++ .../tests/task_sdk_tests}/constants.py | 7 + .../tests/task_sdk_tests/test_task_sdk_health.py | 144 +++++++ task-sdk/src/airflow/sdk/bases/hook.py | 4 +- task-sdk/src/airflow/sdk/bases/operator.py | 6 +- task-sdk/src/airflow/sdk/execution_time/context.py | 4 +- .../src/airflow/sdk/execution_time/supervisor.py | 108 +++++- task-sdk/src/airflow/sdk/log.py | 10 + .../task_sdk/definitions/test_secrets_masker.py | 2 +- .../task_sdk/execution_time/test_supervisor.py | 49 +++ 203 files changed, 5239 insertions(+), 1183 deletions(-) copy airflow-core/src/airflow/migrations/versions/{0078_3_1_0_add_trigger_id_to_deadline.py => 0079_3_1_0_add_callback_state_to_deadline.py} (60%) copy providers/common/io/src/airflow/providers/common/io/xcom/__init__.py => airflow-core/tests/unit/api_fastapi/common/test_parameters.py (59%) create mode 100644 contributing-docs/testing/task_sdk_integration_tests.rst create mode 100644 dev/breeze/doc/images/output_testing_task-sdk-integration-tests.svg create mode 100644 dev/breeze/doc/images/output_testing_task-sdk-integration-tests.txt create mode 100644 providers/amazon/docs/operators/ssm.rst copy providers/amazon/src/airflow/providers/amazon/aws/operators/{glue_databrew.py => ssm.py} (55%) copy providers/amazon/src/airflow/providers/amazon/aws/sensors/{opensearch_serverless.py => ssm.py} (57%) create mode 100644 providers/amazon/src/airflow/providers/amazon/aws/triggers/ssm.py create mode 100644 providers/amazon/tests/system/amazon/aws/example_ssm.py create mode 100644 providers/amazon/tests/unit/amazon/aws/operators/test_ssm.py create mode 100644 providers/amazon/tests/unit/amazon/aws/sensors/test_ssm.py create mode 100644 providers/amazon/tests/unit/amazon/aws/triggers/test_ssm.py create mode 100755 scripts/ci/pre_commit/check_sdk_imports.py create mode 100755 scripts/ci/pre_commit/check_shared_projects.py copy {airflow-core/src/airflow/_shared => shared/timezones/tests/timezones}/__init__.py (100%) rename shared/timezones/tests/{ => timezones}/test_timezone.py (100%) create mode 100644 task-sdk-tests/docker/docker-compose.yaml copy {docker-tests => task-sdk-tests}/pyproject.toml (92%) copy {airflow-core/src/airflow/_shared => task-sdk-tests/tests/task_sdk_tests}/__init__.py (100%) create mode 100644 task-sdk-tests/tests/task_sdk_tests/conftest.py copy {docker-tests/tests/docker_tests => task-sdk-tests/tests/task_sdk_tests}/constants.py (77%) create mode 100644 task-sdk-tests/tests/task_sdk_tests/test_task_sdk_health.py