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 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 `