| |
| |
| |
| |
|
|
| CREATE TABLE IF NOT EXISTS provider_connections ( |
| id TEXT PRIMARY KEY, |
| provider TEXT NOT NULL, |
| auth_type TEXT, |
| name TEXT, |
| email TEXT, |
| priority INTEGER DEFAULT 0, |
| is_active INTEGER DEFAULT 1, |
| access_token TEXT, |
| refresh_token TEXT, |
| expires_at TEXT, |
| token_expires_at TEXT, |
| scope TEXT, |
| project_id TEXT, |
| test_status TEXT, |
| error_code TEXT, |
| last_error TEXT, |
| last_error_at TEXT, |
| last_error_type TEXT, |
| last_error_source TEXT, |
| backoff_level INTEGER DEFAULT 0, |
| rate_limited_until TEXT, |
| health_check_interval INTEGER, |
| last_health_check_at TEXT, |
| last_tested TEXT, |
| api_key TEXT, |
| id_token TEXT, |
| provider_specific_data TEXT, |
| expires_in INTEGER, |
| display_name TEXT, |
| global_priority INTEGER, |
| default_model TEXT, |
| token_type TEXT, |
| consecutive_use_count INTEGER DEFAULT 0, |
| rate_limit_protection INTEGER DEFAULT 0, |
| created_at TEXT NOT NULL, |
| updated_at TEXT NOT NULL |
| ); |
| CREATE INDEX IF NOT EXISTS idx_pc_provider ON provider_connections(provider); |
| CREATE INDEX IF NOT EXISTS idx_pc_active ON provider_connections(is_active); |
| CREATE INDEX IF NOT EXISTS idx_pc_priority ON provider_connections(provider, priority); |
|
|
| CREATE TABLE IF NOT EXISTS provider_nodes ( |
| id TEXT PRIMARY KEY, |
| type TEXT NOT NULL, |
| name TEXT NOT NULL, |
| prefix TEXT, |
| api_type TEXT, |
| base_url TEXT, |
| created_at TEXT NOT NULL, |
| updated_at TEXT NOT NULL |
| ); |
|
|
| CREATE TABLE IF NOT EXISTS key_value ( |
| namespace TEXT NOT NULL, |
| key TEXT NOT NULL, |
| value TEXT NOT NULL, |
| PRIMARY KEY (namespace, key) |
| ); |
|
|
| CREATE TABLE IF NOT EXISTS combos ( |
| id TEXT PRIMARY KEY, |
| name TEXT NOT NULL UNIQUE, |
| data TEXT NOT NULL, |
| created_at TEXT NOT NULL, |
| updated_at TEXT NOT NULL |
| ); |
|
|
| CREATE TABLE IF NOT EXISTS api_keys ( |
| id TEXT PRIMARY KEY, |
| name TEXT NOT NULL, |
| key TEXT NOT NULL UNIQUE, |
| machine_id TEXT, |
| created_at TEXT NOT NULL |
| ); |
| CREATE INDEX IF NOT EXISTS idx_ak_key ON api_keys(key); |
|
|
| CREATE TABLE IF NOT EXISTS db_meta ( |
| key TEXT PRIMARY KEY, |
| value TEXT |
| ); |
|
|
| CREATE TABLE IF NOT EXISTS usage_history ( |
| id INTEGER PRIMARY KEY AUTOINCREMENT, |
| provider TEXT, |
| model TEXT, |
| connection_id TEXT, |
| api_key_id TEXT, |
| api_key_name TEXT, |
| tokens_input INTEGER DEFAULT 0, |
| tokens_output INTEGER DEFAULT 0, |
| tokens_cache_read INTEGER DEFAULT 0, |
| tokens_cache_creation INTEGER DEFAULT 0, |
| tokens_reasoning INTEGER DEFAULT 0, |
| status TEXT, |
| timestamp TEXT NOT NULL |
| ); |
| CREATE INDEX IF NOT EXISTS idx_uh_timestamp ON usage_history(timestamp); |
| CREATE INDEX IF NOT EXISTS idx_uh_provider ON usage_history(provider); |
| CREATE INDEX IF NOT EXISTS idx_uh_model ON usage_history(model); |
|
|
| CREATE TABLE IF NOT EXISTS call_logs ( |
| id TEXT PRIMARY KEY, |
| timestamp TEXT NOT NULL, |
| method TEXT, |
| path TEXT, |
| status INTEGER, |
| model TEXT, |
| provider TEXT, |
| account TEXT, |
| connection_id TEXT, |
| duration INTEGER DEFAULT 0, |
| tokens_in INTEGER DEFAULT 0, |
| tokens_out INTEGER DEFAULT 0, |
| source_format TEXT, |
| target_format TEXT, |
| api_key_id TEXT, |
| api_key_name TEXT, |
| combo_name TEXT, |
| request_body TEXT, |
| response_body TEXT, |
| error TEXT |
| ); |
| CREATE INDEX IF NOT EXISTS idx_cl_timestamp ON call_logs(timestamp); |
| CREATE INDEX IF NOT EXISTS idx_cl_status ON call_logs(status); |
|
|
| CREATE TABLE IF NOT EXISTS proxy_logs ( |
| id TEXT PRIMARY KEY, |
| timestamp TEXT NOT NULL, |
| status TEXT, |
| proxy_type TEXT, |
| proxy_host TEXT, |
| proxy_port INTEGER, |
| level TEXT, |
| level_id TEXT, |
| provider TEXT, |
| target_url TEXT, |
| public_ip TEXT, |
| latency_ms INTEGER DEFAULT 0, |
| error TEXT, |
| connection_id TEXT, |
| combo_id TEXT, |
| account TEXT, |
| tls_fingerprint INTEGER DEFAULT 0 |
| ); |
| CREATE INDEX IF NOT EXISTS idx_pl_timestamp ON proxy_logs(timestamp); |
| CREATE INDEX IF NOT EXISTS idx_pl_status ON proxy_logs(status); |
| CREATE INDEX IF NOT EXISTS idx_pl_provider ON proxy_logs(provider); |
|
|
| CREATE TABLE IF NOT EXISTS domain_fallback_chains ( |
| model TEXT PRIMARY KEY, |
| chain TEXT NOT NULL |
| ); |
|
|
| CREATE TABLE IF NOT EXISTS domain_budgets ( |
| api_key_id TEXT PRIMARY KEY, |
| daily_limit_usd REAL NOT NULL, |
| monthly_limit_usd REAL DEFAULT 0, |
| warning_threshold REAL DEFAULT 0.8 |
| ); |
|
|
| CREATE TABLE IF NOT EXISTS domain_cost_history ( |
| id INTEGER PRIMARY KEY AUTOINCREMENT, |
| api_key_id TEXT NOT NULL, |
| cost REAL NOT NULL, |
| timestamp INTEGER NOT NULL |
| ); |
| CREATE INDEX IF NOT EXISTS idx_dch_key ON domain_cost_history(api_key_id); |
| CREATE INDEX IF NOT EXISTS idx_dch_ts ON domain_cost_history(timestamp); |
|
|
| CREATE TABLE IF NOT EXISTS domain_lockout_state ( |
| identifier TEXT PRIMARY KEY, |
| attempts TEXT NOT NULL, |
| locked_until INTEGER |
| ); |
|
|
| CREATE TABLE IF NOT EXISTS domain_circuit_breakers ( |
| name TEXT PRIMARY KEY, |
| state TEXT NOT NULL DEFAULT 'CLOSED', |
| failure_count INTEGER DEFAULT 0, |
| last_failure_time INTEGER, |
| options TEXT |
| ); |
|
|
| CREATE TABLE IF NOT EXISTS semantic_cache ( |
| id TEXT PRIMARY KEY, |
| signature TEXT NOT NULL UNIQUE, |
| model TEXT NOT NULL, |
| prompt_hash TEXT NOT NULL, |
| response TEXT NOT NULL, |
| tokens_saved INTEGER DEFAULT 0, |
| hit_count INTEGER DEFAULT 0, |
| created_at TEXT NOT NULL, |
| expires_at TEXT NOT NULL |
| ); |
| CREATE INDEX IF NOT EXISTS idx_sc_sig ON semantic_cache(signature); |
| CREATE INDEX IF NOT EXISTS idx_sc_model ON semantic_cache(model); |
|
|