feat(orbit): Reorganize Orbit dashboard shell

What does this MR do and why?

Ships the dashboard shell that the !233344 (merged) graph explorer stacks on top of. After this MR, group owners can visit /dashboard/orbit, see the new admin and group settings pages, and turn Knowledge Graph on for any root namespace they own. The graph explorer (canvas, filter, legend, 3D utils) and the Duo tool renderer ship in !233344 (merged).

This MR plus !233344 (merged) replace the original !230181 review.

  • Frontend shell: app, main page, settings page, schema page, plus the configure flow (button, connect section, turn-on modal) and the schema_data_tab viewer body
  • Rails: Admin::OrbitController, Groups::Settings::OrbitController, routes, sidebar entries, dashboard view
  • GraphQL: new Group.knowledgeGraphAvailable field
  • Apollo: owned_namespaces, owner_namespaces (server-side ownedOnly: true), namespace, namespace_descendants

Access control

  • Feature flag: knowledge_graph (instance scope)
  • Plan: Premium or Ultimate, gated by licensed_feature_available?(:orbit)
  • Enablement: per root namespace, owner role only

Why drop the graph_status endpoint here?

The endpoint depends on a GKG RPC that is still in flight (orbit/knowledge-graph#175). The Rails route is removed in this MR; the frontend call lands in !233344 (merged) and the route will be re-added once the RPC ships.

References

How to set up and validate locally

  1. Bring up the GKG stack per the local development doc: ClickHouse, NATS, Siphon, the Rails ClickHouse migrations, and gkg-server running.

  2. Enable the feature flag in a Rails console:

    Feature.enable(:knowledge_graph)
  3. Sign in as the owner of a root group, then verify:

Step Expected
Visit /dashboard/orbit with no group enabled Empty state renders
Open the Configure dropdown Only top-level groups the user owns appear
Enable a group /-/admin/orbit and /groups/<group>/-/settings/orbit both resolve
Run { group(fullPath: "<root>") { knowledgeGraphAvailable knowledgeGraphEnabled } } Both fields return

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 Michael Angelo Rivera

Merge request reports

Loading