18 lines
1.1 KiB
SQL
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);
|