Integra la spec di Simon per la pagina Rischi con le correzioni normative (parere nis2-expert + iso-27001-expert) applicate come eccezioni motivate: - 12 colonne: Codice (link → Misure e Requisiti), Descrizione (RISCHIO DEFAULT = cfg_nis2_rischi.risk_descr), VALUTAZIONE RISCHIO INERENTE (P/I/PxI), Alert, Rischio Inerente, VALUTAZIONE RISCHIO RESIDUO (P/I/PxI), Esito residuo, Rischio Residuo. - Editing INLINE di Probabilità/Impatto (1-5), salvataggio automatico. - Alert a bande (15-25 Prioritaria / 9-14 Critica / 3-8 Necessaria / 1-2 Suggerita) → popup azioni + "crea azione" (tabella requisito_actions, seme Modulo Azioni). - Eccezione #1: il rischio RESIDUO NON aggiorna in automatico lo STATO DI CONFORMITÀ del requisito (piani distinti). Col.11 "Esito residuo" = flag Rivalutare/Adeguato; conformità esplicita. - Eccezione #3: banda 13-14 inclusa in "Critica" (9-14). "Danno €" → "Impatto" (1-5). Soglie = metodo interno (ISO 27001 §6.1.2), non obbligo (help/UI lo dichiarano). Backend: mig 067; derivedList (+risk_descr +residuo), setState (+residuo), requisitoActions list/create. help.js + i18n IT/EN. Cache-buster api/i18n/help 20260730a. Prossima mig=068. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
26 lines
1.6 KiB
SQL
26 lines
1.6 KiB
SQL
-- 067_requisito_residual_and_actions.sql — Integrazione prototipo "Modulo Azioni" (Simon), Fase 1.
|
|
-- (1) org_requisito_state += valutazione del RISCHIO RESIDUO (dopo il trattamento):
|
|
-- residual_likelihood / residual_impact (1-5). L'inerente resta likelihood/impact (mig 066).
|
|
-- (2) requisito_actions: azioni collegate al rischio-da-requisito (seme del modulo Azioni).
|
|
-- NB normativo: NON tocca lo stato di conformità del requisito (org_requisito_state.stato),
|
|
-- che resta un atto esplicito di attuazione+evidenza. Vedi eccezione #1 (parere nis2-expert).
|
|
-- Additiva e idempotente. Runner: application/cli/migrate_067_requisito_residual_and_actions.php
|
|
|
|
ALTER TABLE org_requisito_state
|
|
ADD COLUMN residual_likelihood TINYINT NULL COMMENT 'Probabilita residua 1-5 (dopo trattamento)' AFTER impact,
|
|
ADD COLUMN residual_impact TINYINT NULL COMMENT 'Impatto residuo 1-5 (dopo trattamento)' AFTER residual_likelihood;
|
|
|
|
CREATE TABLE IF NOT EXISTS requisito_actions (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
organization_id INT NOT NULL,
|
|
requisito_id INT NOT NULL,
|
|
risk_code VARCHAR(64) NULL,
|
|
description TEXT NOT NULL,
|
|
status ENUM('bozza','in_corso','archiviata') NOT NULL DEFAULT 'bozza',
|
|
created_by INT NULL,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
INDEX idx_reqact_org_req (organization_id, requisito_id, created_at),
|
|
INDEX idx_reqact_org (organization_id, created_at)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|