Loading
Add the Group status tab to the Orbit dashboard
What does this MR do and why?
Adds a Group status tab to Your work > Orbit. It lists your top-level groups with their Orbit state and index status, and Owners turn Orbit on or off for several groups at once. It uses the same groups table as the Admin area Orbit page, now in one shared place.
- Turning on a group that can start a trial starts it. The confirmation lists the trial of each group, because each group can get a different offer.
- The Off page now uses the same confirmation, so it also lists the trial of each group.
- Orbit reports no percent, so a group that indexes shows a spinner and an info button with the status of each area. The Admin area table gets the same.
- Owners, also through a group share, and admins in admin mode can change a group, as on Settings > Orbit. On self-managed and Dedicated, admins see every top-level group, as on the Admin area Orbit page. Members see the state of each group and a note to ask an Owner. With the trial flag off, or on GitLab Self-Managed, no trial shows.
Related to gitlab-org/orbit/knowledge-graph#1364 (closed). The member view for subgroup members waits for !259468 (closed).
References
- Design: https://claude.ai/artifact/WgBZ9B5Td9Vfcj3hzPav2A
- Admin area Orbit page with the same table: !261333 (merged)
- Off page, which uses the same turn-on rules: !261364 (merged)
- Follow-ups after the redesign: gitlab-org/orbit/knowledge-graph#1370
Screenshots or screen recordings
| Before | Happy path | Bad path | Disaster path |
|---|---|---|---|
What changes for users
- The tab polls only the index status while a group indexes, every 20 seconds, and not while the browser tab is hidden. The first poll comes 20 seconds after the page loads, because the page load already has the status. A poll never calls CustomersDot.
- The page shows 10 groups at a time, the limit of the trial field.
- View usage quotas shows for groups that are on. Contact sales shows for groups on the Free plan, whose trial ended, or whose trial credits ran out before the end date, and for groups that are off and not eligible.
- A failed group keeps its selection, a Failed badge, and the reason. Try again shows only when the group can still run the action.
- The Admin area Orbit table also shows the spinner and the area status.
- The index status shows no "last indexed" time yet. Orbit does not return it.
What each recording covers
All runs use the local GDK with a local CustomersDot and a local Orbit (GKG), on GitLab.com mode unless noted. Index statuses and trial states are real unless noted.
- Before: Your work > Orbit on
masterhas Overview, Schema, and Query editor only. - Happy path: groups in each state, the area popover on hover and focus, turn on 2 groups (each with its own trial), the result alert, the poll moving a group from Queued to start to Indexed, turn off with confirmation, then the member view.
- Bad path: a search with no match, the On filter, one of 2 groups rejected by CustomersDot (Failed badge, kept selection, Try again), both rejected with no Try again, trial ended, credits used up, not eligible, Free plan, and the
orbit_trialflag off. - Disaster path: injected in the browser with real response shapes: the groups query returns 500, the network drops during a turn on, Orbit throttles a poll (the row keeps its status and the warning clears after the only indexing group is turned off), and Orbit is unreachable on the first load. CustomersDot unreachable is real.
- Self-managed: The Admin area table with the spinner and the area popover, and the Group status tab with no trial.
Edge cases
How to set up and validate locally
- Sign in as an Owner of a top-level group with Orbit available.
- Go to
http://127.0.0.1:3000/dashboard/orbit/group-status. - On GitLab.com mode with a local CustomersDot, select a group that is off, then select Actions > Turn on Orbit.
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.
Edited by Jean-Gabriel Doyon































