[FEAT] Epic C / C1 — tabelle di configurazione framework NIS2 (mig.046)
Fondazione data-driven (direttiva utente: configurabile via DB, no JSON hardcoded). Fonte autoritativa: docs/simon/C1_Misure_Requisiti.xlsx + Vista (codifica Simon NON variata). Tabelle system-level, sola-lettura per l'utente, configurabili da super_admin: - cfg_nis2_ambiti (18 categorie NIST GV/ID/PR/DE/RS/RC) - cfg_nis2_misure (43 misure; 6 solo-essenziali; area politica a..p, applies_important/essential) - cfg_nis2_requisiti (116 requisiti; 92 importanti / 116 essenziali; ord N immutabile; FK misura/proc/risk) - cfg_nis2_procedure (42 procedure di default Proc.01-42) - cfg_nis2_rischi (84 rischi di default Risk.01-85) Seed via application/data/nis2_framework_seed.json (import-only; runtime legge le cfg_*). Applicato su prod (additivo, reversibile via DROP). Runner temp self-contained gia rimosso. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
690af688a0
commit
d37047987f
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,67 @@
|
|||||||
|
-- =====================================================================
|
||||||
|
-- 046 — NIS2 framework: TABELLE DI CONFIGURAZIONE (Epic C / C1)
|
||||||
|
-- =====================================================================
|
||||||
|
-- Fonte dati AUTORITATIVA: docs/simon/C1_Misure_Requisiti.xlsx +
|
||||||
|
-- C1_Vista_MisureRequisiti.xlsx (codifica NON variabile per direttiva Simon).
|
||||||
|
-- Seed via application/data/nis2_framework_seed.json (import-only).
|
||||||
|
--
|
||||||
|
-- Natura: SYSTEM-LEVEL (nessun organization_id), CANONICHE, sola-lettura per
|
||||||
|
-- l'utente; configurabili solo da super_admin/sistema. Il runtime legge QUESTE
|
||||||
|
-- tabelle (data-driven), NON file hardcoded.
|
||||||
|
--
|
||||||
|
-- ADDITIVO e REVERSIBILE: DROP TABLE cfg_nis2_requisiti, cfg_nis2_misure,
|
||||||
|
-- cfg_nis2_procedure, cfg_nis2_rischi, cfg_nis2_ambiti;
|
||||||
|
-- Runner-safe: solo CREATE TABLE IF NOT EXISTS (no DELIMITER/stored-proc).
|
||||||
|
-- =====================================================================
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS cfg_nis2_ambiti (
|
||||||
|
nist_code VARCHAR(16) NOT NULL,
|
||||||
|
nist_descr TEXT NOT NULL,
|
||||||
|
PRIMARY KEY (nist_code)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS cfg_nis2_procedure (
|
||||||
|
proc_code VARCHAR(16) NOT NULL,
|
||||||
|
proc_descr TEXT NOT NULL,
|
||||||
|
PRIMARY KEY (proc_code)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS cfg_nis2_rischi (
|
||||||
|
risk_code VARCHAR(16) NOT NULL,
|
||||||
|
risk_descr TEXT NOT NULL,
|
||||||
|
PRIMARY KEY (risk_code)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS cfg_nis2_misure (
|
||||||
|
misura_code VARCHAR(16) NOT NULL,
|
||||||
|
nist_code VARCHAR(16) NOT NULL,
|
||||||
|
area_politica VARCHAR(255) NOT NULL,
|
||||||
|
misura_descr TEXT NOT NULL,
|
||||||
|
ord INT NOT NULL,
|
||||||
|
applies_important TINYINT(1) NOT NULL DEFAULT 1,
|
||||||
|
applies_essential TINYINT(1) NOT NULL DEFAULT 1,
|
||||||
|
PRIMARY KEY (misura_code),
|
||||||
|
KEY idx_misura_nist (nist_code),
|
||||||
|
KEY idx_misura_ord (ord),
|
||||||
|
CONSTRAINT fk_misura_ambito FOREIGN KEY (nist_code) REFERENCES cfg_nis2_ambiti (nist_code)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS cfg_nis2_requisiti (
|
||||||
|
id INT NOT NULL AUTO_INCREMENT,
|
||||||
|
n INT NULL,
|
||||||
|
misura_code VARCHAR(16) NOT NULL,
|
||||||
|
requisito_code VARCHAR(32) NOT NULL,
|
||||||
|
requisito_descr TEXT NOT NULL,
|
||||||
|
proc_code VARCHAR(16) NULL,
|
||||||
|
risk_code VARCHAR(16) NULL,
|
||||||
|
applies_important TINYINT(1) NOT NULL DEFAULT 0,
|
||||||
|
applies_essential TINYINT(1) NOT NULL DEFAULT 0,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
UNIQUE KEY uq_req (misura_code, requisito_code),
|
||||||
|
KEY idx_req_misura (misura_code),
|
||||||
|
KEY idx_req_proc (proc_code),
|
||||||
|
KEY idx_req_risk (risk_code),
|
||||||
|
CONSTRAINT fk_req_misura FOREIGN KEY (misura_code) REFERENCES cfg_nis2_misure (misura_code),
|
||||||
|
CONSTRAINT fk_req_proc FOREIGN KEY (proc_code) REFERENCES cfg_nis2_procedure (proc_code),
|
||||||
|
CONSTRAINT fk_req_risk FOREIGN KEY (risk_code) REFERENCES cfg_nis2_rischi (risk_code)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||||
Reference in New Issue
Block a user