84 lines
2.3 KiB
Go
84 lines
2.3 KiB
Go
package storage
|
|
|
|
const CreateSqlite = `
|
|
CREATE TABLE IF NOT EXISTS tokens (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
name TEXT NOT NULL,
|
|
last_name TEXT NOT NULL,
|
|
login TEXT NOT NULL UNIQUE,
|
|
password TEXT NOT NULL,
|
|
token TEXT NOT NULL UNIQUE,
|
|
permission_view BOOL NOT NULL,
|
|
permission_manage_agent BOOL NOT NULL,
|
|
permission_admin BOOL NOT NULL,
|
|
is_active BOOL NOT NULL DEFAULT 0
|
|
);
|
|
`
|
|
|
|
// AddIsActiveColumn adds is_active column to tokens table if it doesn't exist.
|
|
// This is a migration for existing databases that don't have this column.
|
|
const AddIsActiveColumn = `
|
|
ALTER TABLE tokens ADD COLUMN is_active BOOL NOT NULL DEFAULT 0
|
|
`
|
|
|
|
const CreateRegistrationTokensTable = `
|
|
CREATE TABLE IF NOT EXISTS registration_tokens (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
token TEXT NOT NULL UNIQUE,
|
|
label TEXT NOT NULL,
|
|
used BOOL NOT NULL DEFAULT 0,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
used_at DATETIME
|
|
);
|
|
`
|
|
|
|
const CreateJobsTable = `
|
|
CREATE TABLE IF NOT EXISTS jobs (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
agent_id TEXT NOT NULL,
|
|
command TEXT NOT NULL,
|
|
stdin TEXT,
|
|
stdout TEXT DEFAULT '',
|
|
stderr TEXT DEFAULT '',
|
|
status INTEGER DEFAULT 0,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
`
|
|
|
|
const CreateScriptInterpretersTable = `
|
|
CREATE TABLE IF NOT EXISTS script_interpreters (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
name TEXT NOT NULL UNIQUE,
|
|
label TEXT NOT NULL,
|
|
argv TEXT NOT NULL,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
`
|
|
|
|
const CreateScriptsTable = `
|
|
CREATE TABLE IF NOT EXISTS scripts (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
path TEXT NOT NULL UNIQUE,
|
|
content TEXT NOT NULL DEFAULT '',
|
|
interpreter_id INTEGER NOT NULL,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (interpreter_id) REFERENCES script_interpreters(id)
|
|
);
|
|
`
|
|
|
|
const CreateLogsTable = `
|
|
CREATE TABLE IF NOT EXISTS logs (
|
|
timestamp DateTime64(3) DEFAULT now(),
|
|
level LowCardinality(String),
|
|
service LowCardinality(String),
|
|
agent LowCardinality(String),
|
|
message String
|
|
) ENGINE = MergeTree()
|
|
ORDER BY (timestamp, level, service, agent)
|
|
TTL timestamp + INTERVAL 30 DAY
|
|
SETTINGS index_granularity = 8192
|
|
`
|