AkurAI Build
Menu

Public repository / 8d41f1e10aceed387d425b43038f2070e399a349

AkurAI-Build / migrations/013_schedules_and_secrets.sql

Latest change 8d41f1e10aceed387d425b43038f2070e399a349 - OLI-277: schedules, reusable workflows (include + inputs), per-repository secrets (value or PassVault), native caches by Ólafur Búi Ólafsson

-- OLI-277: scheduled runs and per-repository secrets.
ALTER TABLE runs ADD COLUMN schedule TEXT CHECK (schedule IS NULL OR length(schedule) BETWEEN 9 AND 64);

CREATE TABLE schedule_fires (
    repository_id INTEGER NOT NULL REFERENCES repositories(id) ON DELETE CASCADE,
    cron TEXT NOT NULL CHECK (length(cron) BETWEEN 9 AND 64),
    branch TEXT NOT NULL CHECK (length(branch) BETWEEN 1 AND 200),
    minute INTEGER NOT NULL,
    run_id INTEGER REFERENCES runs(id) ON DELETE SET NULL,
    PRIMARY KEY (repository_id, cron, branch, minute)
) STRICT;

CREATE TABLE repository_secrets (
    repository_id INTEGER NOT NULL REFERENCES repositories(id) ON DELETE CASCADE,
    name TEXT NOT NULL CHECK (length(name) BETWEEN 1 AND 64),
    value TEXT CHECK (value IS NULL OR length(value) BETWEEN 1 AND 16384),
    passvault TEXT CHECK (passvault IS NULL OR length(passvault) BETWEEN 1 AND 128),
    created_at INTEGER NOT NULL DEFAULT (unixepoch()),
    updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
    PRIMARY KEY (repository_id, name),
    CHECK ((value IS NULL) <> (passvault IS NULL))
) STRICT;