Menu
AkurAI-Build
publicLatest change 20dad6d02033d14ae8d348daf8be44524b5a8ecd - Add secure collaboration and Build operations by Ólafur Búi Ólafsson
-- Repository ownership, trust, and explicit collaborator permissions.
-- Existing rows remain trusted administrator-owned: NULL owner and trusted=1.
ALTER TABLE repositories ADD COLUMN owner_sub TEXT
CHECK (owner_sub IS NULL OR length(owner_sub) BETWEEN 1 AND 256);
ALTER TABLE repositories ADD COLUMN owner_organization_id TEXT
CHECK (owner_organization_id IS NULL OR length(owner_organization_id) BETWEEN 1 AND 128);
ALTER TABLE repositories ADD COLUMN trusted INTEGER NOT NULL DEFAULT 1
CHECK (trusted IN (0, 1));
CREATE TABLE repository_collaborators (
repository_id INTEGER NOT NULL REFERENCES repositories(id) ON DELETE CASCADE,
subject TEXT NOT NULL CHECK (length(subject) BETWEEN 1 AND 256),
organization_id TEXT CHECK (organization_id IS NULL OR length(organization_id) BETWEEN 1 AND 128),
role TEXT NOT NULL CHECK (role IN ('read', 'write', 'maintain')),
created_at INTEGER NOT NULL DEFAULT (unixepoch()),
PRIMARY KEY (repository_id, subject)
) STRICT;
CREATE INDEX repository_collaborators_subject
ON repository_collaborators(subject, organization_id);
CREATE INDEX repositories_owner_organization
ON repositories(owner_organization_id);
PRAGMA user_version = 7;