Epic Goal
- Reduce the overall amount of API calls in the tag list and improve overall render time
Why is this important?
- The tag list view is one of the busiest and most used functionalities of the new Quay UI
- in its current form, the tag list view causes dozes of API calls and takes multiple seconds to render completely
- This is due to the excessive amount of API calls, which are all issued in quick succession to load the manifest data of each tag and each child manifest and retrieve the full security vulnerability report for each manifest
- This leads to sometimes 80+ API calls, which the browser starts to stagger, which leads to a total rendering time of all information of up to 30 seconds and potentially massive amounts of data transferred (vuln reports can easily exceed 1MB per manifest)
- None of these calls are ever cached on the client side, so the reloading and re-render happen when navigating back from the tag detail view to the tag list view, which is an often occurring UI flow
Acceptance Criteria
- Only data that is actually displayed should be fetched from the APIs
- API calls should be cached where appropriate and reasonable
- The total amount of API calls for the initial list render should not exceed 1 + the amount of tags (because of the vuln report call per tag)