This is an automated email from the ASF dual-hosted git repository.
kaxilnaik pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 4a30c7c9ea6 fix: Set triggered_by='ui' for DAG runs triggered from UI
(#54650)
4a30c7c9ea6 is described below
commit 4a30c7c9ea6cde1e4c7290e09cb34a91b1b61f78
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)
---
.../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,