feat: add workflow studio and postgres support
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
-- BoosAPI Workflow Studio core tables.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS workflows (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
public_id TEXT NOT NULL UNIQUE,
|
||||
user_id INTEGER,
|
||||
name TEXT NOT NULL,
|
||||
description TEXT,
|
||||
graph TEXT NOT NULL DEFAULT '{}',
|
||||
is_template INTEGER NOT NULL DEFAULT 0,
|
||||
visibility TEXT NOT NULL DEFAULT 'private',
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
deleted_at TEXT,
|
||||
FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE SET NULL
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_workflows_user_updated
|
||||
ON workflows(user_id, updated_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_workflows_visibility
|
||||
ON workflows(visibility);
|
||||
CREATE INDEX IF NOT EXISTS idx_workflows_deleted
|
||||
ON workflows(deleted_at);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS workflow_runs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
public_id TEXT NOT NULL UNIQUE,
|
||||
workflow_id INTEGER NOT NULL,
|
||||
user_id INTEGER,
|
||||
status TEXT NOT NULL,
|
||||
input_overrides TEXT NOT NULL DEFAULT '{}',
|
||||
final_outputs TEXT,
|
||||
error_message TEXT,
|
||||
started_at TEXT,
|
||||
completed_at TEXT,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
FOREIGN KEY(workflow_id) REFERENCES workflows(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE SET NULL
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_workflow_runs_workflow_created
|
||||
ON workflow_runs(workflow_id, created_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_workflow_runs_user_created
|
||||
ON workflow_runs(user_id, created_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_workflow_runs_status
|
||||
ON workflow_runs(status);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS workflow_node_runs (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
run_id INTEGER NOT NULL,
|
||||
node_id TEXT NOT NULL,
|
||||
node_type TEXT NOT NULL,
|
||||
status TEXT NOT NULL,
|
||||
inputs TEXT NOT NULL DEFAULT '{}',
|
||||
outputs TEXT,
|
||||
error_message TEXT,
|
||||
started_at TEXT,
|
||||
completed_at TEXT,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
FOREIGN KEY(run_id) REFERENCES workflow_runs(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_workflow_node_runs_run
|
||||
ON workflow_node_runs(run_id, id);
|
||||
Reference in New Issue
Block a user