-- ============================================================================= -- Migration: Short-lived one-time WebSocket telemetry tickets -- ============================================================================= CREATE TABLE IF NOT EXISTS websocket_tickets ( token_hash TEXT PRIMARY KEY, user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE, project_id UUID NOT NULL REFERENCES edge_projects(id) ON DELETE CASCADE, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), expires_at TIMESTAMPTZ NOT NULL, used_at TIMESTAMPTZ NULL ); CREATE INDEX IF NOT EXISTS idx_websocket_tickets_project ON websocket_tickets(project_id); CREATE INDEX IF NOT EXISTS idx_websocket_tickets_expires_at ON websocket_tickets(expires_at);