Relationships
#237 data query: stepName and jobName fields always empty in CEL results
Opened by webframp · 5/5/2026· Shipped 5/5/2026
Bug
When using swamp data query with CEL predicates, the fields stepName and jobName are listed as available in the CEL schema (shown in error messages), but they are always empty strings in query results.
The actual step and job identifiers are stored in the tags map (e.g., tags.step, tags.workflow, tags.workflowRunId), not in the top-level stepName/jobName fields.
Reproduction
# This returns 0 results even though step-17 data exists:
swamp data query 'stepName == "step-17"' --limit 5 --json
# This works correctly:
swamp data query 'tags.step == "step-17"' --limit 5 --json
# The error message lists both stepName AND tags as valid fields:
swamp data query 'workflow == "x"'
# => Available: ... jobName, ... stepName, ... tags, ...Expected Behavior
Either:
- Populate
stepNameandjobNamefromtags.stepandtags.job(or the workflow context) so queries against them work as expected, OR - Remove
stepName/jobNamefrom the CEL schema since they are never populated, and document thattags.step/tags.workflowetc. should be used instead
Impact
Agents using the documented CEL field names get empty results. This is especially confusing because the error message for unknown fields explicitly suggests these fields are valid. The workaround (using tags.step etc.) is discoverable but not obvious.
Environment
- swamp version: 20260504.233645.0-sha.430c1535
- PR #1297 added the CEL data query domain layer
Shipped
Click a lifecycle step above to view its details.
stack72 commented 5/5/2026, 12:08:19 PM
Heads up on scope: reproduction at HEAD shows that stepName actually IS populated for new workflow data — only jobName is empty. The PR (#1301) therefore narrows to fixing jobName (the actual broken plumbing) and adds a regression test that exercises all three CEL provenance fields (workflowName, jobName, stepName) end-to-end so any future regression of any one is caught.
If you observed empty stepName against current HEAD, please share the exact reproduction commands and your swamp version — there may be a separate code path (e.g. non-workflow data write, or pre-PR-#1145 data on disk) that warrants its own follow-up.
Sign in to post a ripple.