March Docs

Conduit.Dashboard.Queries

Conduit.Dashboard.Queries — read-only data layer for the dashboard.

All functions return safe defaults (Nil / None) on storage errors rather than propagating exceptions, so dashboard pages degrade gracefully when the DB is under pressure.

Functions

fncronscrons(storage : s) : List(Conduit.CronSchedule)#

Load all cron schedules (enabled and disabled) for the crons page.

Uses `dashboard_crons_list` which returns every schedule regardless of
whether it is currently due.  The old `cron_load_due` call only returned
schedules past their next_run_at, which meant disabled and future crons were
invisible to the dashboard.
fndead_lettersdead_letters(storage : s, page : Int) : List(Conduit.DeadLetter)#

Load a paginated list of dead letters (1-based page).

fnjob_by_idjob_by_id(storage : s, job_id : String) : Option(Conduit.JobRow)#

Load a single job by id.

Uses the dedicated `dashboard_job_by_id` storage method for an O(1) lookup
by primary key.  The previous implementation loaded all jobs on page 1 and
did a linear scan in memory — both slow and incomplete (missed jobs on later
pages).
fnjobs_listjobs_list(storage : s, queue : String, status_filter : String, page : Int) : List(Conduit.JobRow)#

Load a paginated list of jobs (queue + optional status filter, 1-based page).

fnnodesnodes(storage : s) : List(Conduit.NodeInfo)#

Load all active cluster nodes.

fnqueue_summaryqueue_summary(storage : s) : List(Conduit.Dashboard.QueueSummary)#

Load per-queue aggregate stats for the overview page.

fnworkflow_by_idworkflow_by_id(storage : s, wf_id : String) : Option(Conduit.WorkflowRow)#

Load workflow detail by id.

fnworkflow_checkpointsworkflow_checkpoints(storage : s, wf_id : String) : List(Conduit.WorkflowCheckpoint)#

Load all checkpoints for a workflow.

fnworkflowsworkflows(storage : s, status_filter : String, page : Int) : List(Conduit.WorkflowRow)#

Load a paginated list of workflows with optional status filter (1-based page).

Passes the page parameter to the storage layer so the DB applies the LIMIT /
OFFSET, rather than loading all workflows into memory and ignoring pagination.