feat: 初始化项目基础架构和核心功能
- 添加项目基础结构:Cargo.toml、.gitignore、设备UID和密钥文件 - 实现前端Vue3项目结构:路由、登录页面、设备管理页面 - 添加核心协议定义(crates/protocol):设备状态、资产、USB事件等 - 实现客户端监控模块:系统状态收集、资产收集 - 实现服务端基础API和插件系统 - 添加数据库迁移脚本:设备管理、资产跟踪、告警系统等 - 实现前端设备状态展示和基本交互 - 添加使用时长统计和水印功能插件
This commit is contained in:
70
migrations/001_init.sql
Normal file
70
migrations/001_init.sql
Normal file
@@ -0,0 +1,70 @@
|
||||
-- 001_init.sql: Core tables (users, devices, device_status)
|
||||
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
username TEXT NOT NULL UNIQUE,
|
||||
password TEXT NOT NULL,
|
||||
role TEXT NOT NULL DEFAULT 'admin' CHECK(role IN ('admin', 'viewer')),
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS devices (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
device_uid TEXT NOT NULL UNIQUE,
|
||||
hostname TEXT NOT NULL,
|
||||
ip_address TEXT NOT NULL,
|
||||
mac_address TEXT,
|
||||
os_version TEXT,
|
||||
client_version TEXT,
|
||||
device_secret TEXT, -- HMAC key for message authentication
|
||||
status TEXT NOT NULL DEFAULT 'offline' CHECK(status IN ('online', 'offline')),
|
||||
last_heartbeat TEXT,
|
||||
registered_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
group_name TEXT DEFAULT 'default'
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS device_status (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
device_uid TEXT NOT NULL REFERENCES devices(device_uid) ON DELETE CASCADE,
|
||||
cpu_usage REAL,
|
||||
memory_usage REAL,
|
||||
memory_total_mb INTEGER,
|
||||
disk_usage REAL,
|
||||
disk_total_mb INTEGER,
|
||||
network_rx_rate INTEGER,
|
||||
network_tx_rate INTEGER,
|
||||
running_procs INTEGER,
|
||||
top_processes TEXT,
|
||||
reported_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
UNIQUE(device_uid)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS device_status_history (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
device_uid TEXT NOT NULL REFERENCES devices(device_uid) ON DELETE CASCADE,
|
||||
cpu_usage REAL,
|
||||
memory_usage REAL,
|
||||
disk_usage REAL,
|
||||
network_rx_rate INTEGER,
|
||||
network_tx_rate INTEGER,
|
||||
running_procs INTEGER,
|
||||
reported_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS device_groups (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT NOT NULL UNIQUE,
|
||||
description TEXT,
|
||||
parent_id INTEGER REFERENCES device_groups(id),
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
|
||||
-- Insert default group
|
||||
INSERT OR IGNORE INTO device_groups (name, description) VALUES ('default', 'Default device group');
|
||||
|
||||
-- Indexes
|
||||
CREATE INDEX IF NOT EXISTS idx_devices_status ON devices(status);
|
||||
CREATE INDEX IF NOT EXISTS idx_device_status_uid ON device_status(device_uid);
|
||||
CREATE INDEX IF NOT EXISTS idx_status_history_device_time ON device_status_history(device_uid, reported_at);
|
||||
CREATE INDEX IF NOT EXISTS idx_status_history_time ON device_status_history(reported_at);
|
||||
Reference in New Issue
Block a user