DependencyTrack / DependencyTrack/dependency-track

Reduce amount of data downloaded when opening the project list page on GUI

Open
#2,577 0 comments 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
4.2k
Forks
811
Avg merge
9h 4m
Merged PRs (30d)
229

Description

### Current Behavior

Firefox's network tab shows that there's a big amount of data that is downloaded when opening the "/projects" page in GUI. On my instance with 22 projects I can see 56 requests with already 21,9Mb of data downloaded.

Looking closely I see that the `/api/v1/project` endpoint is returning nearly 17Mb of data. This endpoint returns the whole list of dependencies in the `"directDependencies": "[...]"` field.

### Proposed Behavior

I guess that no data of the `"directDependencies": "[...]"` is used on the project summary page, and that we could greatly improve loading time by creating an endpoint that only transfers necessary data for the GUI.

### Checklist

- [X] I have read and understand the [contributing guidelines](https://github.com/DependencyTrack/dependency-track/blob/master/CONTRIBUTING.md#filing-issues)
- [X] I have checked the [existing issues](https://github.com/DependencyTrack/dependency-track/issues) for whether this enhancement was already requested

Contributor guide

Open the contributing guide

Research direction

Start by profiling the GUI /projects page in Firefox and inspecting the /api/v1/project response, especially the directDependencies field. Trace which project data the summary page actually uses and identify the API and GUI entry points involved. Done means the page still shows its required project information while avoiding the unnecessary dependency payload and reducing downloaded data.

Written by the indexing model from the issue text.

Assessment

Domain
api, frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.