Fixes: 1. media.ts: wrap placeholder generation in try-catch 2. toolbar.ts: check r.ok, display error message in popover
107 lines
3.2 KiB
SQL
107 lines
3.2 KiB
SQL
CREATE TABLE IF NOT EXISTS authors (
|
|
id TEXT PRIMARY KEY,
|
|
github_id TEXT UNIQUE,
|
|
name TEXT NOT NULL,
|
|
email TEXT,
|
|
avatar_url TEXT,
|
|
verified INTEGER DEFAULT 0,
|
|
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS plugins (
|
|
id TEXT PRIMARY KEY,
|
|
name TEXT NOT NULL,
|
|
description TEXT,
|
|
author_id TEXT NOT NULL REFERENCES authors(id),
|
|
repository_url TEXT,
|
|
homepage_url TEXT,
|
|
license TEXT,
|
|
capabilities TEXT NOT NULL,
|
|
keywords TEXT,
|
|
has_icon INTEGER DEFAULT 0,
|
|
install_count INTEGER NOT NULL DEFAULT 0,
|
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_plugins_author ON plugins(author_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS plugin_versions (
|
|
id TEXT PRIMARY KEY,
|
|
plugin_id TEXT NOT NULL REFERENCES plugins(id),
|
|
version TEXT NOT NULL,
|
|
min_emdash_version TEXT,
|
|
bundle_key TEXT NOT NULL,
|
|
bundle_size INTEGER NOT NULL,
|
|
checksum TEXT NOT NULL,
|
|
changelog TEXT,
|
|
readme TEXT,
|
|
has_icon INTEGER DEFAULT 0,
|
|
screenshot_count INTEGER DEFAULT 0,
|
|
capabilities TEXT NOT NULL,
|
|
status TEXT NOT NULL DEFAULT 'pending',
|
|
workflow_id TEXT,
|
|
audit_id TEXT,
|
|
audit_verdict TEXT,
|
|
image_audit_id TEXT,
|
|
image_audit_verdict TEXT,
|
|
published_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
UNIQUE(plugin_id, version)
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_plugin_versions_plugin ON plugin_versions(plugin_id);
|
|
CREATE INDEX IF NOT EXISTS idx_plugin_versions_plugin_status ON plugin_versions(plugin_id, status);
|
|
|
|
CREATE TABLE IF NOT EXISTS plugin_audits (
|
|
id TEXT PRIMARY KEY,
|
|
plugin_id TEXT NOT NULL,
|
|
version TEXT NOT NULL,
|
|
verdict TEXT NOT NULL,
|
|
risk_score INTEGER NOT NULL,
|
|
summary TEXT NOT NULL,
|
|
findings TEXT NOT NULL,
|
|
model TEXT NOT NULL,
|
|
duration_ms INTEGER NOT NULL,
|
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
FOREIGN KEY (plugin_id) REFERENCES plugins(id)
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_plugin_audits_plugin_version ON plugin_audits(plugin_id, version);
|
|
|
|
CREATE TABLE IF NOT EXISTS plugin_image_audits (
|
|
id TEXT PRIMARY KEY,
|
|
plugin_id TEXT NOT NULL,
|
|
version TEXT NOT NULL,
|
|
verdict TEXT NOT NULL,
|
|
findings TEXT NOT NULL,
|
|
model TEXT NOT NULL,
|
|
duration_ms INTEGER NOT NULL,
|
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
FOREIGN KEY (plugin_id) REFERENCES plugins(id)
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_plugin_image_audits_pv ON plugin_image_audits(plugin_id, version);
|
|
|
|
CREATE TABLE IF NOT EXISTS installs (
|
|
plugin_id TEXT NOT NULL REFERENCES plugins(id),
|
|
site_hash TEXT NOT NULL,
|
|
version TEXT NOT NULL,
|
|
installed_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
PRIMARY KEY (plugin_id, site_hash)
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_installs_plugin ON installs(plugin_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS themes (
|
|
id TEXT PRIMARY KEY,
|
|
name TEXT NOT NULL,
|
|
description TEXT,
|
|
author_id TEXT NOT NULL REFERENCES authors(id),
|
|
preview_url TEXT NOT NULL,
|
|
demo_url TEXT,
|
|
repository_url TEXT,
|
|
homepage_url TEXT,
|
|
license TEXT,
|
|
keywords TEXT,
|
|
has_thumbnail INTEGER DEFAULT 0,
|
|
screenshot_count INTEGER DEFAULT 0,
|
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_themes_author ON themes(author_id);
|