18 lines
936 B
MySQL
18 lines
936 B
MySQL
|
|
-- Migration: 006 – Service tokens for external notification senders
|
|||
|
|
-- Database: SQLite
|
|||
|
|
|
|||
|
|
CREATE TABLE IF NOT EXISTS service_tokens (
|
|||
|
|
id TEXT PRIMARY KEY DEFAULT (lower(hex(randomblob(4))) || '-' || lower(hex(randomblob(2))) || '-4' || substr(lower(hex(randomblob(2))),2) || '-' || substr('89ab',abs(random()) % 4 + 1, 1) || substr(lower(hex(randomblob(2))),2) || '-' || lower(hex(randomblob(6)))),
|
|||
|
|
name TEXT NOT NULL,
|
|||
|
|
token_hash TEXT NOT NULL UNIQUE,
|
|||
|
|
created_by TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|||
|
|
scopes TEXT NOT NULL DEFAULT '["notify"]',
|
|||
|
|
is_active INTEGER NOT NULL DEFAULT 1,
|
|||
|
|
last_used_at DATETIME,
|
|||
|
|
expires_at DATETIME,
|
|||
|
|
created_at DATETIME NOT NULL DEFAULT (datetime('now'))
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
CREATE INDEX IF NOT EXISTS idx_service_tokens_hash ON service_tokens(token_hash);
|
|||
|
|
CREATE INDEX IF NOT EXISTS idx_service_tokens_creator ON service_tokens(created_by);
|