Skip to content

feat(ops): Showroom links and /healthz /readyz probes in Workshop Control#3208

Open
d-jana wants to merge 4 commits into
mainfrom
feature/ops-showroom-health-panel
Open

feat(ops): Showroom links and /healthz /readyz probes in Workshop Control#3208
d-jana wants to merge 4 commits into
mainfrom
feature/ops-showroom-health-panel

Conversation

@d-jana

@d-jana d-jana commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a Showrooms collapsible panel on Admin → Operations Workshop Control so operators can see per-user showroom URLs from ResourceClaim provision data (same rules as ServiceUsers.tsx) and probe /healthz and /readyz on each showroom origin (aligned with agnosticd/showroom VM/nookbag: separate liveness vs readiness on the same host).
ops-showroom-panel-mockup


User-facing behavior

Item Details
Showrooms Link-style control in the Name column.
Single-workshop row Button on the main row.
Multi-asset / grouped Expand the group (chevron); each child row has its own Showrooms.
Panel Full-width row under the workshop; scrollable inner table (max-height ~280px).
Data provision_data.users (summary + resource state) + babylon.gpte.redhat.com/labUserInterfaceUrls.
Probe URLs new URL(showroomUrl).origin + /healthz and /readyz.
Batch Check healthz / Check readyz run all URLs in that column in parallel.
Per row Separate healthz and readyz recheck (only updates that probe).
Dots Green = HTTP OK; red = non-OK; gray = unknown (e.g. CORS); pulsing blue = loading.
On open Both probes run for every row.

Files changed

Path Role
catalog/ui/src/app/Admin/Ops.tsx showroomPanelOpen, Showrooms UI, full-width panel row, OpsShowroomPanelTable.
catalog/ui/src/app/Admin/OpsShowroomPanel.tsx Table, fetch probes, batch + row actions, status dots.
catalog/ui/src/app/Admin/showroomLinksFromClaims.ts Extract users/URLs; derive health URLs.
catalog/ui/src/app/Admin/showroomLinksFromClaims.spec.ts Unit tests.
catalog/ui/src/app/Admin/ops.css Panel, scroll, batch row, dots, row actions layout.

Tests

  • jest: showroomLinksFromClaims.spec.ts, Ops.spec.tsx (and related) pass.

Notes / limitations

  • CORS: Browser probes may show unknown when the showroom origin does not allow cross-origin reads; operators can open the showroom link in a new tab.
  • OCP vs VM: Origin-based /healthz and /readyz match the VM Traefik + nookbag-sidecar pattern; OpenShift Helm charts may differ by version.

Reviewer checklist

  • Showrooms placement: standalone vs expanded multi-asset.
  • Probes in a real environment (including CORS).
  • No regression: selection, filters, pagination, other Ops actions.

d-jana added 4 commits April 14, 2026 19:19
Add a Showrooms panel per workshop with per-user showroom URLs from
ResourceClaim provision data (aligned with ServiceUsers). Collapsible
scrollable table with batch Check healthz / Check readyz and status
dots per row. Initial probe on open; per-row Recheck for both URLs.

Made-with: Cursor
Replace single Recheck with per-endpoint link buttons; column header Recheck.

Made-with: Cursor
Include generator script and optional Pillow requirements for regeneration.

Made-with: Cursor
Drop docs image and optional scripts; feature code unchanged.

Made-with: Cursor
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