Create LinkToDashboard component
What does this MR do and why?
Create LinkToDashboard reusable component
- Components are mostly inspired by the GlobalSearch modal ( some copied and simplified, some created from scratch )
- The picker initially shows frequently visited project and groups, and additionally allows to search by name
- All API calls (search and frecent groups/projects ) goes through GraphQL ( different from the global search modal that uses the
search/autocompleteREST API - For each project/group fetched, we additionally load the available
customizableDashboardsfrom the GraphQL API. The same API is used in the dashboards UI, making sure that we use the same SOT for both the projects/groups picker and the actual dashboards page - Search results are then filtered to only show the ones where the selected dashboards is available . While frontend filtering is not optimal, it works fine in this case where only few results are needed, and also allows us to move quickly without having to created a new dedicated API ( or make large changes to existing ones )
- This can be reused for other links-to-dashboards scenario and also later on ( with some minimal changes ) for the new Dashboards landing page that we are planning to implement (UX)
This was originally a single MR, which I ended up splitting in two. The second part where the component is used is Add link to AI impact dashboard in AI catalog h... (!213391)
References
Implement link the GitLab Duo and SDLC trends d... (#580503)
Screenshots or screen recordings
Note: screenshots and demo include changes from Add link to AI impact dashboard in AI catalog h... (!213391) (where the component gets added to the AI Catalog header)
(demo shows the link to VSD as I don't have the Duo dashboard setup locally )
Screen Recording 2025-11-18 at 17.10.58.mov
| Before | After |
|---|---|
How to set up and validate locally
Note: since this MR only adds the component, to verify locally you also need changes from !213391 where the component gets added to the AI Catalog header
To have the AI Impact dashboard enabled, it's required to have Clickhouse and Duo setup locally.
To quickly test this without the full setup, apply this patch ( the link will instead point to the Value Stream dashboard, which is enabled by default )
diff --git a/ee/app/assets/javascripts/ai/catalog/components/ai_catalog_list_header.vue b/ee/app/assets/javascripts/ai/catalog/components/ai_catalog_list_header.vue
index 6c83af68f34bc5..5302c2b5bf51af 100644
--- a/ee/app/assets/javascripts/ai/catalog/components/ai_catalog_list_header.vue
+++ b/ee/app/assets/javascripts/ai/catalog/components/ai_catalog_list_header.vue
@@ -99,6 +99,9 @@ export default {
<ai-catalog-nav-actions can-admin />
</div>
- <link-to-dashboard-modal v-if="aiImpactDashboardEnabled" dashboard-name="duo_and_sdlc_trends" />
+ <link-to-dashboard-modal
+ v-if="aiImpactDashboardEnabled"
+ dashboard-name="value_streams_dashboard"
+ />
</div>
</template>
diff --git a/ee/app/models/concerns/product_analytics_helpers.rb b/ee/app/models/concerns/product_analytics_helpers.rb
index a259dc5ec5f3cc..512594bb5b80fd 100644
--- a/ee/app/models/concerns/product_analytics_helpers.rb
+++ b/ee/app/models/concerns/product_analytics_helpers.rb
@@ -7,7 +7,7 @@ module ProductAnalyticsHelpers
GITLAB_PRODUCT_ANALYTICS_DOMAIN = 'gl-product-analytics.com'
def self.ai_impact_dashboard_globally_available?
- Gitlab::ClickHouse.globally_enabled_for_analytics?
+ true
end
def product_analytics_enabled?
- Go to https://gdk.test:3443/explore/ai-catalog
- Test the new link
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.


