Files
llmgw/internal/store/migrations/sqlite/0044_jobs.sql
T
Ilker ManapandClaude Fable 5.1 b51cc3cf92 A 3D model is a job: queued with an id, asked after, its result a file
POST /v1/3d/generations answers 202 with a job; GET says its status,
progress and result file; cancel stops it in the engine's queue too. The
request is kept as sent and replayed by whichever gateway holds the lease
through the path a client's request takes, so it is charged and judged
like any request (tagged job=<id>), and a model still loading is waited
out for as long as the job has. Migration 0044. Nothing makes 3D models
yet; the door refuses every model until the ComfyUI adapter learns meshes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-10 16:04:11 +02:00

34 lines
1.5 KiB
SQL

-- Jobs (BACKLOG G1): a request that takes minutes — a 3D model from a
-- picture — answered with an id and asked after, rather than held open.
-- The request is kept as it was sent, so whichever gateway holds the lease
-- replays it through the same path a client's request takes; the result is
-- a file in the files table, kept for the batch files' retention.
CREATE TABLE jobs (
id TEXT PRIMARY KEY,
owner TEXT NOT NULL,
key_id TEXT NOT NULL,
endpoint TEXT NOT NULL,
model TEXT NOT NULL,
input BLOB NOT NULL,
-- status is queued, running, completed, failed, cancelling, cancelled or
-- expired.
status TEXT NOT NULL,
-- progress is what the engine said of the work so far, as JSON: queue
-- position, percent, step. Empty until it says anything.
progress TEXT NOT NULL DEFAULT '',
-- prompt_id is the engine's own id for the work (ComfyUI's prompt_id),
-- so a gateway that takes over a running job asks after the same work.
prompt_id TEXT NOT NULL DEFAULT '',
output_file_id TEXT NOT NULL DEFAULT '',
content_type TEXT NOT NULL DEFAULT '',
error TEXT NOT NULL DEFAULT '',
created_at INTEGER NOT NULL,
started_at INTEGER NOT NULL DEFAULT 0,
finished_at INTEGER NOT NULL DEFAULT 0,
expires_at INTEGER NOT NULL,
lease_owner TEXT NOT NULL DEFAULT '',
lease_until INTEGER NOT NULL DEFAULT 0
);
CREATE INDEX jobs_owner ON jobs (owner, created_at);
CREATE INDEX jobs_status ON jobs (status, lease_until);