-- ============================================================================ -- Migration 027 - Supplier self-assessment portal (P3 supply chain) -- ---------------------------------------------------------------------------- -- Abilita l'invio di questionari di sicurezza ai fornitori (Art.21.2.d NIS2) -- e la compilazione tramite portale pubblico con token (senza login). -- -- supplier_questionnaires: traccia invio, token (hash), risposte, score. -- -- Idempotente. Rilanciabile. -- mysql -h localhost nis2_agile_db -e "source docs/sql/027_supplier_self_assessment.sql" -- ============================================================================ CREATE TABLE IF NOT EXISTS supplier_questionnaires ( id INT NOT NULL AUTO_INCREMENT, organization_id INT NOT NULL, supplier_id INT NOT NULL, token_hash CHAR(64) NOT NULL COMMENT 'SHA-256 del token inviato al fornitore', status ENUM('sent','completed','expired') NOT NULL DEFAULT 'sent', answers JSON NULL COMMENT 'Risposte del fornitore {question_key: value}', score INT NULL COMMENT 'Punteggio 0-100 calcolato dalle risposte', risk_level ENUM('low','medium','high','critical') NULL, sent_to_email VARCHAR(255) NULL, sent_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, completed_at DATETIME NULL, expires_at DATETIME NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uq_sq_token (token_hash), KEY idx_sq_org (organization_id), KEY idx_sq_supplier (supplier_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Questionari di self-assessment sicurezza inviati ai fornitori (Art.21.2.d)'; -- ROLLBACK: -- DROP TABLE IF EXISTS supplier_questionnaires;