This is an automated email from the ASF dual-hosted git repository. kaxilnaik pushed a commit to branch v3-1-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 1e473c26aa23c4e552a75c9f7e609b0e1f97efcf Author: anasatzemoso <[email protected]> AuthorDate: Fri Sep 19 03:07:53 2025 +0530 fix: Set triggered_by='ui' for DAG runs triggered from UI (#54650) (cherry picked from commit 4a30c7c9ea6cde1e4c7290e09cb34a91b1b61f78) --- .../src/airflow/api_fastapi/core_api/routes/public/dag_run.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/airflow-core/src/airflow/api_fastapi/core_api/routes/public/dag_run.py b/airflow-core/src/airflow/api_fastapi/core_api/routes/public/dag_run.py index a1b686fa605..657d2df6955 100644 --- a/airflow-core/src/airflow/api_fastapi/core_api/routes/public/dag_run.py +++ b/airflow-core/src/airflow/api_fastapi/core_api/routes/public/dag_run.py @@ -21,7 +21,7 @@ import textwrap from typing import Annotated, Literal, cast import structlog -from fastapi import Depends, HTTPException, Query, status +from fastapi import Depends, HTTPException, Query, Request, status from fastapi.exceptions import RequestValidationError from fastapi.responses import StreamingResponse from pydantic import ValidationError @@ -415,6 +415,7 @@ def trigger_dag_run( dag_bag: DagBagDep, user: GetUserDep, session: SessionDep, + request: Request, ) -> DAGRunResponse: """Trigger a DAG.""" dm = session.scalar(select(DagModel).where(~DagModel.is_stale, DagModel.dag_id == dag_id).limit(1)) @@ -427,6 +428,12 @@ def trigger_dag_run( f"DAG with dag_id: '{dag_id}' has import errors and cannot be triggered", ) + referer = request.headers.get("referer") + if referer: + triggered_by = DagRunTriggeredByType.UI + else: + triggered_by = DagRunTriggeredByType.REST_API + try: dag = get_latest_version_of_dag(dag_bag, dag_id, session) params = body.validate_context(dag) @@ -438,7 +445,7 @@ def trigger_dag_run( run_after=params["run_after"], conf=params["conf"], run_type=DagRunType.MANUAL, - triggered_by=DagRunTriggeredByType.REST_API, + triggered_by=triggered_by, triggering_user_name=user.get_name(), state=DagRunState.QUEUED, session=session,
