CREATE TABLE oauth_session ( state TEXT PRIMARY KEY, install_id TEXT NOT NULL, redirect_uri TEXT NOT NULL, linking_user_id TEXT, provider_state JSONB NOT NULL DEFAULT '{}'::jsonb, next_url TEXT NOT NULL DEFAULT '/', created_at TIMESTAMPTZ NOT NULL DEFAULT now(), expires_at TIMESTAMPTZ NOT NULL ); CREATE INDEX oauth_session_expires_idx ON oauth_session (expires_at); CREATE TABLE oauth_completion ( code_hash TEXT PRIMARY KEY, token_ciphertext TEXT NOT NULL, expires_in INTEGER NOT NULL, next_url TEXT NOT NULL DEFAULT '/', created_at TIMESTAMPTZ NOT NULL DEFAULT now(), expires_at TIMESTAMPTZ NOT NULL ); CREATE INDEX oauth_completion_expires_idx ON oauth_completion (expires_at);