ObanPowertools.Web.Selectors (oban_powertools v0.5.0)

Copy Markdown View Source

Canonical URL selector encoding for Oban Powertools native operator surfaces.

Centralizes encoding of all /ops/jobs/... destination paths behind a single helper that applies URI.encode_query/1 consistently, dropping nil and "" values before encoding so callers never need to filter themselves.

Canonical stable selector set

The following parameter names are the stable public selector contract (Phase 34 D-25):

  • incident_fingerprint — incident identity; may contain delimiters (:, /, ?, #, %, , &, =)
  • resource_type — forensic resource scope ("job", "workflow", "workflow_step", "cron_entry", "limiter")
  • resource_id — forensic resource identifier
  • workflow_id — workflow record ID for workflow-scoped forensic and Lifeline destinations
  • step — workflow step name for step-scoped destinations
  • view — Lifeline view tab ("active", "resolved")

Permissive non-canonical keys

The helper is deliberately permissive: non-canonical keys (row-id, action, entry, resource, event_type) pass through URI.encode_query/1 unchanged so that Lifeline's selection_path/1 and similar callsites can migrate without restructuring their params.

Keyword-list ordering

Pass a keyword list (not a map) when existing tests assert literal URL order. The helper preserves keyword-list iteration order via URI.encode_query/1 — do NOT convert to a map first, because map iteration order is unspecified.

Empty-query behavior

When all params are nil or "", the helper returns the bare path without a trailing ?.

Summary

Functions

Returns the /ops/jobs/audit path with the given params encoded.

Returns the /ops/jobs/cron path with the given params encoded.

Encodes params for the given destination atom and returns the full path.

Returns the /ops/jobs/forensics path with the given params encoded.

Returns the path for a specific job detail page.

Returns the /ops/jobs/jobs path with the given params encoded.

Returns the /ops/jobs/lifeline path with the given params encoded.

Returns the /ops/jobs/limiters path with the given params encoded.

Functions

audit_path(params)

Returns the /ops/jobs/audit path with the given params encoded.

cron_path(params)

Returns the /ops/jobs/cron path with the given params encoded.

encode(destination, params)

Encodes params for the given destination atom and returns the full path.

destination must be one of :lifeline, :forensics, :audit, :limiters, :cron. params is a keyword list or map. nil and "" values are dropped before encoding.

forensic_path(params)

Returns the /ops/jobs/forensics path with the given params encoded.

job_detail_path(id)

Returns the path for a specific job detail page.

jobs_path(params \\ [])

Returns the /ops/jobs/jobs path with the given params encoded.

lifeline_path(params)

Returns the /ops/jobs/lifeline path with the given params encoded.

limiter_path(params)

Returns the /ops/jobs/limiters path with the given params encoded.