jobs
📄️ Cancel a non-terminal job. Sets status=cancelled and finished_at=now(). Jobs in 'completed' or 'failed' status cannot be
Cancel a non-terminal job. Sets status=cancelled and finished_at=now(). Jobs in 'completed' or 'failed' status cannot be cancelled (400).
📄️ Enqueue a new background job. For job_type='model.conversion', checks PlanGateService.check_and_consume() first; 402 if
Enqueue a new background job. For job_type='model.conversion', checks PlanGateService.check_and_consume() first; 402 if limit exceeded. scheduled_at = now() + delay_seconds.
📄️ List background jobs for the specified org. job_type filter is applied in-process after the DB fetch.
List background jobs for the specified org. job_type filter is applied in-process after the DB fetch.
📄️ Retrieve a single job by ID. No org scoping.
Retrieve a single job by ID. No org scoping.
📄️ Return log entries associated with a job. Fetched via ILIKE '%{job_id}%' on LogEntry.message, ordered by created_at DESC
Return log entries associated with a job. Fetched via ILIKE '%{job_id}%' on LogEntry.message, ordered by created_at DESC. No FK relationship — string-match heuristic.
📄️ Return aggregated job queue summary. Fetches up to 500 jobs and computes counts by status and job_type in memory. active
Return aggregated job queue summary. Fetches up to 500 jobs and computes counts by status and job_type in memory. active_total = running + in_progress; recent_jobs = first 10 of 500.
📄️ Retry a failed or cancelled job. Resets status=queued, clears error_message, result, progress_pct, scheduled_at=now(). D
Retry a failed or cancelled job. Resets status=queued, clears error_message, result, progress_pct, scheduled_at=now(). Does NOT reset the attempts counter.