multica/server/migrations/005_daemon_pairing.up.sql
2026-03-24 12:03:14 +08:00

20 lines
911 B
SQL

CREATE TABLE daemon_pairing_session (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
token TEXT NOT NULL UNIQUE,
daemon_id TEXT NOT NULL,
device_name TEXT NOT NULL,
runtime_name TEXT NOT NULL,
runtime_type TEXT NOT NULL,
runtime_version TEXT NOT NULL DEFAULT '',
workspace_id UUID REFERENCES workspace(id) ON DELETE CASCADE,
approved_by UUID REFERENCES "user"(id) ON DELETE SET NULL,
status TEXT NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'approved', 'claimed', 'expired')),
approved_at TIMESTAMPTZ,
claimed_at TIMESTAMPTZ,
expires_at TIMESTAMPTZ NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX idx_daemon_pairing_session_token ON daemon_pairing_session (token);
CREATE INDEX idx_daemon_pairing_session_status_expires ON daemon_pairing_session (status, expires_at);