Files
2026-07-26 16:41:25 -05:00

41 lines
1.7 KiB
SQL

CREATE TABLE fleet_hosts (
installation_id TEXT PRIMARY KEY,
credential_hash BLOB NOT NULL,
registration_source_hash BLOB NOT NULL,
verified_at DATETIME,
first_seen_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
last_seen_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
last_success_at DATETIME,
last_event TEXT NOT NULL DEFAULT 'installed',
last_result TEXT NOT NULL DEFAULT 'success',
last_error_code TEXT NOT NULL DEFAULT '',
proxmenu_version TEXT NOT NULL DEFAULT '',
git_commit TEXT NOT NULL DEFAULT '',
pve_version TEXT NOT NULL DEFAULT '',
os_version TEXT NOT NULL DEFAULT '',
kernel_version TEXT NOT NULL DEFAULT '',
architecture TEXT NOT NULL DEFAULT '',
clustered INTEGER NOT NULL DEFAULT 0,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_fleet_hosts_last_seen ON fleet_hosts(last_seen_at);
CREATE INDEX idx_fleet_hosts_version ON fleet_hosts(proxmenu_version);
CREATE INDEX idx_fleet_hosts_registration_source
ON fleet_hosts(registration_source_hash, first_seen_at);
CREATE TABLE fleet_events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
installation_id TEXT NOT NULL,
event_type TEXT NOT NULL,
result TEXT NOT NULL,
proxmenu_version TEXT NOT NULL DEFAULT '',
error_code TEXT NOT NULL DEFAULT '',
duration_seconds INTEGER NOT NULL DEFAULT 0,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (installation_id) REFERENCES fleet_hosts(installation_id)
ON DELETE CASCADE
);
CREATE INDEX idx_fleet_events_host_created
ON fleet_events(installation_id, created_at);
CREATE INDEX idx_fleet_events_created ON fleet_events(created_at);