-- ============================================================================
-- 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;
