mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-08 22:21:45 +00:00
34 lines
1.2 KiB
SQL
34 lines
1.2 KiB
SQL
CREATE TABLE automations (
|
|
id TEXT PRIMARY KEY NOT NULL,
|
|
revision TEXT NOT NULL,
|
|
name TEXT NOT NULL,
|
|
description TEXT,
|
|
api_enabled INTEGER NOT NULL,
|
|
target_repository TEXT NOT NULL,
|
|
target_ref TEXT NOT NULL,
|
|
target_workflow TEXT NOT NULL,
|
|
CHECK (length(id) BETWEEN 1 AND 63),
|
|
CHECK (substr(id, 1, 1) GLOB '[a-z0-9]'),
|
|
CHECK (id NOT GLOB '*[^a-z0-9-]*'),
|
|
CHECK (length(revision) = 64),
|
|
CHECK (revision NOT GLOB '*[^0-9a-f]*'),
|
|
CHECK (length(trim(name)) > 0),
|
|
CHECK (api_enabled IN (0, 1)),
|
|
CHECK (length(target_repository) BETWEEN 3 AND 140),
|
|
CHECK (length(target_ref) BETWEEN 1 AND 255),
|
|
CHECK (length(target_workflow) BETWEEN 1 AND 255)
|
|
);
|
|
|
|
CREATE TABLE automation_triggers (
|
|
automation_id TEXT NOT NULL,
|
|
id TEXT NOT NULL,
|
|
enabled INTEGER NOT NULL,
|
|
expression TEXT NOT NULL,
|
|
PRIMARY KEY (automation_id, id),
|
|
FOREIGN KEY (automation_id) REFERENCES automations(id) ON DELETE CASCADE,
|
|
CHECK (length(id) BETWEEN 1 AND 63),
|
|
CHECK (substr(id, 1, 1) GLOB '[a-z0-9]'),
|
|
CHECK (id NOT GLOB '*[^a-z0-9_-]*'),
|
|
CHECK (enabled IN (0, 1)),
|
|
CHECK (length(trim(expression)) > 0)
|
|
);
|