2024-06-28 17:05:32 +00:00
|
|
|
CREATE TABLE users (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
username TEXT NOT NULL UNIQUE,
|
|
|
|
password TEXT NOT NULL
|
|
|
|
);
|
2024-09-07 18:49:50 +00:00
|
|
|
CREATE TABLE users_meta (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
user_id INTEGER NOT NULL,
|
|
|
|
name TEXT,
|
|
|
|
email TEXT,
|
2024-09-13 10:04:15 +00:00
|
|
|
timezone TEXT,
|
2024-09-07 18:49:50 +00:00
|
|
|
avatar TEXT,
|
2024-09-11 13:21:05 +00:00
|
|
|
bio TEXT,
|
|
|
|
FOREIGN KEY (user_id) REFERENCES users(id)
|
2024-09-07 18:49:50 +00:00
|
|
|
);
|
|
|
|
CREATE TABLE users_rights (
|
2024-09-11 13:21:05 +00:00
|
|
|
user_id INTEGER,
|
|
|
|
right_id INTEGER,
|
|
|
|
PRIMARY KEY (user_id, right_id),
|
|
|
|
FOREIGN KEY (user_id) REFERENCES users(id),
|
|
|
|
FOREIGN KEY (right_id) REFERENCES rights(id)
|
|
|
|
);
|
|
|
|
CREATE TABLE rights (
|
2024-09-07 18:49:50 +00:00
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
2024-09-12 09:34:22 +00:00
|
|
|
name TEXT NOT NULL UNIQUE
|
2024-09-07 18:49:50 +00:00
|
|
|
);
|
2025-04-14 15:06:44 +00:00
|
|
|
CREATE TABLE IF NOT EXISTS "jilo_agent_types" (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
description TEXT,
|
|
|
|
endpoint TEXT
|
|
|
|
);
|
2025-01-14 16:01:27 +00:00
|
|
|
CREATE TABLE platforms (
|
2024-12-28 15:28:18 +00:00
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
2025-01-14 16:01:27 +00:00
|
|
|
name TEXT NOT NULL UNIQUE,
|
|
|
|
jitsi_url TEXT NOT NULL,
|
|
|
|
jilo_database TEXT NOT NULL
|
2024-12-28 15:28:18 +00:00
|
|
|
);
|
2025-04-14 15:06:44 +00:00
|
|
|
CREATE TABLE hosts (
|
|
|
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
|
|
address TEXT NOT NULL,
|
|
|
|
platform_id INTEGER NOT NULL,
|
|
|
|
name TEXT,
|
|
|
|
FOREIGN KEY(platform_id) REFERENCES platforms(id)
|
2025-04-07 09:44:22 +00:00
|
|
|
);
|
2025-04-14 15:06:44 +00:00
|
|
|
CREATE TABLE jilo_agents (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
host_id INTEGER NOT NULL,
|
|
|
|
agent_type_id INTEGER NOT NULL,
|
|
|
|
url TEXT NOT NULL,
|
|
|
|
secret_key TEXT,
|
|
|
|
check_period INTEGER DEFAULT 0,
|
|
|
|
FOREIGN KEY(agent_type_id) REFERENCES jilo_agent_types(id),
|
|
|
|
FOREIGN KEY(host_id) REFERENCES hosts(id)
|
2025-04-07 09:44:22 +00:00
|
|
|
);
|
2025-04-14 15:06:44 +00:00
|
|
|
CREATE TABLE jilo_agent_checks (
|
2025-04-08 09:12:14 +00:00
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
2025-04-14 15:06:44 +00:00
|
|
|
agent_id INTEGER,
|
|
|
|
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
status_code INTEGER,
|
|
|
|
response_time_ms INTEGER,
|
|
|
|
response_content TEXT,
|
|
|
|
FOREIGN KEY(agent_id) REFERENCES jilo_agents(id)
|
|
|
|
);
|
|
|
|
CREATE TABLE ip_whitelist (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
ip_address TEXT NOT NULL UNIQUE,
|
|
|
|
is_network BOOLEAN DEFAULT 0 CHECK(is_network IN (0,1)),
|
|
|
|
description TEXT,
|
|
|
|
created_at TEXT DEFAULT (DATETIME('now')),
|
|
|
|
created_by TEXT
|
|
|
|
);
|
|
|
|
CREATE TABLE ip_blacklist (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
ip_address TEXT NOT NULL UNIQUE,
|
|
|
|
is_network BOOLEAN DEFAULT 0 CHECK(is_network IN (0,1)),
|
|
|
|
reason TEXT,
|
|
|
|
expiry_time TEXT NULL,
|
|
|
|
created_at TEXT DEFAULT (DATETIME('now')),
|
|
|
|
created_by TEXT
|
2025-04-08 09:12:14 +00:00
|
|
|
);
|
2024-10-30 17:11:23 +00:00
|
|
|
CREATE TABLE logs (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
2025-01-22 15:49:15 +00:00
|
|
|
user_id INTEGER NOT NULL,
|
2024-10-30 17:11:23 +00:00
|
|
|
time TEXT DEFAULT (DATETIME('now')),
|
|
|
|
scope TEXT NOT NULL,
|
|
|
|
message TEXT NOT NULL,
|
2025-04-14 15:06:44 +00:00
|
|
|
FOREIGN KEY(user_id) REFERENCES users(id)
|
2024-10-30 17:11:23 +00:00
|
|
|
);
|
2025-04-14 15:06:44 +00:00
|
|
|
CREATE TABLE pages_rate_limits (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
ip_address TEXT NOT NULL,
|
|
|
|
endpoint TEXT NOT NULL,
|
|
|
|
request_time DATETIME DEFAULT CURRENT_TIMESTAMP
|
2024-10-15 17:52:16 +00:00
|
|
|
);
|
2025-01-14 16:01:27 +00:00
|
|
|
CREATE TABLE login_attempts (
|
2025-04-14 15:06:44 +00:00
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
ip_address TEXT NOT NULL,
|
|
|
|
username TEXT NOT NULL,
|
|
|
|
attempted_at TEXT DEFAULT (DATETIME('now'))
|
|
|
|
);
|
|
|
|
CREATE TABLE user_2fa (
|
|
|
|
user_id INTEGER NOT NULL PRIMARY KEY,
|
|
|
|
secret_key TEXT NOT NULL,
|
|
|
|
backup_codes TEXT,
|
|
|
|
enabled INTEGER NOT NULL DEFAULT 0,
|
|
|
|
created_at TEXT NOT NULL,
|
|
|
|
last_used TEXT,
|
|
|
|
FOREIGN KEY (user_id) REFERENCES users(id)
|
|
|
|
);
|
|
|
|
CREATE TABLE user_2fa_temp (
|
|
|
|
user_id INTEGER NOT NULL PRIMARY KEY,
|
|
|
|
code TEXT NOT NULL,
|
|
|
|
created_at TEXT NOT NULL,
|
|
|
|
expires_at TEXT NOT NULL,
|
|
|
|
FOREIGN KEY (user_id) REFERENCES users(id)
|
|
|
|
);
|
|
|
|
CREATE TABLE user_password_reset (
|
|
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
|
user_id INTEGER NOT NULL,
|
|
|
|
token TEXT NOT NULL UNIQUE,
|
|
|
|
expires INTEGER NOT NULL,
|
|
|
|
used INTEGER NOT NULL DEFAULT 0,
|
|
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
|
|
);
|