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,