Skip to content

fix: route admin dashboard + temporal ui through the app proxy#926

Merged
im-Amitto merged 1 commit into
mainfrom
am/admin-dashboard-app-proxy
Jul 20, 2026
Merged

fix: route admin dashboard + temporal ui through the app proxy#926
im-Amitto merged 1 commit into
mainfrom
am/admin-dashboard-app-proxy

Conversation

@im-Amitto

Copy link
Copy Markdown
Contributor

What

Two BYOC ctl-api config fixes so the admin dashboard and its Temporal links are served through the dashboard-ui app proxy (app.<root_domain>), same-origin and behind nuon auth:

  1. TEMPORAL_UI_URL (GCP + AWS) → https://app.<root_domain>/admin/temporal.
  2. GCP dashboard_admin.alb.enabled wiring (from admin_dashboard_alb_enabled).

Why

The dashboard-ui server already reverse-proxies /admin/dashboard/* (→ ctl-api-dashboard-admin) and /admin/temporal/* (→ in-cluster temporal-web), both gated to @nuon.co users. The BYOC configs were defeating it:

  • The admin dashboard builds "View in Temporal" as a raw href ${TEMPORAL_UI_URL}/namespaces/.... On GCP this was http://temporal-ui.temporal.svc.cluster.local:8080 (cluster-internal, unreachable from a browser); AWS pointed at the internal domain. Now both point at the app proxy path (matches mono's own values.{prod,stage}.tmpl).
  • On GCP the standalone admin ingress was created regardless of the alb flag; adding dashboard_admin.alb.enabled lets the companion charts gate honor it, so alb=false serves the dashboard only via app.<root_domain>/admin/dashboard.

Depends on / related

Notes

TEMPORAL_UI_URL (validate:"required" in ctl-api) stays non-empty. The dashboard-ui NUON_TEMPORAL_UI_URL upstream (temporal-web.temporal.svc.cluster.local:8080) is unchanged and correct.

@nuon-connect

nuon-connect Bot commented Jul 20, 2026

Copy link
Copy Markdown

Nuon Preview — main-test

Status: ⏳ In Progress

⏳ Parsing config...


Nuonarnjv9sa6dthaq6agoaj7laedo • Updated: Jul 20, 2026 5:52 AM UTC

@nuon-connect

nuon-connect Bot commented Jul 20, 2026

Copy link
Copy Markdown

Nuon Preview — main-test

Status: ⏳ In Progress

⏳ Parsing config...


Nuonarn7awa45ty2g72mb7walslu9z • Updated: Jul 20, 2026 6:16 AM UTC

@nuon-connect

nuon-connect Bot commented Jul 20, 2026

Copy link
Copy Markdown

Nuon Preview — main-test

Status: ✅ Complete

Config Changes — nuon.toml

Section Added Changed Removed
Components 0 1 0
Components (1)
  • ~ component.ctl_api — : modified

Nuonarnwdghmqxyztxcu9oj0hq48xp • Updated: Jul 20, 2026 5:52 AM UTC

The admin dashboard renders "View in Temporal" links from TEMPORAL_UI_URL
as raw browser hrefs. On BYOC this pointed at cluster-internal addresses
(GCP: temporal-ui.temporal.svc.cluster.local:8080; AWS: the internal
domain), which are unreachable from a browser.

Point TEMPORAL_UI_URL at the dashboard-ui reverse proxy
(https://app.<root_domain>/admin/temporal) for both clouds. That path is
same-origin with the admin dashboard, sits behind nuon auth, and dials the
in-cluster temporal-web service server-side.

Also wire dashboard_admin.alb.enabled on GCP (from admin_dashboard_alb_enabled)
so that, with the alb disabled, the admin dashboard is served only via the
app proxy at app.<root_domain>/admin/dashboard, matching AWS. Requires the
companion nuonco/charts gate on the GCP ingress.
@im-Amitto
im-Amitto force-pushed the am/admin-dashboard-app-proxy branch from 4edda00 to 5513d12 Compare July 20, 2026 05:47
@im-Amitto
im-Amitto merged commit b8a134c into main Jul 20, 2026
3 checks passed
@im-Amitto
im-Amitto deleted the am/admin-dashboard-app-proxy branch July 20, 2026 05:49
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