Files
2026-07-13 13:00:08 +08:00

18 lines
1.1 KiB
SQL

-- Device authorization grants (RFC 8628-style) for CLI/desktop sign-in.
-- Apply: wrangler d1 migrations apply reasonix-accounts --local (or --remote)
CREATE TABLE IF NOT EXISTS device_grants (
device_code_hash TEXT PRIMARY KEY, -- sha256(pepper:device_code); the raw code lives only on the client
user_code TEXT NOT NULL UNIQUE, -- canonical (no separators, upper) code the human types to approve
user_id INTEGER, -- null until approved
status TEXT NOT NULL DEFAULT 'pending', -- pending | approved | denied
kind TEXT NOT NULL DEFAULT 'cli', -- session kind minted on claim (web | cli)
user_agent TEXT NOT NULL DEFAULT '',
created_at TEXT NOT NULL,
last_polled_at TEXT, -- drives the slow_down hint
approved_at TEXT,
expires_at TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS device_grants_user_code ON device_grants (user_code);
CREATE INDEX IF NOT EXISTS device_grants_expires ON device_grants (expires_at);