feat: add lab SQLite migrate, LiteLLM env, and OTEL/Grafana stack
sonar / sonar (push) Skipped
sonar / sonar (pull_request) Failing after 40s
sonar / sonar (push) Skipped
sonar / sonar (pull_request) Failing after 40s
Enable local workshop readiness with executable SQLite migrations, OpenTelemetry hello signals, and a provisioned Grafana demo dashboard over Tempo/Loki/Prometheus. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
-- TicketLab initial schema (lab / walking skeleton)
|
||||
CREATE TABLE IF NOT EXISTS schema_migrations (
|
||||
id TEXT PRIMARY KEY NOT NULL,
|
||||
applied_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tickets (
|
||||
id TEXT PRIMARY KEY NOT NULL,
|
||||
description TEXT NOT NULL,
|
||||
status TEXT NOT NULL CHECK (status IN ('PENDING', 'CLASSIFIED', 'FAILED')),
|
||||
category TEXT CHECK (
|
||||
category IS NULL
|
||||
OR category IN ('INCIDENT', 'ACCESS_REQUEST', 'BILLING', 'FEATURE_REQUEST', 'OTHER')
|
||||
),
|
||||
confidence REAL CHECK (
|
||||
confidence IS NULL OR (confidence >= 0 AND confidence <= 1)
|
||||
),
|
||||
failure_reason TEXT CHECK (
|
||||
failure_reason IS NULL
|
||||
OR failure_reason IN ('AI_TIMEOUT', 'AI_UNAVAILABLE', 'AI_INVALID_RESPONSE')
|
||||
),
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_tickets_status ON tickets (status);
|
||||
CREATE INDEX IF NOT EXISTS idx_tickets_created_at ON tickets (created_at);
|
||||
Reference in New Issue
Block a user