[FEAT] Epic C / C3 — rimosso modulo 'Analisi GAP ACN' (superato da C1)

Simon C3: l'analisi gap ACN non è un artefatto normativo e va eliminata; la conformità
emerge da C1 (elenco Misure/Requisiti + valutazione per requisito in org_requisito_state).

Ricognizione → migrazione → backup → rimozione (sicuro, 0 perdite):
- Tabelle acn_assessments/acn_assessment_responses VUOTE (0 righe) -> droppate (mig.049,
  guard anti-drop se >0 righe). Ricreabili da 036. Nessun dato utente perso.
- Integrazione lg231: /api/services/gap-analysis legge 'assessments' generale, NON il modulo
  ACN -> intatta. Verificato.
- RaciController ripuntato su cfg_nis2_misure (fonte canonica) al posto di acn_measures.json
  (rimosso); validazione measure_code verificata (/raci/objects?type=measure -> 43 misure).
Rimossi: AcnAssessmentController, public/acn-gap.html, application/data/acn_measures.json,
routing acn-gap, voci sidebar (common.js + common-bi.js), metodi api.js acn*, sezione help 'acn',
chiavi i18n acn.*, mapping demo-selectors. Tour demo step 3 RIPUNTATO su misure-requisiti
(no step rotto, 10 step). Sidebar BI ora mostra 'Misure e Requisiti' (gap di common-bi.js sanato).
Verifiche prod: /acn-gap.html 404, /api/acn-gap/* 404, /misure-requisiti 200, RaciController OK.
Cache-buster ?v=20260624, version 1.18.3, SW v1.18.3.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
DevEnv nis2-agile
2026-06-16 19:24:29 +02:00
co-authored by Claude Opus 4.8
parent 45e6c3599c
commit e281aa4970
50 changed files with 147 additions and 2506 deletions
-17
View File
@@ -19,24 +19,7 @@ const I18n = (function () {
'nav.main': { it: 'Principale', en: 'Main' },
'nav.dashboard': { it: 'Dashboard', en: 'Dashboard' },
'nav.gap_analysis': { it: 'Gap Analysis', en: 'Gap Analysis' },
'nav.acn_gap': { it: 'Gap Analysis ACN', en: 'ACN Gap Analysis' },
'nav.framework': { it: 'Misure e Requisiti', en: 'Measures & Requirements' },
// Gap Analysis ACN (Determinazione 164179/2025)
'acn.title': { it: 'Gap Analysis ACN (misure di base)', en: 'ACN Gap Analysis (baseline measures)' },
'acn.ai': { it: 'Analisi AI dei gap', en: 'AI gap analysis' },
'acn.intro.title': { it: 'Conformità puntuale alla Determinazione ACN 164179/2025.', en: 'Detailed compliance with ACN Determination 164179/2025.' },
'acn.intro.body': { it: "Questa analisi va oltre le 10 misure generiche dell'Art. 21: valuta le misure e i requisiti puntuali stabiliti dall'ACN per i soggetti NIS. Il perimetro dipende dalla classificazione del soggetto (importante o essenziale).", en: 'This analysis goes beyond the 10 generic Art. 21 measures: it assesses the specific measures and requirements set by ACN for NIS entities. The scope depends on the entity classification (important or essential).' },
'acn.new': { it: 'Nuova Gap Analysis ACN', en: 'New ACN Gap Analysis' },
'acn.catalog.btn': { it: 'Consulta il catalogo dei requisiti', en: 'Browse the requirements catalog' },
'acn.catalog.title': { it: 'Catalogo requisiti ACN applicabili', en: 'Applicable ACN requirements catalog' },
'acn.answered': { it: 'requisiti con risposta', en: 'requirements answered' },
'acn.complete': { it: 'Calcola punteggio e completa', en: 'Calculate score and complete' },
'acn.results.title': { it: 'Esito Gap Analysis ACN', en: 'ACN Gap Analysis result' },
'acn.results.overall': { it: 'Punteggio complessivo di conformità (0-100)', en: 'Overall compliance score (0-100)' },
'acn.results.byfunc': { it: 'Punteggio per funzione (Framework Nazionale)', en: 'Score by function (National Framework)' },
'acn.results.ai': { it: 'Analisi AI dei gap', en: 'AI gap analysis' },
'acn.results.gaps': { it: "Requisiti non conformi (piano d'azione)", en: 'Non-compliant requirements (action plan)' },
'acn.backstart': { it: "Torna all'inizio", en: 'Back to start' },
// ── Modello Organizzativo SGSI (ISO 27001) ──
'nav.isms': { it: 'Modello SGSI (ISO 27001)', en: 'ISMS Model (ISO 27001)' },
'isms.title': { it: 'Modello Organizzativo SGSI (ISO 27001)', en: 'ISMS Organizational Model (ISO 27001)' },