apache / apache/dolphinscheduler
[Feature][API][UI] Add a read-only task search to locate which workflow a task belongs to
- Dominant language
- Java
- Stars
- 14.5k
- Forks
- 5.1k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 29
Description
### Search before asking
- [x] I had searched in the [issues](https://github.com/apache/dolphinscheduler/issues?q=is%3Aissue) and found no similar feature requirement.
### Description
In [DSIP-59](https://github.com/apache/dolphinscheduler/issues/16394) the standalone Task Definition page was removed from the project menu, along with its backend list/search endpoints. This was a reasonable architectural decision.
However, that removal also deleted the only entry point to answer a very common operational question:
▎ "Given a task name, which workflow(s) does it belong to?"
I'm not asking to bring back the old management page (create / edit / run standalone tasks). I'm asking for a read-only search that maps a task name to its parent workflow(s).
**Use case**
In big-data environments, task names usually follow strict naming conventions (e.g. one task per table, task name ≈ table name). Operators frequently need to start from a task/table name and jump to the workflow that owns it — for troubleshooting, impact analysis, or verifying a migration. After DSIP-59 there is no UI or REST entry for this, even though the relationship is still fully present in the metadata DB:
```
SELECT p.name AS project, wd.name AS workflow, wd.code AS workflow_code,
td.name AS task, td.task_type
FROM t_ds_task_definition td
JOIN t_ds_workflow_task_relation wtr ON td.code = wtr.post_task_code
JOIN t_ds_workflow_definition wd ON wtr.workflow_definition_code = wd.code
AND wtr.project_code = wd.project_code
JOIN t_ds_project p ON wd.project_code = p.code
WHERE td.name LIKE CONCAT('%', ?, '%');
```
The data is there; only the entry point is missing.
Why the existing Task Instance page is not enough
**The Task Instance page can partially help, but it can only surface tasks that have executed. It cannot locate:**
- tasks that have never run (newly created, or never scheduled);
- tasks whose instances have already been purged by retention / periodic cleanup;
- the current definition of a recently modified task — instances reflect the historical version captured at run time, not the latest task definition.
So Task Instance search misses exactly the cases where "find the owning workflow by name" is most needed.
Proposal (read-only, aligned with DSIP-59)
- Add a lightweight, read-only task search page under the project's Task submenu (next to Task Instance).
- Input: task name (fuzzy match), scoped to the current project.
- Output: a paginated list of task name | task type | owning workflow (clickable link)n jump straight into the workflow.
- Backend: a single read-only paginated query endpoint (the relation already exists via t_ds_workflow_task_relation); no write paths, no standalone-task creation — so it does not reintroduce the orphan-task problem DSIP-59 solved.
### Use case
_No response_
### Related issues
[DSIP-59](https://github.com/apache/dolphinscheduler/issues/16394)
### Are you willing to submit a PR?
- [x] Yes I am willing to submit a PR!
### Code of Conduct
- [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
Contributor guide
Research direction
Start by reading DSIP-59 and the existing Task Instance page and API, then trace the task-definition/workflow relation described by the SQL query. Done means a project-scoped, read-only fuzzy task search with pagination, task type and owning-workflow results, plus a clickable workflow link.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, sql
- Domain
- api, databases, frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100