[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 |
---|---|
The following categories and feature placement are subject to change based on <small>solution validation</small> findings. Items marked *
are not on by default.
New category breakdown
Projects
Plan
- Members
- Labels
- Activity
- Boards → Issue boards (Put text change behind a feature flag)
- Milestones
- Iterations GitLab Premium
- Requirements GitLab Ultimate
- Service Desk
- Wiki
-
* 📵
Jira issues -
* 📵
Open Jira
Develop
- Files → Repository (Put text change behind a feature flag)
- Commits
- Branches
- Tags
- Snippets
- Contributors → Contributor statistics
- Graph → Repository graph (Put text change behind a feature flag)
- Compare → Compare revisions
- Locked Files → Locked files
CI/CD
- Pipelines
- Editor → Pipeline editor (Put text change behind a feature flag)
- Jobs
- Artifacts
- Schedules → Pipeline schedules (Put text change behind a feature flag)
- Test Cases → Test cases GitLab Ultimate
Security and Compliance
- Discover → Security capabilities (Promotion in GitLab Free)
- Security dashboard GitLab Ultimate
- Vulnerability report GitLab Ultimate
- On-demand scans GitLab Ultimate
- Dependency list GitLab Ultimate
- License compliance GitLab Ultimate
- Policies GitLab Ultimate
- Audit events GitLab Premium (Promotion in GitLab Free)
- Security → Security configuration
Operations
- Environments
- Feature Flags → Feature flags
- Releases
- Package Registry
- Container Registry
- Infrastructure registry → Terraform modules
-
* ⛳️
Kubernetes clusters - Terraform → Terraform states
- Google Cloud
-
* ⛳️
Model experiments
Monitor
- Metrics
- Error Tracking → Error tracking
- Alerts
- Incidents
- On-call Schedules → On-call schedules GitLab Premium
- Escalation Policies → Escalation policies GitLab Premium
Analytics
-
* ⛳️
Dashboards → Application analytics GitLab Ultimate (Put text change behind a feature flag) - Value stream → Value stream analytics (Put text change behind a feature flag)
- CI/CD → CI / CD analytics (Put text change behind a feature flag)
- Code review → Code review analytics GitLab Premium (Put text change behind a feature flag)
- Insights GitLab Ultimate (Put text change behind a feature flag)
- Issue → Issue analytics GitLab Premium (Put text change behind a feature flag)
- Merge request → Merge request analytics GitLab Premium (Put text change behind a feature flag)
- Repository → Repository analytics (Put text change behind a feature flag)
-
* ⛳️
Configuration → Analytics configuration GitLab Ultimate (Put text change behind a feature flag)
Groups / Subgroups
Plan
- Members
- Labels
- Activity
- (Issue) Boards → Issue boards (Put text change behind a feature flag)
- (Epic) Boards → Epic boards GitLab Premium (Put text change behind a feature flag)
- Milestones
- Iterations GitLab Premium
- Roadmap
- Wiki GitLab Premium
-
* 📵
Contacts → Customer contacts (Put text change behind a feature flag) -
* 📵
Organizations → Customer organizations (Put text change behind a feature flag)
CI/CD
- Runners
Security and Compliance
- Security → Security capabilities (Put text change for parent item behind a feature flag) (Promotion in GitLab Free)
- Security dashboard GitLab Ultimate
- Vulnerability report GitLab Ultimate
- Compliance report GitLab Ultimate
- Policies GitLab Ultimate
- Audit events GitLab Premium
Operations
- Dependency Proxy
- Package Registry
-
* ⛳️
Kubernetes → Kubernetes clusters
⛳ ️ Monitor
-
* ⛳️
Explore telemetry data -
* ⛳️
Data sources
Analytics
- Value stream → Value stream analytics GitLab Premium (Put text change behind a feature flag)
- CI/CD → CI / CD analytics GitLab Premium (Put text change behind a feature flag)
- Contribution → Contribution analytics GitLab Premium (Put text change behind a feature flag)
- DevOps adoption GitLab Ultimate
- Insights GitLab Ultimate
- Issue → Issue analytics GitLab Premium (Put text change behind a feature flag)
- Productivity → Productivity analytics GitLab Premium (Put text change behind a feature flag)
- Repository → Repository analytics GitLab Premium (Put text change behind a feature flag)
Admin area
Overview
- Projects
- Users
- Groups
- Topics
- Gitaly Servers → Gitaly servers
CI/CD
- Runners
- Jobs
Analytics
- DevOps Reports → DevOps reports
- Usage Trends → Usage trends
Monitoring
- System Info → System info
- Background Migrations → Background migrations
- Background Jobs → Background jobs
- Health Check → Health check
- Audit events → Audit 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.
-
⛳ ️ Model experiments -
⛳ ️ Kubernetes clusters -
⛳ ️ Product analytics -
⛳ ️ Observability -
📵 Jira integration -
📵 Customer relations