Redesign the Admin area Orbit page

What does this MR do and why?

Replaces Admin area > Orbit with one page: service health, the two instance settings as toggles, and a table of all top-level groups with search, an Orbit state filter, and bulk Turn on Orbit, Turn off Orbit, Exclude from automatic indexing, and Remove exclusion. The table follows the v5 Status tab design. The settings save from the page, and the update action answers JSON. The old Admin area Orbit components, their queries, and the settings form are deleted.

Closes gitlab-org/orbit/knowledge-graph#1367 (closed)

References

Screenshots or screen recordings

Before After
before-1440 after-1440
Before Happy path Bad path Disaster path
What changes for administrators
  • The old settings form and Save changes are gone. Each toggle saves when you change it. Turning on automatic indexing asks for confirmation first.
  • Turn off Orbit asks for confirmation. Exclude from automatic indexing also asks when a selected group is on, because the hourly AutoIndexWorker turns off every excluded group.
  • Turn on Orbit skips excluded groups for the same reason. Remove the exclusion first.
  • A failed group keeps its selection, a Failed badge, and the reason in a tooltip. Try again runs the action for the failed groups only.
  • Bulk actions send at most 5 requests at a time.
  • With admin mode off, the settings return 401 and the exclusion mutations return a GraphQL access error. Both show "Check that admin mode is on".
  • The table hides top-level groups that are pending deletion. Archived groups stay listed, so an admin can still turn them off.
  • The table shows the group path when it differs from the group name, because top-level groups can share a name.
  • The per-group item counts of the old page are not on this page. The Group status work shows group details.
What each recording covers
  • Happy path: services, search, the Excluded filter, turn on 3 groups, turn off with confirmation, exclude a group that is on (with confirmation) and remove the exclusion, the confirmation for automatic indexing, and the GitLab Duo default saving at once. All calls are real, on a self-managed GDK with a local Orbit.
  • Bad path: a search with no match, 1 of 3 groups rejected by the server, Orbit degraded, and the real index status rate limit (30 calls a minute).
  • Disaster path: Orbit unreachable, the status API failing, the groups query failing (500), the network dropping during a bulk action, a 403, and a setting that fails to save. These faults are injected in the browser, with the response shapes from the server code.
More screenshots
View Screenshot
1024 after-1024
390 after-390-mobile
Dark after-1440-dark

How to set up and validate locally

  1. Use a self-managed GDK with an Orbit license. The page returns 404 on GitLab.com.
  2. Sign in as an administrator and go to http://127.0.0.1:3000/admin/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

Merge request reports

Loading
Loading