Jobs Overview
Job list page with status and type filtering, search, and real-time updates.
Jobs
Every infrastructure operation is modeled as a job. The Jobs page shows all jobs with filtering, search, and real-time status updates. For the technical deep dive on how jobs are queued and claimed, see Job Queue Pattern.
Job List Page
Located at /dashboard/jobs, the page shows:
Filters
Status filters (button group):
- All, QUEUED, PROCESSING, SUCCESS, FAILED, CANCELLED
Type filters (button group):
- All Types, DEPLOY, PLAN, DESTROY, CONNECTION_TEST, FETCH_RESOURCES, DEPLOY_WORKER, UPDATE_WORKER, DESTROY_WORKER
Search — filter by job ID, Runner name, or spec name.
Data Table
| Column | Description |
|---|---|
| Type | Job type with icon |
| Status | Color-coded badge |
| Spec | Target spec project name |
| Runner | Assigned Runner name |
| Started | Timestamp |
| Completed | Timestamp |
| Duration | Elapsed time |
Click any row to navigate to the job detail page.
Real-time Updates
The jobs store receives real-time events from the dashboard layout's Supabase subscription. New jobs appear automatically, and status changes update badges in-place without page refresh. See Real-time Architecture.
Runner Select Popover
When triggering Plan, Apply, or Destroy from a spec, the Runner Select Popover appears:
- Lists all registered Runners with status indicators (green = ONLINE, yellow = DRAINING, red = OFFLINE)
- "Any available" option for automatic assignment
- Only ONLINE Runners can accept new jobs
The selected Runner's ID is stored as assigned_worker_id on the job.