You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.1 KiB
59 lines
2.1 KiB
4 years ago
|
CREATE TABLE IF NOT EXISTS agents (
|
||
|
alias TEXT
|
||
|
, agent_id TEXT NOT NULL UNIQUE
|
||
|
, hostname TEXT NOT NULL
|
||
|
, id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
|
||
|
, is_root BOOLEAN NOT NULL DEFAULT 0
|
||
|
, is_root_allowed BOOLEAN NOT NULL DEFAULT 0
|
||
|
, last_active TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||
|
-- target triplet
|
||
|
, platform TEXT NOT NULL
|
||
|
, regtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||
|
, status TEXT
|
||
|
-- is needed to processing requests
|
||
|
, token TEXT
|
||
|
, username TEXT NOT NULL
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS ip_addrs (
|
||
|
agent_id INTEGER NOT NULL
|
||
|
, check_ts DATETIME NOT NULL
|
||
|
, gateway TEXT
|
||
|
, id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
|
||
|
, iface TEXT NOT NULL
|
||
|
, ip_addr TEXT NOT NULL
|
||
|
, is_gray BOOLEAN NOT NULL DEFAULT 1
|
||
|
, netmask TEXT NOT NULL
|
||
|
, FOREIGN KEY(agent_id) REFERENCES agents(id)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS jobs (
|
||
|
alias TEXT
|
||
|
, id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
|
||
|
-- Shell, Binary (with program download), Python (with program and python download if not exist), Management
|
||
|
, job_type TEXT CHECK(job_type IN ('S','B','P','M')) NOT NULL DEFAULT 'S'
|
||
|
-- Executable type: ALL - no matter, W - windows, L = linux
|
||
|
, exec_type TEXT CHECK(exec_type IN ('ALL', 'W', 'L')) NOT NULL DEFAULT 'L'
|
||
|
, platform TEXT CHECK(platform IN ('x86', 'x64', 'aarch32', 'aarch64'))
|
||
|
, data BLOB NOT NULL
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS results (
|
||
|
agent_id INTEGER NOT NULL
|
||
|
, created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||
|
, id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
|
||
|
, job_id INTEGER NOT NULL
|
||
|
, result BLOB
|
||
|
-- Queued, Pending, Running, Finished
|
||
|
, status TEXT CHECK(status IN ('Q', 'P', 'R', 'F'))
|
||
|
, ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||
|
, FOREIGN KEY(agent_id) REFERENCES agents(id)
|
||
|
, FOREIGN KEY(job_id) REFERENCES jobs(id)
|
||
|
);
|
||
|
|
||
|
CREATE TABLE IF NOT EXISTS certificates (
|
||
|
agent_id INTEGER NOT NULL
|
||
|
, id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
|
||
|
, is_revoked BOOLEAN NOT NULL DEFAULT FALSE
|
||
|
, FOREIGN KEY(agent_id) REFERENCES agents(id)
|
||
|
);
|