feat: LAD A-Team CIS Compliance Report, React SPA, i18n, report management, explorer UX fixes

- Professional Oracle-format compliance report with RAG remediation from ADB vector store
- React 19 SPA at /app/ (16 pages, TypeScript, Vite, Zustand, i18n pt/en 625 keys)
- Report delete endpoint, embed individual report files into vector store
- Terraform ZIP download (client-side, pure JS)
- Explorer silent polling during start/stop (no flickering)
- HTML report and compliance report sections start minimized
- Token auth fix for compliance report CSV download links
This commit is contained in:
nogueiraguh
2026-03-19 07:34:06 -03:00
parent baacc1ba21
commit 442e710b9f
60 changed files with 23094 additions and 13 deletions

View File

@@ -0,0 +1,63 @@
import { useEffect } from 'react';
import { Routes, Route, Navigate } from 'react-router-dom';
import { useAuthStore } from '@/stores/auth';
import { useAppStore } from '@/stores/app';
import AppShell from '@/components/layout/AppShell';
import LoginPage from '@/pages/LoginPage';
import ChatPage from '@/pages/ChatPage';
import TerraformPage from '@/pages/TerraformPage';
import PromptGeneratorPage from '@/pages/PromptGeneratorPage';
import WorkspacesPage from '@/pages/WorkspacesPage';
import ExplorerPage from '@/pages/ExplorerPage';
import ReportsPage from '@/pages/ReportsPage';
import OciConfigPage from '@/pages/config/OciConfigPage';
import GenAiConfigPage from '@/pages/config/GenAiConfigPage';
import McpServersPage from '@/pages/config/McpServersPage';
import AdbConfigPage from '@/pages/config/AdbConfigPage';
import EmbeddingsPage from '@/pages/config/EmbeddingsPage';
import EmbConsultPage from '@/pages/config/EmbConsultPage';
import UsersPage from '@/pages/admin/UsersPage';
import MfaPage from '@/pages/admin/MfaPage';
import AuditPage from '@/pages/admin/AuditPage';
export default function App() {
const checkAuth = useAuthStore((s) => s.checkAuth);
const loadData = useAppStore((s) => s.loadData);
const user = useAuthStore((s) => s.user);
useEffect(() => {
checkAuth().then(() => {
if (useAuthStore.getState().user) loadData();
});
}, [checkAuth, loadData]);
// Reload data when user changes (login)
useEffect(() => {
if (user) loadData();
}, [user, loadData]);
return (
<Routes>
<Route path="/login" element={<LoginPage />} />
<Route element={<AppShell />}>
<Route index element={<Navigate to="/chat" replace />} />
<Route path="/chat" element={<ChatPage />} />
<Route path="/terraform" element={<TerraformPage />} />
<Route path="/terraform/prompt" element={<PromptGeneratorPage />} />
<Route path="/terraform/workspaces" element={<WorkspacesPage />} />
<Route path="/explorer" element={<ExplorerPage />} />
<Route path="/reports" element={<ReportsPage />} />
<Route path="/config/oci" element={<OciConfigPage />} />
<Route path="/config/genai" element={<GenAiConfigPage />} />
<Route path="/config/mcp" element={<McpServersPage />} />
<Route path="/config/adb" element={<AdbConfigPage />} />
<Route path="/config/embeddings" element={<EmbeddingsPage />} />
<Route path="/config/embeddings/consult" element={<EmbConsultPage />} />
<Route path="/admin/users" element={<UsersPage />} />
<Route path="/admin/mfa" element={<MfaPage />} />
<Route path="/admin/audit" element={<AuditPage />} />
</Route>
<Route path="*" element={<Navigate to="/chat" replace />} />
</Routes>
);
}