092a8bc7ce
- Removed all backup/duplicate files - Removed test files from root - Consolidated documentation to /docs/ - Moved scripts to /scripts/ - Renamed f_* directories (removed prefix) - Organized icons and assets - Removed unused vendor directories - Cleaned up redundant config files
26 lines
923 B
SQL
26 lines
923 B
SQL
-- Create API Keys Table
|
|
CREATE TABLE api_keys (
|
|
key_id INT PRIMARY KEY AUTO_INCREMENT,
|
|
user_id INT NOT NULL,
|
|
api_key VARCHAR(64) NOT NULL UNIQUE,
|
|
name VARCHAR(255) NOT NULL,
|
|
description TEXT,
|
|
is_active BOOLEAN DEFAULT TRUE,
|
|
last_used TIMESTAMP NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (user_id) REFERENCES users(user_id)
|
|
);
|
|
|
|
-- Create API Rate Limiting Table
|
|
CREATE TABLE api_rate_limits (
|
|
rate_limit_id INT PRIMARY KEY AUTO_INCREMENT,
|
|
api_key VARCHAR(64) NOT NULL,
|
|
request_count INT DEFAULT 1,
|
|
window_start TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (api_key) REFERENCES api_keys(api_key)
|
|
);
|
|
|
|
-- Create Indexes
|
|
CREATE INDEX idx_api_key_active ON api_keys(api_key, is_active);
|
|
CREATE INDEX idx_rate_limit_window ON api_rate_limits(api_key, window_start); |