diff --git a/public/simulate.html b/public/simulate.html
index 1da0b01..a52ac31 100644
--- a/public/simulate.html
+++ b/public/simulate.html
@@ -219,6 +219,11 @@
B2B License Provisioning
Invite token → org + user + API key creati atomicamente. SSO JWT.
+
+
BIG
+
Big Simulation — 10 Aziende
+
Copertura totale: 18 fasi, 800 risposte assessment, 55+ rischi, incidenti Art.23, NCR/CAPA, whistleblowing, audit chain, Services API.
+
@@ -297,6 +302,7 @@ const SIM_LABELS = {
sim04: 'SIM-04 Whistleblowing',
sim05: 'SIM-05 Audit Chain',
sim06: 'SIM-06 B2B License',
+ big: 'BIG — 10 Aziende (18 fasi)',
};
// ── Selezione scenario ────────────────────────────────────────────────────
@@ -447,20 +453,24 @@ function runSimulation() {
sim04: 'SIM-04 — Whistleblowing SCADA',
sim05: 'SIM-05 — Audit Trail Hash Chain',
sim06: 'SIM-06 — B2B License Provisioning',
+ big: 'BIG — 10 Aziende, 18 Fasi, Copertura Totale',
};
const scenarioName = labels[selectedSim] || selectedSim;
- const resetNote = selectedSim !== 'sim06'
+ const resetNote = (selectedSim !== 'sim06' && selectedSim !== 'big')
? '\n↺ I dati demo precedenti verranno ripuliti automaticamente.'
- : '\n(SIM-06 è indipendente — nessun reset automatico)';
+ : selectedSim === 'big'
+ ? '\n↺ Auto-reset dei dati demo incluso nella FASE 0.'
+ : '\n(SIM-06 è indipendente — nessun reset automatico)';
+ const bigNote = selectedSim === 'big'
+ ? '\n\n10 aziende: InfraTech, MedSalute, DistribuzionePlus, BancaRegionale,\nAquaPura, LogisticaRapida, SmartCity, EduDigital, AgriTech, ManufacturingPro\n\n⚠ Target: ✓200+ — Durata stimata: ~15-20 minuti'
+ : '';
if (!confirm(
'Avvia Simulazione NIS2 Agile?\n\n' +
- '▸ ' + scenarioName + '\n\n' +
- '• DataCore S.r.l. (IT/Cloud - Essential)\n' +
- '• MedClinic Italia S.p.A. (Sanità - Important)\n' +
- '• EnerNet Distribuzione S.r.l. (Energia - Critical)\n' +
- resetNote + '\n' +
- '\nDurata stimata: ~8-12 minuti'
+ '▸ ' + scenarioName +
+ (selectedSim !== 'big' ? '\n\n• DataCore S.r.l. (IT/Cloud - Essential)\n• MedClinic Italia S.p.A. (Sanità - Important)\n• EnerNet Distribuzione S.r.l. (Energia - Critical)' : '') +
+ bigNote + resetNote + '\n' +
+ (selectedSim !== 'big' ? '\nDurata stimata: ~8-12 minuti' : '')
)) return;
if (evtSource) { evtSource.close(); evtSource = null; }
@@ -473,7 +483,9 @@ function runSimulation() {
document.getElementById('statsGrid').style.display = 'none';
document.getElementById('consoleTitle').textContent = 'NIS2 Agile Simulator v2.0 — ' + (SIM_LABELS[selectedSim] || selectedSim);
- const url = `simulate-nis2.php?sim=${selectedSim}&t=${Date.now()}`;
+ const url = selectedSim === 'big'
+ ? `simulate-nis2-big.php?t=${Date.now()}`
+ : `simulate-nis2.php?sim=${selectedSim}&t=${Date.now()}`;
evtSource = new EventSource(url);
let phaseCount = 0;
diff --git a/simulate-nis2-big.php b/simulate-nis2-big.php
index 57b6575..86125bf 100644
--- a/simulate-nis2-big.php
+++ b/simulate-nis2-big.php
@@ -1307,7 +1307,7 @@ foreach ($COMPANIES as $slug => $comp) {
if ($uid) {
$assignRes = api('POST', '/training/assign', [
'course_id' => $courseId,
- 'user_id' => $uid,
+ 'user_ids' => [$uid],
'due_date' => date('Y-m-d', strtotime('+30 days')),
], $jwt, $orgId);
if (!empty($assignRes['success'])) {