Update Product Analytics onboarding/dashboard flow to reflect updated Snowplow initialization process

Summary

With Integrate Product Analytics initialization work... (#398253 - closed), our project initialization process for Product Analytics will be updated.

The Frontend performs checks such as the presence of jitsuKey in order to provide setup documentation as part of the onboarding flow: https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/assets/javascripts/product_analytics/onboarding/onboarding_setup.vue#L6

Integrate Product Analytics initialization work... (#398253 - closed) introduces a new project setting, product_analytics_instrumentation_key, that we will be using moving forward.

Proposal

Update the existing onboarding and dashboard flows, so that existing UI-based flows that depend on the old jitsu_key project setting continue to work when configuring Product Analytics for new and existing projects.

If the product_analytics_snowplow_support feature flag is enabled, it should check for the product_analytics_instrumentation_key project setting. Otherwise, the jitsu_key project setting.

Feature flag

Please add any Snowplow-specific functionality in addition to what exists for Jitsu behind the product_analytics_snowplow_support feature flag.

This is so we can coordinate a switchover with the external cluster changes and we'll remove the Jitsu-specific code when the feature flag is removed.

Implementation plan

Frontend:
Rename all jitsuKey to trackingKey:

  • dashboards_list.vue, onboarding_setup.vue, onboarding_setup_spec.js, analytics_dashboards/index.js
  • rename get_project_jitsu_key.query.graphql -> get_project_tracking_key.query.graphql and also update query
  • tests

Backend:
Rename jitsu_key to tracking_key in analytics_dashboards_helper.rb and project_type.rb

  • when product_analytics_snowplow_support FF is enabled, return project.project_setting.product_analytics_instrumentation_key if it exists, otherwise the jitsu_key.
  • when FF is disabled, continue to only return project.project_setting.jitsu_key
  • Update state_resolver.rb to return correct onboarding state when using Snowplow.
  • tests
Edited by Elwyn Benson