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_tabviewer body - Rails:
Admin::OrbitController,Groups::Settings::OrbitController, routes, sidebar entries, dashboard view - GraphQL: new
Group.knowledgeGraphAvailablefield - Apollo:
owned_namespaces,owner_namespaces(server-sideownedOnly: 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
- Follow-up: !233344 (merged) (graph explorer and Duo tool renderer)
- Original MR: !230181
- Drives orbit/knowledge-graph#474 (admin index detail UI)
- Style reference: #591396
How to set up and validate locally
-
Bring up the GKG stack per the local development doc: ClickHouse, NATS, Siphon, the Rails ClickHouse migrations, and
gkg-serverrunning. -
Enable the feature flag in a Rails console:
Feature.enable(:knowledge_graph) -
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.