diff options
| author | mo khan <mo@mokhan.ca> | 2025-06-11 20:20:04 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-06-11 20:20:04 -0600 |
| commit | c28b7088b6fad045060a52b6e1a2249e876090e3 (patch) | |
| tree | a8fc26fd5365d4988d9206b32d94f51047cf0bcc /migrations/001_initial_schema.sql | |
| parent | 19ca22e604f9bcdf6b25f973f81b2486b0dcb789 (diff) | |
refactor: extract domain model
Diffstat (limited to 'migrations/001_initial_schema.sql')
| -rw-r--r-- | migrations/001_initial_schema.sql | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/migrations/001_initial_schema.sql b/migrations/001_initial_schema.sql deleted file mode 100644 index 8796157..0000000 --- a/migrations/001_initial_schema.sql +++ /dev/null @@ -1,107 +0,0 @@ --- Migration 001: Initial OAuth2 STS Schema --- Created: 2024-01-01 --- Description: Create core OAuth2 tables with proper foreign keys and indexes - --- OAuth Clients table -CREATE TABLE IF NOT EXISTS oauth_clients ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - client_id TEXT NOT NULL UNIQUE, - client_secret_hash TEXT NOT NULL, - client_name TEXT NOT NULL, - redirect_uris TEXT NOT NULL, -- JSON array - scopes TEXT NOT NULL, -- space-separated - grant_types TEXT NOT NULL, -- space-separated - response_types TEXT NOT NULL, -- space-separated - created_at TEXT NOT NULL, - updated_at TEXT NOT NULL, - is_active BOOLEAN NOT NULL DEFAULT 1 -); - --- Authorization Codes table -CREATE TABLE IF NOT EXISTS auth_codes ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - code TEXT NOT NULL UNIQUE, - client_id TEXT NOT NULL, - user_id TEXT NOT NULL, - redirect_uri TEXT NOT NULL, - scope TEXT, - expires_at TEXT NOT NULL, - created_at TEXT NOT NULL, - is_used BOOLEAN NOT NULL DEFAULT 0, - code_challenge TEXT, - code_challenge_method TEXT, - FOREIGN KEY (client_id) REFERENCES oauth_clients (client_id) -); - --- Access Tokens table -CREATE TABLE IF NOT EXISTS access_tokens ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - token_id TEXT NOT NULL UNIQUE, - client_id TEXT NOT NULL, - user_id TEXT NOT NULL, - scope TEXT, - expires_at TEXT NOT NULL, - created_at TEXT NOT NULL, - is_revoked BOOLEAN NOT NULL DEFAULT 0, - token_hash TEXT NOT NULL, - FOREIGN KEY (client_id) REFERENCES oauth_clients (client_id) -); - --- Refresh Tokens table -CREATE TABLE IF NOT EXISTS refresh_tokens ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - token_id TEXT NOT NULL UNIQUE, - access_token_id INTEGER NOT NULL, - client_id TEXT NOT NULL, - user_id TEXT NOT NULL, - scope TEXT, - expires_at TEXT NOT NULL, - created_at TEXT NOT NULL, - is_revoked BOOLEAN NOT NULL DEFAULT 0, - token_hash TEXT NOT NULL, - FOREIGN KEY (client_id) REFERENCES oauth_clients (client_id), - FOREIGN KEY (access_token_id) REFERENCES access_tokens (id) -); - --- RSA Keys table -CREATE TABLE IF NOT EXISTS rsa_keys ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - kid TEXT NOT NULL UNIQUE, - private_key_pem TEXT NOT NULL, - public_key_pem TEXT NOT NULL, - created_at TEXT NOT NULL, - is_current BOOLEAN NOT NULL DEFAULT 0 -); - --- Audit Log table -CREATE TABLE IF NOT EXISTS audit_logs ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - event_type TEXT NOT NULL, - client_id TEXT, - user_id TEXT, - ip_address TEXT, - user_agent TEXT, - details TEXT, -- JSON - created_at TEXT NOT NULL, - success BOOLEAN NOT NULL -); - --- Rate Limiting table -CREATE TABLE IF NOT EXISTS rate_limits ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - identifier TEXT NOT NULL, -- client_id or IP - endpoint TEXT NOT NULL, - count INTEGER NOT NULL DEFAULT 1, - window_start TEXT NOT NULL, - created_at TEXT NOT NULL, - UNIQUE (identifier, endpoint, window_start) -); - --- Performance indexes -CREATE INDEX IF NOT EXISTS idx_auth_codes_client_id ON auth_codes (client_id); -CREATE INDEX IF NOT EXISTS idx_auth_codes_expires_at ON auth_codes (expires_at); -CREATE INDEX IF NOT EXISTS idx_access_tokens_client_id ON access_tokens (client_id); -CREATE INDEX IF NOT EXISTS idx_access_tokens_expires_at ON access_tokens (expires_at); -CREATE INDEX IF NOT EXISTS idx_refresh_tokens_client_id ON refresh_tokens (client_id); -CREATE INDEX IF NOT EXISTS idx_audit_logs_created_at ON audit_logs (created_at); -CREATE INDEX IF NOT EXISTS idx_rate_limits_identifier ON rate_limits (identifier, endpoint);
\ No newline at end of file |
