Draft: Add Orbit excluded groups administration

What does this MR do and why?

Adds an admin-only Excluded groups card to Orbit settings. Administrators can add or remove top-level groups from automatic indexing exclusions, including before automatic indexing is enabled. The add flow warns that an existing enrollment and index are removed within a few minutes. This MR is chained on !254160 (merged).

References

Related to #606375 (closed)

Screenshots or screen recordings

Empty state Exclude modal with search
Excluded groups empty state Exclude group modal
Populated list Group settings without the card
Excluded groups populated list Group Orbit settings without excluded groups

The "Orbit is unavailable" and "Unable to load index status" messages are expected GDK environment noise because no Orbit gRPC service is running.

How to set up and validate locally

  1. Enable Orbit and sign in as an administrator.
  2. Go to /admin/orbit.
  3. In Excluded groups, select Exclude group.
  4. Select a top-level group and select Exclude.
  5. Verify that the group appears in the list and that Remove removes it.
  6. Go to a group Orbit settings page and verify that Excluded groups is not rendered.
Agent context - implementation and verification
  • The query and mutations require instance administrator access and Orbit availability.
  • Duplicate add requests are idempotent, including the database uniqueness race.
  • The existing enrollment validation now returns a clean base error without a Rails attribute prefix.
  • GraphQL request specs passed, including administrator authorization and duplicate handling.
  • Three focused Jest suites passed with 13 tests. ESLint and RuboCop passed for changed files.
  • bundle exec rake gitlab:graphql:compile_docs updated the GraphQL reference.
  • The optional turn-off checkbox and bulk import are not included.

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.

  • Exclusion management is available only in instance administrator mode.
  • The card remains visible regardless of the automatic indexing toggle.
  • Add, remove, empty, populated, authorization, and duplicate cases are covered.
  • GraphQL and Orbit documentation are updated.
Edited by Dmitry Gruzd

Merge request reports

Loading
Loading