Frontend: Refactor pipeline mini graph polling
Summary
Follow up from discussion here
In short: The mini graph need to support both being "smart" and being "dumb". We want to let our user either rely on the smart component, so not having to define the queries themselves OR allowing the user to pass the data to the mini graph.
The reason is that in the pipelines list, we need to poll 20 concurrent pipelines and if the mini graph was only "smart", it would send 20 queries at once.
If we support a "dumb" way, then the parent component can poll "pipelines" field and pass the data down, which in effect will only poll once instead of 20 times.
Proposal
- Separate the "smart" wrapper from the "dumb" wrapper. What this mean is have a
pipeline_mini_graph
component that can handle thegetPipelineStage
but takes as a prop thepipeline
value for the graph. Then move the new graphQL fetching to a different wrapper. That way, we can either use the "dumb" or "smart" component - Keep the same components structure, but allow a prop
pipeline
to be passed. If the prop is used, the component will then never fire it's query to get it and rely on the prop instead. This has a bit of a downside as in it needs more documentation to make sure people understand both usecases.
Additional details
Some relevant technical details, if applicable, such as:
- Does this need a feature flag?
- Does there need to be an associated instrumentation issue created related to this work?
- Is there an example response showing the data structure that should be returned (new endpoints only)?
- What permissions should be used?
- Is this EE or CE?
-
EE -
CE
-
- Additional comments:
Links/References
Edited by Frédéric Caplette