42 lines
1.3 KiB
SQL
42 lines
1.3 KiB
SQL
CREATE TABLE IF NOT EXISTS settings (
|
|
key TEXT NOT NULL PRIMARY KEY,
|
|
value TEXT NOT NULL,
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS domains (
|
|
id TEXT NOT NULL PRIMARY KEY,
|
|
name TEXT NOT NULL UNIQUE,
|
|
certificate_type TEXT NOT NULL,
|
|
sans_json TEXT NOT NULL,
|
|
status TEXT NOT NULL,
|
|
expires_at TIMESTAMPTZ NULL,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
id TEXT NOT NULL PRIMARY KEY,
|
|
domain_id TEXT NOT NULL,
|
|
task_type TEXT NOT NULL,
|
|
status TEXT NOT NULL,
|
|
message TEXT NOT NULL,
|
|
started_at TIMESTAMPTZ NULL,
|
|
finished_at TIMESTAMPTZ NULL,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_tasks_domain_id ON tasks(domain_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS audit_logs (
|
|
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
|
action TEXT NOT NULL,
|
|
resource_type TEXT NOT NULL,
|
|
resource_id TEXT NOT NULL,
|
|
status TEXT NOT NULL,
|
|
message TEXT NOT NULL,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_audit_logs_created_at ON audit_logs(created_at);
|