[MVC] - Classify all features into dedicated collections

Proposal

Build out the categories section of the super sidebar and organize the features into their respective categories. In this MVC, the changes will be as least controversial as possible with minor UI text updates. The text changes are important because of an upcoming feature [MVC] - Add the ability to pin sidebar items (#378547 - closed). With the pinned section, features can appear outside of their dedicated categories.

The UI text changes that would be unhelpful or conflicting in the existing left sidebar will be behind a feature flag to prevent unintended consequences.

Layout States
Super_sidebar_anatomy Category_states

The following categories and feature placement are subject to change based on solution validation findings. Items marked * are not on by default.

️ Behind a feature flag
📵 Off or not configured by default


New category breakdown

Projects

Plan
  • Members
  • Labels
  • Activity
  • BoardsIssue boards (Put text change behind a feature flag)
  • Milestones
  • Iterations GitLab Premium
  • Requirements GitLab Ultimate
  • Service Desk
  • Wiki
  • * 📵 Jira issues
  • * 📵 Open Jira
Develop
  • FilesRepository (Put text change behind a feature flag)
  • Commits
  • Branches
  • Tags
  • Snippets
  • ContributorsContributor statistics
  • GraphRepository graph (Put text change behind a feature flag)
  • CompareCompare revisions
  • Locked FilesLocked files
CI/CD
  • Pipelines
  • EditorPipeline editor (Put text change behind a feature flag)
  • Jobs
  • Artifacts
  • SchedulesPipeline schedules (Put text change behind a feature flag)
  • Test CasesTest cases GitLab Ultimate
Security and Compliance
Operations
  • Environments
  • Feature FlagsFeature flags
  • Releases
  • Package Registry
  • Container Registry
  • Infrastructure registryTerraform modules
  • * ⛳️ Kubernetes clusters
  • TerraformTerraform states
  • Google Cloud
  • * ⛳️ Model experiments
Monitor
  • Metrics
  • Error TrackingError tracking
  • Alerts
  • Incidents
  • On-call SchedulesOn-call schedules GitLab Premium
  • Escalation PoliciesEscalation policies GitLab Premium
Analytics
  • * ⛳️ DashboardsApplication analytics GitLab Ultimate (Put text change behind a feature flag)
  • Value streamValue stream analytics (Put text change behind a feature flag)
  • CI/CDCI / CD analytics (Put text change behind a feature flag)
  • Code reviewCode review analytics GitLab Premium (Put text change behind a feature flag)
  • Insights GitLab Ultimate (Put text change behind a feature flag)
  • IssueIssue analytics GitLab Premium (Put text change behind a feature flag)
  • Merge requestMerge request analytics GitLab Premium (Put text change behind a feature flag)
  • RepositoryRepository analytics (Put text change behind a feature flag)
  • * ⛳️ ConfigurationAnalytics configuration GitLab Ultimate (Put text change behind a feature flag)

Groups / Subgroups

Plan
  • Members
  • Labels
  • Activity
  • (Issue) BoardsIssue boards (Put text change behind a feature flag)
  • (Epic) BoardsEpic boards GitLab Premium (Put text change behind a feature flag)
  • Milestones
  • Iterations GitLab Premium
  • Roadmap
  • Wiki GitLab Premium
  • * 📵 ContactsCustomer contacts (Put text change behind a feature flag)
  • * 📵 OrganizationsCustomer organizations (Put text change behind a feature flag)
CI/CD
  • Runners
Security and Compliance
Operations
  • Dependency Proxy
  • Package Registry
  • * ⛳️ KubernetesKubernetes clusters

️ Monitor

  • * ⛳️ Explore telemetry data
  • * ⛳️ Data sources
Analytics
  • Value streamValue stream analytics GitLab Premium (Put text change behind a feature flag)
  • CI/CDCI / CD analytics GitLab Premium (Put text change behind a feature flag)
  • ContributionContribution analytics GitLab Premium (Put text change behind a feature flag)
  • DevOps adoption GitLab Ultimate
  • Insights GitLab Ultimate
  • IssueIssue analytics GitLab Premium (Put text change behind a feature flag)
  • ProductivityProductivity analytics GitLab Premium (Put text change behind a feature flag)
  • RepositoryRepository analytics GitLab Premium (Put text change behind a feature flag)

Admin area

Overview
  • Projects
  • Users
  • Groups
  • Topics
  • Gitaly ServersGitaly servers
CI/CD
  • Runners
  • Jobs
Analytics
  • DevOps ReportsDevOps reports
  • Usage TrendsUsage trends
Monitoring
  • System InfoSystem info
  • Background MigrationsBackground migrations
  • Background JobsBackground jobs
  • Health CheckHealth check
  • Audit eventsAudit events GitLab Premium
Geo
  • Sites
  • Settings

Interaction behavior

Checkout the codepen example @nickbrandt setup to demonstrate basic functionality and interactions

  • Opening each category reveals the designated list of items
  • Only hide a category if all its features are inaccessible. For example, if they are turned off or behind a paid tier of GitLab)
  • All categories should be collapsed by default
  • Visiting a page directly should expand its category and its own item should be in the active state
  • If Category A is expanded, then opening Category B should collapse category A

Edge cases *

These are features that are not commonly encountered. If there is chance that it might be a controversial change, then a thread is being added to discuss options.

References

Edited by Austin Regnery