From 5554e9d6139dca4a926cb365293c6b4a40582af1 Mon Sep 17 00:00:00 2001 From: Jonas Pacheco Date: Wed, 8 Apr 2026 14:39:28 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20integra=C3=A7=C3=A3o=20Metaset=20BI=20v?= =?UTF-8?q?ia=20proxy=20interno?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Adiciona server/bi/metaset-proxy.ts para proxy do serviço Metaset - Registra proxy /metaset no servidor (setupMetasetProxy) - Atualiza página Metaset.tsx para usar proxy local /metaset - Remove referência externa bi.onboardbi.com.br - Agora usa serviço interno http://metaset:8100 - Mantém navegação suave com navbar sempre visível --- client/src/pages/Metaset.tsx | 121 ++++++++++++++++------------------- server/bi/metaset-proxy.ts | 39 +++++++++++ server/routes.ts | 4 ++ 3 files changed, 98 insertions(+), 66 deletions(-) create mode 100644 server/bi/metaset-proxy.ts diff --git a/client/src/pages/Metaset.tsx b/client/src/pages/Metaset.tsx index 9493454..c09b1f0 100644 --- a/client/src/pages/Metaset.tsx +++ b/client/src/pages/Metaset.tsx @@ -1,77 +1,66 @@ -import { useState } from "react"; -import { Loader2, AlertCircle, ExternalLink } from "lucide-react"; -import { Button } from "@/components/ui/button"; +import { useState, useEffect } from "react"; +import { Loader2, AlertCircle } from "lucide-react"; import { Alert, AlertDescription } from "@/components/ui/alert"; +import { Button } from "@/components/ui/button"; export default function Metaset() { const [isLoading, setIsLoading] = useState(true); const [hasError, setHasError] = useState(false); + const [errorMessage, setErrorMessage] = useState(""); + + useEffect(() => { + // Verificar se o Metaset está online + fetch("/api/bi/metaset/health", { credentials: "include" }) + .then(r => r.json()) + .then(data => { + if (!data.online) { + setHasError(true); + setErrorMessage("O Metaset está offline ou iniciando."); + } + }) + .catch(() => { + setHasError(true); + setErrorMessage("Não foi possível conectar ao Metaset."); + }) + .finally(() => { + setIsLoading(false); + }); + }, []); + + if (hasError) { + return ( +
+ + + + {errorMessage} +
+ +
+
+
+
+ ); + } return ( -
- {/* Header do módulo */} -
-
- Metaset BI +
+ {isLoading && ( +
+
+ + Carregando Metaset... +
- -
- - {/* Container do iframe */} -
- {isLoading && ( -
-
- - Carregando Metaset... -
-
- )} - - {hasError ? ( -
- - - - Não foi possível carregar o Metaset. O site pode não permitir embed em iframe. - - - -
- ) : ( -