From 51dc757352845b1708a2b292a0a364194fd4d0b9 Mon Sep 17 00:00:00 2001 From: DevEnv nis2-agile Date: Sun, 21 Jun 2026 11:51:19 +0200 Subject: [PATCH] [CLIENT] Nuova Agile: Determinazione di applicabilita NIS2 formalizzata + chiusura NC maggiore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dati Direzione: fatturato 0,9M€(2026)/1,4M€(2027), ~12 persone → SOTTO-SOGLIA. Cloud provider (Allegato I) ma soggetto al cap dimensionale → NON obbligata per legge; la Direzione DELIBERA l'adozione VOLONTARIA integrale delle misure da soggetto 'importante'. Org: turnover+voluntary_compliance=1+designation_basis=voluntary. Manuale sez.11 'Caveat' → 'Determinazione di applicabilita NIS2' (+snapshot). NCR-9001 (maggiore) CHIUSA + CAPA-1010 completata. DPO: esterno deliberato (nominativo in corso) → NCR-9005 resta in correzione. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../build_nuova_agile_p10_determinazione.php | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 application/cli/build_nuova_agile_p10_determinazione.php diff --git a/application/cli/build_nuova_agile_p10_determinazione.php b/application/cli/build_nuova_agile_p10_determinazione.php new file mode 100644 index 0000000..d3bb128 --- /dev/null +++ b/application/cli/build_nuova_agile_p10_determinazione.php @@ -0,0 +1,51 @@ +prepare($s);$st->execute($a);} +$NOW='2026-06-20 17:00:00'; $TODAY='2026-06-20'; $ORGID=996003; + +/* 1) Org: fatturato + adesione volontaria deliberata (sotto-soglia) */ +ex($pdo,"UPDATE organizations SET annual_turnover_eur=900000, voluntary_compliance=1, designation_basis='voluntary', + entity_type='important', updated_at=? WHERE id=?",[$NOW,$ORGID]); +echo "ORG aggiornata: fatturato 900k, voluntary_compliance=1, designation_basis=voluntary, entity_type=important\n"; + +/* 2) DPO: consulente esterno deliberato (nominativo in corso) */ +ex($pdo,"UPDATE org_roles SET holder_user_id=NULL, + description='Presidio GDPR e ISO 27018 (dati personali nel cloud), DPIA, gestione richieste interessati. DPO affidato a CONSULENTE ESTERNO (deliberato dalla Direzione il 20/06/2026; acquisizione nominativo e lettera d\'incarico in corso). Coordinamento ad interim del RSGSI nelle more.', + updated_at=? WHERE organization_id=? AND role_name LIKE 'Referente Protezione Dati%'",[$NOW,$ORGID]); +echo "DPO role aggiornato (consulente esterno deliberato)\n"; + +/* 3) Manuale (id 37): sostituisci la sez. 11 'Caveat' con la Determinazione formalizzata + snapshot */ +$new = '

11. Determinazione di applicabilità NIS2

' + .'

Determinazione formalizzata dalla Direzione il 20/06/2026. Sulla base dei dati dimensionali (fatturato 2026 circa 0,9 M€, previsione 2027 circa 1,4 M€; 9 dipendenti e 2 collaboratori esterni a P.IVA), l\'Azienda è una impresa piccola/micro, SOTTO le soglie dimensionali NIS2 (soggetto obbligato = impresa media o grande: ≥50 addetti oppure fatturato/bilancio >10 M€). L\'attività rientra tra i fornitori di servizi di cloud computing (Allegato I — infrastrutture digitali); per i provider cloud vale comunque il cap dimensionale, pertanto un\'azienda sotto-soglia non è soggetto obbligato per legge. Un eventuale obbligo per un soggetto sotto-soglia potrebbe derivare unicamente da una designazione dell\'ACN ai sensi dell\'art. 3, comma 9, del D.Lgs. 138/2024 (es. unico fornitore nazionale, impatto sistemico), allo stato non riscontrata.

' + .'

Decisione della Direzione: pur non essendo soggetto obbligato, l\'Azienda delibera l\'adozione VOLONTARIA e integrale delle misure di un soggetto “importante”, per rigore di sicurezza e per soddisfare i requisiti di supply chain dei clienti (alcuni dei quali soggetti NIS2 obbligati, art. 24 D.Lgs. 138/2024). La presente determinazione è riesaminata al superamento delle soglie dimensionali, al cambiamento della categoria di servizio o a fronte di una designazione ACN.

' + .'

Quadro di riferimento: Direttiva (UE) 2022/2555 recepita dal D.Lgs. 138/2024 — art. 23 (governance e organi di gestione), art. 24 (misure di gestione del rischio), art. 25 (notifica al CSIRT: pre-allarme entro 24 ore, notifica entro 72 ore, relazione finale entro 1 mese). Le misure di dettaglio sono definite dalle Determinazioni ACN. Le norme ISO citate sono buone prassi, non obblighi di legge.

'; + +$b=$pdo->query("SELECT body_html FROM isms_documents WHERE id=37")->fetchColumn(); +$nb=preg_replace('#

11\. Caveat sulla classificazione NIS2

.*?(?=

)#s',$new,$b,1,$cnt); +if($cnt){ + ex($pdo,"UPDATE isms_documents SET body_html=?, updated_at=? WHERE id=37",[$nb,$NOW]); + $vid=$pdo->query("SELECT id FROM isms_document_versions WHERE document_id=37 AND version='2.0' ORDER BY id DESC LIMIT 1")->fetchColumn(); + if($vid) ex($pdo,"UPDATE isms_document_versions SET body_html=? WHERE id=?",[$nb,$vid]); + echo "MANUALE: sez.11 sostituita con la Determinazione formalizzata (+ snapshot)\n"; +} else echo "!! sezione caveat non trovata nel Manuale (verificare)\n"; + +/* 4) Chiudi NC maggiore NCR-9001 + CAPA-1010 */ +$rc='Determinazione di applicabilità formalizzata dalla Direzione il 20/06/2026: azienda SOTTO-SOGLIA (fatturato <10 M€, <50 addetti); cloud provider (Allegato I) soggetto al cap dimensionale → non obbligata per legge; la Direzione delibera l\'adozione volontaria integrale delle misure da soggetto "importante". Dati dimensionali acquisiti. Eventuale obbligo solo via designazione ACN (art.3 c.9), non riscontrata.'; +ex($pdo,"UPDATE non_conformities SET status='closed', actual_close_date=?, root_cause_analysis=?, updated_at=? WHERE id=16",[$TODAY,$rc,$NOW]); +ex($pdo,"UPDATE capa_actions SET status='completed', completion_date=?, is_effective=1, effectiveness_review='Determinazione formalizzata e documentata nel Manuale (sez.11); classificazione allineata (adesione volontaria deliberata).', updated_at=? WHERE id=3",[$TODAY,$NOW]); +echo "NCR-9001 (maggiore) CHIUSA + CAPA-1010 completata\n"; + +/* 5) NC DPO NCR-9005: decisione presa (esterno), nominativo in corso → resta in correzione */ +ex($pdo,"UPDATE non_conformities SET root_cause_analysis='Ruolo DPO non coperto da figura formalmente nominata. Decisione della Direzione (20/06/2026): affidamento a CONSULENTE ESTERNO; acquisizione nominativo e lettera d\'incarico in corso. Coordinamento ad interim del RSGSI.', updated_at=? WHERE id=20",[$NOW]); +ex($pdo,"UPDATE capa_actions SET title='Nominare formalmente il DPO esterno (deliberato): acquisire nominativo e lettera d\'incarico', updated_at=? WHERE id=7",[$NOW]); +echo "NCR-9005 (DPO) aggiornata: esterno deliberato, nomina in corso\n"; + +echo "\nFASE 10 (determinazione) OK\n";