SquidSonar.Dashboard (squid_sonar v0.3.0)

Copy Markdown View Source

Builds dashboard-ready runtime snapshots.

Summary

Functions

Loads recent runs and returns the dashboard snapshot.

Normalizes untrusted URL parameters into dashboard filter and pagination state.

Serializes normalized dashboard state into a stable, minimal query parameter list.

Resolves a unique run id from the bounded recent-run listing.

Types

t()

@type t() :: %SquidSonar.Dashboard{
  filtered_count: non_neg_integer(),
  filters: map(),
  load_error: term() | nil,
  loaded_at: DateTime.t(),
  loaded_count: non_neg_integer(),
  page: pos_integer(),
  page_size: pos_integer(),
  page_sizes: [pos_integer()],
  queues: [String.t()],
  runs: [SquidSonar.Runs.RunSummary.t()],
  status_counts: %{required(atom()) => non_neg_integer()},
  statuses: [atom()],
  terminal_statuses: [atom()],
  total_pages: pos_integer(),
  workflows: [String.t()]
}

Functions

load(opts \\ [])

@spec load(keyword()) :: t()

Loads recent runs and returns the dashboard snapshot.

normalize_params(params)

@spec normalize_params(term()) :: %{
  filters: map(),
  page: pos_integer(),
  page_size: pos_integer()
}

Normalizes untrusted URL parameters into dashboard filter and pagination state.

query_params(filters, page, page_size)

@spec query_params(map(), term(), term()) :: [{String.t(), String.t()}]

Serializes normalized dashboard state into a stable, minimal query parameter list.

resolve_run_prefix(prefix, opts \\ [])

@spec resolve_run_prefix(
  term(),
  keyword()
) ::
  {:ok, String.t()}
  | {:error, :invalid_prefix | :not_found | :ambiguous | :unavailable}

Resolves a unique run id from the bounded recent-run listing.

Exact matches win over prefix matches. Ambiguous, invalid, missing, and unavailable results are returned without inspecting guessed run ids.