|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| CREATE TABLE IF NOT EXISTS registered_keys (
|
| id TEXT PRIMARY KEY,
|
| key TEXT NOT NULL UNIQUE,
|
| key_prefix TEXT NOT NULL,
|
| name TEXT NOT NULL,
|
| provider TEXT NOT NULL DEFAULT '',
|
| account_id TEXT NOT NULL DEFAULT '',
|
| is_active INTEGER NOT NULL DEFAULT 1,
|
| revoked_at TEXT,
|
| expires_at TEXT,
|
| idempotency_key TEXT UNIQUE,
|
| daily_budget INTEGER,
|
| hourly_budget INTEGER,
|
| daily_used INTEGER NOT NULL DEFAULT 0,
|
| hourly_used INTEGER NOT NULL DEFAULT 0,
|
| last_reset_day TEXT NOT NULL DEFAULT '',
|
| last_reset_hour TEXT NOT NULL DEFAULT '',
|
| created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
| updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
| );
|
|
|
| CREATE INDEX IF NOT EXISTS idx_registered_keys_provider ON registered_keys(provider);
|
| CREATE INDEX IF NOT EXISTS idx_registered_keys_account ON registered_keys(account_id);
|
| CREATE INDEX IF NOT EXISTS idx_registered_keys_active ON registered_keys(is_active);
|
| CREATE INDEX IF NOT EXISTS idx_registered_keys_idempotency ON registered_keys(idempotency_key);
|
|
|
|
|
|
|
|
|
| CREATE TABLE IF NOT EXISTS provider_key_limits (
|
| provider TEXT PRIMARY KEY,
|
| max_active_keys INTEGER,
|
| daily_issue_limit INTEGER,
|
| hourly_issue_limit INTEGER,
|
| daily_issued INTEGER NOT NULL DEFAULT 0,
|
| hourly_issued INTEGER NOT NULL DEFAULT 0,
|
| last_reset_day TEXT NOT NULL DEFAULT '',
|
| last_reset_hour TEXT NOT NULL DEFAULT '',
|
| updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
| );
|
|
|
|
|
|
|
|
|
| CREATE TABLE IF NOT EXISTS account_key_limits (
|
| account_id TEXT PRIMARY KEY,
|
| max_active_keys INTEGER,
|
| daily_issue_limit INTEGER,
|
| hourly_issue_limit INTEGER,
|
| daily_issued INTEGER NOT NULL DEFAULT 0,
|
| hourly_issued INTEGER NOT NULL DEFAULT 0,
|
| last_reset_day TEXT NOT NULL DEFAULT '',
|
| last_reset_hour TEXT NOT NULL DEFAULT '',
|
| updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
| );
|
|
|