Open-Source Wikis

/

Argo CD

/

Features

/

Web UI

argoproj/argo-cd

Web UI

The Argo CD web UI is a single-page React + TypeScript application bundled into the argocd-server binary.

Where it lives

Path Purpose
ui/src/app/ All product code.
ui/src/app/applications/ The Applications list, detail, tree, sync drawer.
ui/src/app/login/ OIDC + local-account login screens.
ui/src/app/user-info/ Profile, password change.
ui/src/app/settings/ Repos, clusters, projects, accounts, certificates, GPG keys, plugins admin.
ui/src/app/help/ Help content and documentation links.
ui/src/app/sidebar/, ui-banner/ Chrome — left nav, top banner.
ui/src/app/shared/ Cross-page services, components, models.
ui/src/app/webpack.config.js Webpack build configuration.
ui/embed.go go:embed of the prebuilt assets, mounted by argocd-server.
ui/__mocks__/ Jest manual mocks.
ui/scripts/ Build-time helpers.
ui/eslint.config.mjs, ui/.prettierrc, ui/jest.config.js Lint/format/test config.

Build and embed

The UI is built with pnpm build (or make build-ui from the repo root). The output goes to ui/dist/. ui/embed.go then exposes that directory as a go:embed filesystem, which argocd-server mounts as a static handler.

Runtime

server/server.go wires the embedded filesystem under /. Request flow:

graph LR
    Browser --> Server[argocd-server HTTP listener]
    Server --> Static[Static UI assets - go:embed]
    Server --> GRPCWeb[gRPC-Web endpoint]
    Server --> REST[REST gateway]
    Server --> WS[WebSocket: app updates, terminals]

The UI uses gRPC-Web (via grpc-web-client) for unary and server-streaming RPCs, REST (via gRPC-Gateway) for some convenience endpoints, and WebSockets for streaming application updates and pod terminals.

Hot reload during development

Run the UI dev server (with hot reload):

cd ui && pnpm start

Or use the ui line in the repo root Procfile (goreman start). The dev server proxies API calls to the locally-running argocd-server.

Tests

  • ui/jest.config.js — Jest unit tests under ui/src/.
  • ui-test/ (separate top-level dir) — end-to-end UI suite.

API client surface

The UI's gRPC-Web clients are written by hand under ui/src/app/shared/services/. Each maps roughly to one of the server-side gRPC services (Applications, Projects, Clusters, Repositories, Settings, Accounts, etc.). When the protos change, the JS clients are updated by hand to match — there is no auto-generated client for TypeScript.

See also

  • argocd-server — the host runtime.
  • API — the proto surface the UI consumes.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Web UI – Argo CD wiki | Factory