kundencenter/migrations/002_connectors_resources.sql

41 lines
1.6 KiB
MySQL
Raw Permalink Normal View History

-- Connector-Instanzen (Verbindungen zu Providern) und synchronisierte Ressourcen
CREATE TABLE connector_instances (
id CHAR(36) PRIMARY KEY,
connector_key VARCHAR(50) NOT NULL,
name VARCHAR(100) NOT NULL UNIQUE,
config_json JSON NOT NULL,
secrets_enc TEXT NULL,
enabled TINYINT(1) NOT NULL DEFAULT 1,
sync_interval_sec INT NOT NULL DEFAULT 300,
health ENUM('unknown','ok','down') NOT NULL DEFAULT 'unknown',
health_message VARCHAR(300) NULL,
capabilities_json JSON NULL,
last_ok_at DATETIME(3) NULL,
last_sync_at DATETIME(3) NULL,
last_error VARCHAR(500) NULL,
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)
);
-- Ressource = lokaler Spiegel eines Provider-Objekts (Lizenz, Hosting-Konto, ...). Provider-Rohdaten bleiben im Connector.
CREATE TABLE resources (
id CHAR(36) PRIMARY KEY,
instance_id CHAR(36) NOT NULL,
external_ref VARCHAR(100) NOT NULL,
type VARCHAR(30) NOT NULL,
name VARCHAR(300) NOT NULL,
state ENUM('active','suspended','expired','error','unknown') NOT NULL DEFAULT 'unknown',
org_id CHAR(36) NULL,
valid_from DATETIME(3) NULL,
valid_until DATETIME(3) NULL,
data_json JSON NULL,
customer_actions JSON NOT NULL DEFAULT '[]',
synced_at DATETIME(3) NOT NULL,
missing_since DATETIME(3) NULL,
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
UNIQUE KEY uq_instance_ref (instance_id, external_ref),
INDEX (org_id),
FOREIGN KEY (instance_id) REFERENCES connector_instances(id) ON DELETE CASCADE,
FOREIGN KEY (org_id) REFERENCES organizations(id) ON DELETE SET NULL
);