feat(coderd): add support for provisioner job id and tag filter (#16556)

This change adds to new filters to the provisionerjobs endpoint, id
(array) and tags (map).

Updates #15084
Updates #15192
Related #16532
This commit is contained in:
Mathias Fredriksson
2025-02-13 18:24:27 +02:00
committed by GitHub
parent ade0a53ddb
commit e38bd27183
10 changed files with 110 additions and 7 deletions

View File

@ -6472,6 +6472,7 @@ WHERE
($1::uuid IS NULL OR pj.organization_id = $1)
AND (COALESCE(array_length($2::uuid[], 1), 0) = 0 OR pj.id = ANY($2::uuid[]))
AND (COALESCE(array_length($3::provisioner_job_status[], 1), 0) = 0 OR pj.job_status = ANY($3::provisioner_job_status[]))
AND ($4::tagset = 'null'::tagset OR provisioner_tagset_contains(pj.tags::tagset, $4::tagset))
GROUP BY
pj.id,
qp.queue_position,
@ -6486,13 +6487,14 @@ GROUP BY
ORDER BY
pj.created_at DESC
LIMIT
$4::int
$5::int
`
type GetProvisionerJobsByOrganizationAndStatusWithQueuePositionAndProvisionerParams struct {
OrganizationID uuid.NullUUID `db:"organization_id" json:"organization_id"`
IDs []uuid.UUID `db:"ids" json:"ids"`
Status []ProvisionerJobStatus `db:"status" json:"status"`
Tags StringMap `db:"tags" json:"tags"`
Limit sql.NullInt32 `db:"limit" json:"limit"`
}
@ -6515,6 +6517,7 @@ func (q *sqlQuerier) GetProvisionerJobsByOrganizationAndStatusWithQueuePositionA
arg.OrganizationID,
pq.Array(arg.IDs),
pq.Array(arg.Status),
arg.Tags,
arg.Limit,
)
if err != nil {