-- ============================================================================ -- Migration 029 - Connettori per-azienda (config NON segreta) -- ---------------------------------------------------------------------------- -- Configurazione dei connettori di Evidence Automation / ingestion per ogni -- organizzazione cliente. NESSUN SEGRETO in questa tabella: solo parametri -- non sensibili (tenant_id, client_id, region, scopes) + un ALIAS della chiave -- nel vault-steward. Il client_secret reale vive SOLO nel vault, caricato via -- CLI admin (il token applicativo nis2-app e read-only sul vault). -- -- Idempotente. Rilanciabile. -- mysql -h localhost nis2_agile_db -e "source docs/sql/029_org_connectors.sql" -- ============================================================================ CREATE TABLE IF NOT EXISTS org_connectors ( id INT NOT NULL AUTO_INCREMENT, organization_id INT NOT NULL, connector_type ENUM('m365','google','aws','azure','idp','edr','siem','ticketing') NOT NULL, display_name VARCHAR(120) NULL COMMENT 'Etichetta libera (es. "M365 sede Milano")', enabled TINYINT(1) NOT NULL DEFAULT 0, config JSON NULL COMMENT 'Parametri NON segreti: {tenant_id, client_id, region, scopes, base_url, ...}', vault_key_alias VARCHAR(190) NULL COMMENT 'Alias/nome della chiave segreta nel vault-steward (NON il segreto)', secret_status ENUM('not_set','pending','configured') NOT NULL DEFAULT 'not_set' COMMENT 'Stato del segreto nel vault (gestito fuori dal prodotto)', last_status ENUM('unknown','ok','error') NOT NULL DEFAULT 'unknown' COMMENT 'Esito ultimo test/uso connettore', last_checked_at DATETIME NULL, created_by INT NULL, created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uq_org_connector (organization_id, connector_type), KEY idx_oc_org (organization_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Config connettori per-org (Evidence Automation). NESSUN segreto: solo alias vault.'; -- ROLLBACK: -- DROP TABLE IF EXISTS org_connectors;