wireguard-ui/store/sqlitedb/schema.sql

86 lines
3.3 KiB
SQL

CREATE TABLE IF NOT EXISTS users (
username TEXT PRIMARY KEY,
email TEXT NOT NULL DEFAULT '',
display_name TEXT NOT NULL DEFAULT '',
oidc_sub TEXT UNIQUE,
admin INTEGER NOT NULL DEFAULT 0,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS clients (
id TEXT PRIMARY KEY,
private_key TEXT NOT NULL DEFAULT '',
public_key TEXT NOT NULL DEFAULT '',
preshared_key TEXT NOT NULL DEFAULT '',
name TEXT NOT NULL DEFAULT '',
email TEXT NOT NULL DEFAULT '',
telegram_userid TEXT NOT NULL DEFAULT '',
subnet_ranges TEXT NOT NULL DEFAULT '[]',
allocated_ips TEXT NOT NULL DEFAULT '[]',
allowed_ips TEXT NOT NULL DEFAULT '[]',
extra_allowed_ips TEXT NOT NULL DEFAULT '[]',
endpoint TEXT NOT NULL DEFAULT '',
additional_notes TEXT NOT NULL DEFAULT '',
use_server_dns INTEGER NOT NULL DEFAULT 1,
enabled INTEGER NOT NULL DEFAULT 1,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS server_keypair (
id INTEGER PRIMARY KEY CHECK (id = 1),
private_key TEXT NOT NULL,
public_key TEXT NOT NULL,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS server_interface (
id INTEGER PRIMARY KEY CHECK (id = 1),
addresses TEXT NOT NULL DEFAULT '[]',
listen_port INTEGER NOT NULL DEFAULT 51820,
post_up TEXT NOT NULL DEFAULT '',
pre_down TEXT NOT NULL DEFAULT '',
post_down TEXT NOT NULL DEFAULT '',
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS global_settings (
id INTEGER PRIMARY KEY CHECK (id = 1),
endpoint_address TEXT NOT NULL DEFAULT '',
dns_servers TEXT NOT NULL DEFAULT '[]',
mtu INTEGER NOT NULL DEFAULT 1450,
persistent_keepalive INTEGER NOT NULL DEFAULT 15,
firewall_mark TEXT NOT NULL DEFAULT '0xca6c',
"table" TEXT NOT NULL DEFAULT 'auto',
config_file_path TEXT NOT NULL DEFAULT '/etc/wireguard/wg0.conf',
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS wake_on_lan_hosts (
mac_address TEXT PRIMARY KEY,
name TEXT NOT NULL DEFAULT '',
latest_used DATETIME
);
CREATE TABLE IF NOT EXISTS hashes (
id INTEGER PRIMARY KEY CHECK (id = 1),
client TEXT NOT NULL DEFAULT 'none',
server TEXT NOT NULL DEFAULT 'none'
);
CREATE TABLE IF NOT EXISTS audit_logs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
actor TEXT NOT NULL,
action TEXT NOT NULL,
resource_type TEXT NOT NULL DEFAULT '',
resource_id TEXT NOT NULL DEFAULT '',
details TEXT NOT NULL DEFAULT '{}',
ip_address TEXT NOT NULL DEFAULT ''
);
CREATE INDEX IF NOT EXISTS idx_audit_logs_timestamp ON audit_logs(timestamp);
CREATE INDEX IF NOT EXISTS idx_audit_logs_actor ON audit_logs(actor);
CREATE INDEX IF NOT EXISTS idx_audit_logs_action ON audit_logs(action);