20 lines
934 B
MySQL
20 lines
934 B
MySQL
|
|
CREATE TABLE IF NOT EXISTS user_keys (
|
||
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
|
|
key_id TEXT UNIQUE NOT NULL,
|
||
|
|
owner_subject_id TEXT NOT NULL,
|
||
|
|
key_fingerprint TEXT NOT NULL,
|
||
|
|
masked_preview TEXT NOT NULL,
|
||
|
|
display_name TEXT NOT NULL DEFAULT '',
|
||
|
|
logical_group_id TEXT NOT NULL DEFAULT '',
|
||
|
|
allowed_models TEXT NOT NULL DEFAULT '[]',
|
||
|
|
admin_status TEXT NOT NULL DEFAULT 'active' CHECK (admin_status IN ('active','paused','disabled','retired')),
|
||
|
|
quota_status TEXT NOT NULL DEFAULT 'ok' CHECK (quota_status IN ('ok','exhausted','limited','unknown')),
|
||
|
|
last_used_at TEXT,
|
||
|
|
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%SZ','now')),
|
||
|
|
expires_at TEXT,
|
||
|
|
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%SZ','now'))
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_user_keys_owner ON user_keys(owner_subject_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_user_keys_status ON user_keys(admin_status);
|