Skip to content

Cache only user defined metrics dashboard paths

What does this MR do?

Currently, the output of the all_dashboard_paths method of all dashboard services is collected and cached by the Repository model. Unfortunately, this cache cannot be deleted when an update is made to the all_dashboard_paths method.

This MR:

  • Changes the Repository model cache to only contain a list of user-defined dashboards under .gitlab/dashboards. The all_dashboard_paths methods do not do any other expensive operations (other than fetching a list of dashboards under .gitlab/dashboards). This change should remove the need to delete the cache when a change is made to the all_dashboard_paths method.
  • Moves code to read dashboards in a project's repository into a new lib class. This code was previously in CustomDashboardService and in Metrics::Dashboard::Finder. The code is now in one class.

Related to #218649 (closed).

Screenshots

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Reuben Pereira

Merge request reports