From 4b240d70d0fbc2143cc657f78f932d003ad5d406 Mon Sep 17 00:00:00 2001 From: Denozordec Date: Tue, 12 May 2026 15:17:28 +0700 Subject: [PATCH] chore: add server and server_snapshots tables to database schema - Introduced new tables for managing server configurations and snapshots, enhancing data organization and retrieval. - The servers table includes fields for server details, while the server_snapshots table captures performance metrics and status updates. --- backend/src/db/index.ts | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/backend/src/db/index.ts b/backend/src/db/index.ts index 187e785..ff8f29f 100644 --- a/backend/src/db/index.ts +++ b/backend/src/db/index.ts @@ -11,6 +11,45 @@ const sqlite = new Database(env.DATABASE_PATH) sqlite.pragma("journal_mode = WAL") sqlite.pragma("foreign_keys = ON") sqlite.exec(` +CREATE TABLE IF NOT EXISTS servers ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL DEFAULT '', + host TEXT NOT NULL, + port INTEGER NOT NULL DEFAULT 443, + username TEXT NOT NULL DEFAULT 'admin', + password TEXT NOT NULL DEFAULT '', + use_ssl INTEGER NOT NULL DEFAULT 1, + verify_ssl INTEGER NOT NULL DEFAULT 0, + type TEXT NOT NULL DEFAULT 'home-router', + site TEXT NOT NULL DEFAULT '', + country TEXT NOT NULL DEFAULT '', + asn TEXT NOT NULL DEFAULT '', + comment TEXT NOT NULL DEFAULT '', + enabled INTEGER NOT NULL DEFAULT 1, + lan_subnet TEXT NOT NULL DEFAULT '', + wan_uplinks TEXT NOT NULL DEFAULT '[]', + created_at TEXT NOT NULL DEFAULT (datetime('now')), + updated_at TEXT NOT NULL DEFAULT (datetime('now')) +); + +CREATE TABLE IF NOT EXISTS server_snapshots ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + server_id INTEGER NOT NULL, + polled_at TEXT NOT NULL, + status TEXT NOT NULL, + latency_ms REAL, + ros_version TEXT, + board_name TEXT, + uptime TEXT, + cpu_load INTEGER, + free_memory INTEGER, + total_memory INTEGER, + identity_name TEXT, + raw_interfaces TEXT, + raw_ip_addresses TEXT, + FOREIGN KEY (server_id) REFERENCES servers(id) ON DELETE CASCADE +); + CREATE TABLE IF NOT EXISTS filter_rules ( id INTEGER PRIMARY KEY AUTOINCREMENT, server_id INTEGER NOT NULL,