feat: fetch server capabilities and hide infra tabs when disabled
Adds a useServerCapabilities hook that fetches /api/v1/health once per session (staleTime: Infinity) and extracts the infrastructureEndpoints flag. buildAdminTreeNodes now accepts an opts parameter so ClickHouse and Database tabs are hidden when the server reports infra endpoints as disabled. LayoutShell wires the hook result into the admin tree memo. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -46,6 +46,7 @@ import {
|
||||
readCollapsed,
|
||||
writeCollapsed,
|
||||
} from './sidebar-utils';
|
||||
import { useServerCapabilities } from '../api/queries/capabilities';
|
||||
import type { SidebarApp } from './sidebar-utils';
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
@@ -290,6 +291,9 @@ function LayoutContent() {
|
||||
const globalFilters = useGlobalFilters();
|
||||
const { timeRange, autoRefresh, refreshTimeRange } = globalFilters;
|
||||
|
||||
// --- Server capabilities ------------------------------------------
|
||||
const { data: capabilities } = useServerCapabilities();
|
||||
|
||||
// --- Role checks ----------------------------------------------------
|
||||
const isAdmin = useIsAdmin();
|
||||
|
||||
@@ -432,8 +436,8 @@ function LayoutContent() {
|
||||
);
|
||||
|
||||
const adminTreeNodes: SidebarTreeNode[] = useMemo(
|
||||
() => buildAdminTreeNodes(),
|
||||
[],
|
||||
() => buildAdminTreeNodes({ infrastructureEndpoints: capabilities?.infrastructureEndpoints }),
|
||||
[capabilities?.infrastructureEndpoints],
|
||||
);
|
||||
|
||||
// --- Starred items ------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user