Skip to content

Operations table, 6h dashboard, per-PP event payload#36

Merged
AquiGorka merged 5 commits into
mainfrom
feat-provider-dashboard-rework
May 29, 2026
Merged

Operations table, 6h dashboard, per-PP event payload#36
AquiGorka merged 5 commits into
mainfrom
feat-provider-dashboard-rework

Conversation

@AquiGorka
Copy link
Copy Markdown
Contributor

Summary

Provider dashboard rework that lands alongside the merged provider-platform changes (#106). Five atomic commits:

  • feat(api)listRecentBundles(ppPublicKey, limit) and getBundleDetail(bundleId) clients for the new dashboard endpoints.
  • feat(events-client) — widen the mempool.bundle_added event payload type with entityName, jurisdictions, amount so dashboards can render a row without an extra REST roundtrip.
  • fix(home) — council cards on the home view stop showing the union of council jurisdictions + PP-claimed jurisdictions. Now only the PP's own claim is shown.
  • feat(provider) — the bulk of the work on /provider/:pk:
    • Operations table replacing the topology zone: stage-color dot + entity name with hover tooltip (Title-cased stage), Action with reconciliation tooltip, Jurisdiction flags, Amount, Asset, Date. Counts strip above (queued/submitting/completed/failed/expired). Sticky header. Mounted from listRecentBundles + upserted from WS events.
    • Counter cards matched to dashboard's dark theme, 6h window, four cards (Throughput / Avg Latency / Queue Peak / Error Rate).
    • Sparklines unified to a single shared color, real X/Y axis lines (1px non-scaling stroke), min/max labels on the left and "6h ago"/"now" labels underneath, 10px gap between titles and charts.
    • Copy: "Activity" → "Live feed", "No events yet." → "Nothing happening".
  • chore — version bump 0.2.24 → 0.3.0.

Test plan

  • deno task check
  • deno fmt --check
  • deno lint
  • Local hard-refresh against merged provider-platform main — Operations table populates, counters / sparklines render on 6h data, live feed streams in

AquiGorka added 5 commits May 29, 2026 11:10
Two thin clients for the provider-platform endpoints that back the
new Operations table on the provider dashboard:

- listRecentBundles(ppPublicKey, limit) → GET /dashboard/bundles
  scoped to a PP, returns entityName / jurisdictions / aggregated
  amount alongside id / status / channelContractId / timestamps.
- getBundleDetail(bundleId) → GET /dashboard/bundles/:id, returns
  the decoded operation list for row expansion.
provider-platform now includes entityName, jurisdictions, and amount
on the bundle-added event so dashboards can render an Operations row
without an extra REST roundtrip. Widen the ProviderEvent type so the
new fields type-check at the consumer (provider view).
The 3-up council cards on the home view were rendering the union of
council jurisdictions + PP-claimed jurisdictions, which made it look
like a PP covered every country the council operated in. Now the card
shows only what the PP itself claimed (falls back to council
jurisdictions when there's no claim yet), matching the equivalent
fix already in the provider view.
Replaces the v2 events / topology zone on /provider/:pk with a
2-column dashboard: Operations table on the left, Live feed on the
right, counter cards on top, sparklines below. All counters and
sparklines run on a 6-hour window so they survive low-traffic gaps
and make sustained behaviour visible.

- Operations table: per-row stage circle + entity name (hover for
  Title-cased stage), Action with reconciliation tooltip, Jurisdiction
  flags, Amount, Asset, Date. Sticky header with a queued/submitting/
  completed/failed/expired counts strip above. Mounted from
  listRecentBundles on load + upserted from WS events.
- Counter cards (Throughput / Avg Latency / Queue Peak / Error Rate):
  matched to the dashboard's dark theme, dropped the hard-coded blue
  panel + per-card "last 6h" sub-text (the section title carries that).
- Sparklines: single shared colour, real X/Y axes with a 1px non-
  scaling stroke, min/max labels on the left, "6h ago"/"now" labels
  underneath, 10px gap between each title and its chart.
- Copy: "Activity" → "Live feed", "No events yet." → "Nothing
  happening".

Drops the dead PREVIEW_STAGE_COLORS table now that rows render with
border-only colour, no fill.
@AquiGorka AquiGorka force-pushed the feat-provider-dashboard-rework branch from 6faa6ab to d54fc67 Compare May 29, 2026 14:12
@AquiGorka AquiGorka merged commit 01be900 into main May 29, 2026
6 checks passed
@AquiGorka AquiGorka deleted the feat-provider-dashboard-rework branch May 29, 2026 14:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant