feat: Autotask webhook integration, TicketNotes, Datto RMM, workflow engine, Veeam agents/alarms, AI triage, misc improvements
This commit is contained in:
parent
347cf4e298
commit
d7c3dc7168
74 changed files with 37844 additions and 322 deletions
102
migrations/027_create_datto_rmm_tables.sql
Normal file
102
migrations/027_create_datto_rmm_tables.sql
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
-- 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);
|
||||
Loading…
Add table
Add a link
Reference in a new issue