103 lines
3.4 KiB
MySQL
103 lines
3.4 KiB
MySQL
|
|
-- Datto RMM sync tables: sites, devices, alerts
|
||
|
|
-- Sites map to Autotask companies via autotask_company_id
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS datto_rmm_sites (
|
||
|
|
id INTEGER PRIMARY KEY,
|
||
|
|
uid TEXT UNIQUE NOT NULL,
|
||
|
|
account_uid TEXT,
|
||
|
|
name TEXT NOT NULL,
|
||
|
|
description TEXT,
|
||
|
|
notes TEXT,
|
||
|
|
on_demand BOOLEAN DEFAULT false,
|
||
|
|
autotask_company_id INTEGER REFERENCES companies(id),
|
||
|
|
autotask_company_name TEXT,
|
||
|
|
number_of_devices INTEGER DEFAULT 0,
|
||
|
|
number_of_online_devices INTEGER DEFAULT 0,
|
||
|
|
number_of_offline_devices INTEGER DEFAULT 0,
|
||
|
|
portal_url TEXT,
|
||
|
|
synced_at TIMESTAMPTZ DEFAULT NOW(),
|
||
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||
|
|
updated_at TIMESTAMPTZ DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS datto_rmm_devices (
|
||
|
|
id INTEGER PRIMARY KEY,
|
||
|
|
uid TEXT UNIQUE NOT NULL,
|
||
|
|
site_id INTEGER REFERENCES datto_rmm_sites(id),
|
||
|
|
site_uid TEXT,
|
||
|
|
site_name TEXT,
|
||
|
|
hostname TEXT,
|
||
|
|
description TEXT,
|
||
|
|
device_type_category TEXT,
|
||
|
|
device_type TEXT,
|
||
|
|
operating_system TEXT,
|
||
|
|
domain TEXT,
|
||
|
|
int_ip_address TEXT,
|
||
|
|
ext_ip_address TEXT,
|
||
|
|
last_logged_in_user TEXT,
|
||
|
|
last_seen TIMESTAMPTZ,
|
||
|
|
last_reboot TIMESTAMPTZ,
|
||
|
|
last_audit_date TIMESTAMPTZ,
|
||
|
|
creation_date TIMESTAMPTZ,
|
||
|
|
online BOOLEAN DEFAULT false,
|
||
|
|
suspended BOOLEAN DEFAULT false,
|
||
|
|
deleted BOOLEAN DEFAULT false,
|
||
|
|
reboot_required BOOLEAN DEFAULT false,
|
||
|
|
a64_bit BOOLEAN DEFAULT true,
|
||
|
|
cag_version TEXT,
|
||
|
|
display_version TEXT,
|
||
|
|
antivirus_product TEXT,
|
||
|
|
antivirus_status TEXT,
|
||
|
|
patch_status TEXT,
|
||
|
|
patches_approved_pending INTEGER DEFAULT 0,
|
||
|
|
patches_not_approved INTEGER DEFAULT 0,
|
||
|
|
patches_installed INTEGER DEFAULT 0,
|
||
|
|
software_status TEXT,
|
||
|
|
portal_url TEXT,
|
||
|
|
web_remote_url TEXT,
|
||
|
|
warranty_date TIMESTAMPTZ,
|
||
|
|
snmp_enabled BOOLEAN DEFAULT false,
|
||
|
|
device_class TEXT,
|
||
|
|
network_probe BOOLEAN DEFAULT false,
|
||
|
|
udf JSONB,
|
||
|
|
synced_at TIMESTAMPTZ DEFAULT NOW(),
|
||
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||
|
|
updated_at TIMESTAMPTZ DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS datto_rmm_alerts (
|
||
|
|
alert_uid TEXT PRIMARY KEY,
|
||
|
|
device_uid TEXT,
|
||
|
|
device_name TEXT,
|
||
|
|
site_uid TEXT,
|
||
|
|
site_name TEXT,
|
||
|
|
priority TEXT,
|
||
|
|
alert_context JSONB,
|
||
|
|
alert_monitor_info JSONB,
|
||
|
|
diagnostics TEXT,
|
||
|
|
resolved BOOLEAN DEFAULT false,
|
||
|
|
resolved_by TEXT,
|
||
|
|
resolved_on TIMESTAMPTZ,
|
||
|
|
muted BOOLEAN DEFAULT false,
|
||
|
|
ticket_number TEXT,
|
||
|
|
autoresolve_mins INTEGER,
|
||
|
|
response_actions JSONB,
|
||
|
|
timestamp TIMESTAMPTZ NOT NULL,
|
||
|
|
synced_at TIMESTAMPTZ DEFAULT NOW(),
|
||
|
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||
|
|
updated_at TIMESTAMPTZ DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
-- Indexes
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_datto_rmm_sites_uid ON datto_rmm_sites(uid);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_datto_rmm_sites_company ON datto_rmm_sites(autotask_company_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_datto_rmm_devices_uid ON datto_rmm_devices(uid);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_datto_rmm_devices_site ON datto_rmm_devices(site_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_datto_rmm_devices_hostname ON datto_rmm_devices(hostname);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_datto_rmm_devices_online ON datto_rmm_devices(online);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_datto_rmm_alerts_device ON datto_rmm_alerts(device_uid);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_datto_rmm_alerts_site ON datto_rmm_alerts(site_uid);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_datto_rmm_alerts_resolved ON datto_rmm_alerts(resolved);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_datto_rmm_alerts_timestamp ON datto_rmm_alerts(timestamp);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_datto_rmm_alerts_ticket ON datto_rmm_alerts(ticket_number);
|