echo-frontend is the user-facing tier (Tier 1) of the echo reference application — a no-build web-component UI served by nginx that submits Nextflow runs and renders the foxfire dashboard. It talks only to echo-backend over /api/*. It runs on Kubernetes (CoreWeave dev/prod, OrbStack local).
POST /api/runs).POST /api/graphql), refreshing on a timer and immediately after a launch.The reference application needs a UI to drive and observe runs. It shows the front-end slot of the pattern: plain custom elements, no build step, served by nginx, talking to a single backend. The same deploy machinery carries it as carries the Wanderland-engine tiers.
index.html shell loads plain ES-module web components (echo-workflow-submit, echo-run-list) and a small data layer (js/foxfire.js). No build step; the components paint client-side and fetch JSON./api/* to echo-backend with the prefix stripped: /api/runs → backend /runs, /api/graphql → backend /graphql. /healthz returns 200 from nginx independent of the backend.advaita/echo-frontend (ECR), nginx:1.27-alpine serving the static assets + the web-component JS. Built and pushed by echo-frontend/vivarta.yml.http), probes /healthz.http.letsencrypt-prod). local is plain HTTP echo.localhost with no whitelist.echo-frontend/cfn/dns.yml) → the cluster's nginx-ingress IP; local omits it (per-env !Environment components).vivarta-echo.| Env | Context | Host |
|---|---|---|
| local | orbstack |
echo.localhost |
| dev | useast13-dev |
echo-dev.cw.advaitabio.com |
| prod | useast13-prod |
echo.cw.advaitabio.com |
nginx.conf: static root + /api/ proxy_pass to echo-backend.vivarta-echo.svc.cluster.local:8080/.echo-frontend/vivarta.yml (containerized_deployment; docker_build → ECR; k8s_provisioner + the CFN DNS component on dev/prod; per-env !Environment components + a definitions anchor so local skips DNS). git-sha image tag.| Dependency | Use | Endpoint |
|---|---|---|
| echo-backend | launch + reads | echo-backend.vivarta-echo.svc.cluster.local:8080 (via /api/*) |
| ECR | image registry | advaita/echo-frontend |
| Route53 (dev/prod) | public DNS | zone cw.advaitabio.com |
| cert-manager (dev/prod) | TLS | letsencrypt-prod |
End users via the browser. No in-cluster dependents.
The UI is unreachable; launching and observing runs through the UI stops. The backend, receiver, and any in-flight runs are unaffected. Blast radius is the UI.
vivarta-examples (echo-frontend/). Static HTML + web components + nginx. Uncommitted as of 2026-07-01.runId/status/taskCount/totalCost) vs the deployed foxfire schema: TBD verify against a live foxfire.