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:
hsiegeln
2026-04-11 23:12:30 +02:00
parent 9de51014e7
commit c8cdd846c0
3 changed files with 41 additions and 6 deletions

View File

@@ -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 ------------------------------------------------