[UI] V2 completezza Bootstrap Italia: 11 pagine app -bi mancanti + companies + help.js + KB doc

Completa la copertura V2 al 100% delle pagine app autenticate (pre-swap).
Additivo: nessun file live HTML promosso ancora (lo swap e separato).

- 9 pagine app -bi: isms, acn-gap, normative, whistleblowing, kb, cross-analysis,
  service-continuity (doc standalone), guida, companies
- admin/{index,organizations,users}-bi.html (path corretti, common-bi.js)
- help.js: +89 righe help contestuale pagine V2 (vincolo fonti certe)
- docs/kb/V2_UI_NAVIGAZIONE.md: doc UI/navigazione V2 per la KB AI (ARIA)
- Verifica: tutte servite 200, 0 CDN/FontAwesome, sprite validi, parita ID

Prodotto via Workflow a trittici (run wf_c4962fbe-93f) + fix manuale companies/sprite.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-06-12 14:46:37 +02:00
co-authored by Claude Opus 4.8
parent 4d676f2e21
commit 36967f9452
15 changed files with 5646 additions and 3 deletions
+89 -2
View File
@@ -279,7 +279,7 @@ const HelpSystem = (function () {
items: [
'<strong>Early Warning (24 ore)</strong> - preallarme al CSIRT/autorita\' competente entro 24 ore dalla conoscenza dell\'incidente significativo.',
'<strong>Notifica (72 ore)</strong> - notifica completa entro 72 ore con valutazione iniziale, gravita\', impatto e indicatori di compromissione.',
'<strong>Report Finale (30 giorni)</strong> - relazione finale dettagliata entro un mese dalla notifica, con descrizione, causa, misure adottate e impatto transfrontaliero.',
'<strong>Report Finale (un mese)</strong> - relazione finale dettagliata entro un mese dalla notifica, con descrizione, causa, misure adottate e impatto transfrontaliero.',
'La piattaforma traccia automaticamente le scadenze e invia promemoria per ciascuna fase.'
]
},
@@ -940,6 +940,89 @@ const HelpSystem = (function () {
'Architettura multi-tenant: ogni organizzazione ha dati isolati',
'Ruolo consulente con accesso a più organizzazioni'
]
},
// ─── AI Cross-Analysis (portfolio consulente) ────────────────
'cross-analysis': {
title: 'Guida - AI Cross-Analysis Portfolio',
intro: 'La Cross-Analysis è uno strumento riservato a Consulenti e Super Admin: aggrega in forma anonimizzata i dati di compliance di tutte le organizzazioni del portfolio per individuare pattern comuni, gap ricorrenti e benchmark. Serve a orientare le priorità di intervento, NON sostituisce l\'analisi puntuale di ciascuna organizzazione né costituisce parere legale.',
sections: [
{
heading: 'A chi è riservata',
items: [
'L\'accesso richiede il ruolo <strong>Consultant</strong> oppure <strong>Super Admin</strong>: gli altri utenti vedono un messaggio di accesso negato.',
'I dati delle organizzazioni vengono mostrati in forma <strong>aggregata e anonimizzata</strong>, coerentemente con il principio di minimizzazione del trattamento.'
]
},
{
heading: 'Metriche di portfolio',
items: [
'<strong>Compliance medio</strong>, <strong>Rischi aperti</strong>, <strong>Formazione media</strong> e numero di <strong>Organizzazioni</strong>: una sintesi quantitativa del portfolio gestito.',
'<strong>Distribuzione settoriale</strong> e <strong>distribuzione degli score di compliance</strong>: aiutano a capire dove si concentra il lavoro.',
'Lo <strong>Score medio per categoria NIS2</strong> (dal più basso) evidenzia le famiglie di misure dell\'Art. 21.2 più deboli trasversalmente ai clienti.'
]
},
{
heading: 'Analisi AI del portfolio',
items: [
'L\'<strong>analisi AI</strong> elabora i dati aggregati per indicare i <strong>gap più frequenti</strong>, il livello di rischio medio, le categorie NIS2 deboli e dove serve un <strong>intervento urgente</strong>.',
'Il <strong>benchmark NIS2</strong> confronta le organizzazioni tra loro su base anonimizzata, per posizionare ciascun cliente rispetto al portfolio.',
'Le analisi precedenti sono consultabili nello storico, così da osservare l\'evoluzione nel tempo.',
'<em>Nota interpretativa:</em> i suggerimenti AI sono un supporto decisionale; la valutazione di conformità e le scelte di perimetro restano responsabilità documentata del consulente e dell\'organizzazione.'
]
}
],
references: [
'Direttiva (UE) 2022/2555 - Art. 21.2 (a-j) - le 10 famiglie di misure usate come dimensioni di benchmark',
'Direttiva (UE) 2022/2555 - Art. 20 - governance: la vista di portfolio supporta il monitoraggio del consulente',
'D.Lgs. 4 settembre 2024, n. 138 - recepimento NIS2 in Italia',
'Architettura multi-tenant: aggregazione anonimizzata, dati delle singole organizzazioni mai mescolati',
'Lo strumento è di supporto e benchmark, non sostituisce l\'autovalutazione ACN né un parere legale.'
]
},
// ─── Standard Continuità di Servizio (operativo) ─────────────
'service-continuity': {
title: 'Guida - Standard di Continuità del Servizio',
intro: 'Questa pagina documenta lo standard operativo con cui la piattaforma NIS2 Agile garantisce la continuità del proprio servizio (architettura, healthcheck, ripristino, manutenzione, rate limiting). È una pagina tecnico-informativa sull\'affidabilità del prodotto SaaS; NON descrive gli obblighi di continuità operativa della TUA organizzazione, che si gestiscono nei moduli Rischi, Asset e nel Modello Organizzativo SGSI.',
sections: [
{
heading: 'Architettura e healthcheck',
items: [
'I servizi (applicazione PHP+MySQL+Qdrant, database, vector DB) espongono endpoint di <strong>healthcheck</strong> monitorati: un\'anomalia genera un alert prima che l\'utente la percepisca.',
'Il <strong>deploy a caldo</strong> applica gli aggiornamenti senza interruzione percepibile del servizio.'
]
},
{
heading: 'Resilienza e degradazione graceful',
items: [
'Le chiamate critiche adottano <strong>retry con backoff esponenziale</strong> e riconnessione automatica per assorbire indisponibilità transitorie.',
'In caso di componente non disponibile, la piattaforma applica una <strong>degradazione graceful</strong>: il frontend mostra un fallback invece di bloccarsi.',
'Sono definiti tempi di recovery attesi per ciascun servizio.'
]
},
{
heading: 'Manutenzione automatica',
items: [
'Job pianificati garantiscono igiene operativa: <strong>monitoraggio disco</strong> (alert se &gt; 85%), <strong>cleanup</strong> periodico, <strong>rinnovo automatico dei certificati SSL</strong> (Let\'s Encrypt).',
'Il <strong>rate limiting</strong> (per IP, per chiave/utente, per email, sui webhook) protegge la disponibilità del servizio da abusi e picchi.'
]
},
{
heading: 'Relazione con la TUA continuità operativa',
items: [
'Questa pagina riguarda l\'affidabilità del fornitore (NIS2 Agile). I tuoi obblighi di <strong>continuità operativa e gestione dei backup</strong> ai sensi della NIS2 vanno valutati e documentati nei tuoi moduli (Rischi, Asset, Audit & Report, SGSI).',
'Puoi usare le informazioni qui presenti come elemento nella valutazione del rischio del fornitore (supply chain) NIS2 Agile.'
]
}
],
references: [
'Direttiva (UE) 2022/2555 - Art. 21.2 (c) - continuità operativa, gestione dei backup, ripristino in caso di disastro e gestione delle crisi',
'Direttiva (UE) 2022/2555 - Art. 21.2 (d) - sicurezza della catena di approvvigionamento (valutazione del fornitore SaaS)',
'D.Lgs. 4 settembre 2024, n. 138 - Art. 24 - misure di gestione del rischio',
'Determinazione ACN n. 164179 del 14/04/2025 - requisiti funzione Ripristino (RC) [da verificare il mapping puntuale con gli SLA del fornitore]',
'NOTA: pagina informativa sull\'affidabilità del prodotto; gli obblighi NIS2 di continuità restano in capo all\'organizzazione utente.'
]
}
};
@@ -983,7 +1066,11 @@ const HelpSystem = (function () {
'kb.html': 'kb',
'kb': 'kb',
'companies.html': 'companies',
'companies': 'companies'
'companies': 'companies',
'cross-analysis.html': 'cross-analysis',
'cross-analysis': 'cross-analysis',
'service-continuity.html': 'service-continuity',
'service-continuity': 'service-continuity'
};
// ── Stili CSS (iniettati una sola volta) ─────────────────────────