feat: add desktop bug report collection
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS desktop_bug_reports (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
report_type TEXT NOT NULL DEFAULT 'crash'
|
||||
CHECK (report_type IN ('crash', 'bug')),
|
||||
status TEXT NOT NULL DEFAULT 'new'
|
||||
CHECK (status IN ('new', 'triaged', 'in_progress', 'resolved', 'ignored')),
|
||||
severity TEXT NOT NULL DEFAULT 'medium'
|
||||
CHECK (severity IN ('low', 'medium', 'high', 'critical')),
|
||||
tenant_id BIGINT REFERENCES tenants(id) ON DELETE SET NULL,
|
||||
workspace_id BIGINT REFERENCES workspaces(id) ON DELETE SET NULL,
|
||||
user_id BIGINT REFERENCES users(id) ON DELETE SET NULL,
|
||||
desktop_client_id UUID REFERENCES desktop_clients(id) ON DELETE SET NULL,
|
||||
crash_guid TEXT,
|
||||
crash_report_id TEXT,
|
||||
process_type TEXT,
|
||||
electron_version TEXT,
|
||||
app_version TEXT,
|
||||
product_name TEXT,
|
||||
platform TEXT,
|
||||
os_arch TEXT,
|
||||
device_name TEXT,
|
||||
title TEXT NOT NULL,
|
||||
description TEXT,
|
||||
dump_object_key TEXT,
|
||||
dump_file_name TEXT,
|
||||
dump_size_bytes BIGINT,
|
||||
dump_sha256 TEXT,
|
||||
form_fields JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
runtime_snapshot JSONB NOT NULL DEFAULT '{}'::jsonb,
|
||||
app_log_tail TEXT,
|
||||
resolution_note TEXT,
|
||||
uploader_ip TEXT,
|
||||
user_agent TEXT,
|
||||
occurred_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
resolved_at TIMESTAMPTZ,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_desktop_bug_reports_created_at
|
||||
ON desktop_bug_reports (created_at DESC);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_desktop_bug_reports_status_created
|
||||
ON desktop_bug_reports (status, created_at DESC);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_desktop_bug_reports_severity_created
|
||||
ON desktop_bug_reports (severity, created_at DESC);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_desktop_bug_reports_client
|
||||
ON desktop_bug_reports (desktop_client_id, created_at DESC)
|
||||
WHERE desktop_client_id IS NOT NULL;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_desktop_bug_reports_workspace
|
||||
ON desktop_bug_reports (tenant_id, workspace_id, created_at DESC)
|
||||
WHERE tenant_id IS NOT NULL AND workspace_id IS NOT NULL;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_desktop_bug_reports_crash_guid
|
||||
ON desktop_bug_reports (crash_guid)
|
||||
WHERE crash_guid IS NOT NULL;
|
||||
Reference in New Issue
Block a user