22 lines
1.1 KiB
SQL
22 lines
1.1 KiB
SQL
-- v0.21.4: Git integration — credentials table + workspace git columns.
|
|
|
|
-- Git credentials: encrypted storage for PAT, basic auth, and SSH keys.
|
|
-- Uses the same AES-256-GCM vault pattern as BYOK provider configs.
|
|
CREATE TABLE IF NOT EXISTS git_credentials (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
name TEXT NOT NULL DEFAULT '',
|
|
auth_type TEXT NOT NULL DEFAULT 'https_pat', -- https_pat, https_basic, ssh_key
|
|
encrypted_data BYTEA NOT NULL DEFAULT '',
|
|
nonce BYTEA NOT NULL DEFAULT '',
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_git_credentials_user ON git_credentials(user_id);
|
|
|
|
-- Workspace git tracking columns.
|
|
ALTER TABLE workspaces ADD COLUMN IF NOT EXISTS git_remote_url TEXT;
|
|
ALTER TABLE workspaces ADD COLUMN IF NOT EXISTS git_branch TEXT;
|
|
ALTER TABLE workspaces ADD COLUMN IF NOT EXISTS git_credential_id UUID REFERENCES git_credentials(id) ON DELETE SET NULL;
|
|
ALTER TABLE workspaces ADD COLUMN IF NOT EXISTS git_last_sync TIMESTAMPTZ;
|