diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index b31e258..20f0ebc 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -1,6 +1,7 @@
import { useEffect, useState } from 'react';
import { InventoryPage } from './pages/InventoryPage';
import { LoginPage } from './pages/LoginPage';
+import { getToken, clearSession } from './lib/session';
import './app-shell.css';
type TabKey = 'overview' | 'inventory' | 'discovery' | 'topology' | 'options';
@@ -11,10 +12,36 @@ const tabs = [
{ key: 'topology', label: 'Topology', description: 'Vista futura della mappa multilivello.' },
{ key: 'options', label: 'Options', description: 'Utenti, impostazioni, servizi di sistema e sicurezza.' },
] as const;
-function ShellCard({ title, children, tone = 'default' }: { title: string; children: React.ReactNode; tone?: 'default' | 'accent' | 'warning' }) { return ; }
-function OverviewTab(){ return
- Frontend inventory collegato al backend.
- Tree gerarchico e context panel attivi.
- Navigazione tra parent, children e relazioni disponibile.
- Reintegro layout persistente completato.
- Roadmap di security e options introdotta.
- Preparazione vista topology multilivello.
- I moduli servizi confluiranno nel menu Options.
- L'accesso dovrà essere autenticato prima delle integrazioni remote.
- Serve hardening progressivo di sessione e permessi.
; }
-function DiscoveryTab(){ return - Seed scan subnet.
- Classificazione host e object binding.
- Correlazione con relazioni inventory.
- SNMP collector.
- LLDP ingestion.
- Port mapping inference.
; }
-function TopologyTab(){ return - Vista fisica dispositivi.
- Vista logica host / VM / container / app.
- Layer networking e dipendenze.
- Drag & drop dei contenitori.
- Link fisici e logici cliccabili.
- Focus node e highlight dei vicini.
; }
-function OptionsTab(){ return - Utenti locali e ruoli applicativi.
- Disattivazione account inattivi o non più autorizzati.
- Storico accessi e audit trail amministrativo.
- Parametri workspace e branding dell'istanza.
- Configurazione discovery, inventory e policy future.
- Feature flags per moduli sperimentali.
- La sezione Servizi viene assorbita nel menu Options.
- Qui confluiranno terminale remoto, job runner e integrazioni di sistema.
- Ogni funzione sensibile dovrà essere protetta da permessi espliciti.
- Login obbligatorio per tutte le viste non pubbliche.
- MFA per admin e per funzioni ad alto impatto.
- Controlli server-side su ogni richiesta, deny-by-default e audit centralizzato.
; }
-function AppShell(){ const [activeTab,setActiveTab]=useState('inventory'); const currentTab=tabs.find((t)=>t.key===activeTab)!; return ; }
-export default function App(){ const [token,setToken]=useState(null); useEffect(()=>{const t=window.localStorage.getItem('nm_token'); if(t) setToken(t);},[]); const login=(nextToken:string)=>{window.localStorage.setItem('nm_token', nextToken); setToken(nextToken);}; const logout=()=>{window.localStorage.removeItem('nm_token'); setToken(null);}; if(!token) return ; return <>>; }
+
+function ShellCard({ title, children, tone = 'default' }: { title: string; children: React.ReactNode; tone?: 'default' | 'accent' | 'warning' }) {
+ return ;
+}
+function OverviewTab() { return - Frontend inventory collegato al backend.
- Tree gerarchico e context panel attivi.
- Navigazione tra parent, children e relazioni disponibile.
- Reintegro layout persistente completato.
- Roadmap di security e options introdotta.
- Preparazione vista topology multilivello.
- I moduli servizi confluiranno nel menu Options.
- L'accesso dovrà essere autenticato prima delle integrazioni remote.
- Serve hardening progressivo di sessione e permessi.
; }
+function DiscoveryTab() { return - Seed scan subnet.
- Classificazione host e object binding.
- Correlazione con relazioni inventory.
- SNMP collector.
- LLDP ingestion.
- Port mapping inference.
; }
+function TopologyTab() { return - Vista fisica dispositivi.
- Vista logica host / VM / container / app.
- Layer networking e dipendenze.
- Drag & drop dei contenitori.
- Link fisici e logici cliccabili.
- Focus node e highlight dei vicini.
; }
+function OptionsTab() { return - Utenti locali e ruoli applicativi.
- Disattivazione account inattivi o non più autorizzati.
- Storico accessi e audit trail amministrativo.
- Parametri workspace e branding dell'istanza.
- Configurazione discovery, inventory e policy future.
- Feature flags per moduli sperimentali.
- La sezione Servizi viene assorbita nel menu Options.
- Qui confluiranno terminale remoto, job runner e integrazioni di sistema.
- Ogni funzione sensibile dovrà essere protetta da permessi espliciti.
- Login obbligatorio per tutte le viste non pubbliche.
- MFA per admin e per funzioni ad alto impatto.
- Controlli server-side su ogni richiesta, deny-by-default e audit centralizzato.
; }
+
+function AppShell() {
+ const [activeTab, setActiveTab] = useState('inventory');
+ const currentTab = tabs.find((t) => t.key === activeTab)!;
+ return {currentTab.label}
{currentTab.description}
Book of truthAuth active
;
+}
+
+export default function App() {
+ const [loggedIn, setLoggedIn] = useState(false);
+
+ useEffect(() => {
+ const t = getToken();
+ if (t) setLoggedIn(true);
+ }, []);
+
+ const handleLogin = () => setLoggedIn(true);
+
+ const handleLogout = () => {
+ clearSession();
+ setLoggedIn(false);
+ };
+
+ if (!loggedIn) return ;
+ return <>>;
+}