Architecture#

Overview#

ArgoCD IOC Monitor is a React single-page application that provides a dashboard for monitoring ArgoCD-managed IOC (Input/Output Controller) applications.

        graph LR
    Browser --> Nginx
    Nginx -->|/api/| ArgoCD
    Nginx -->|/auth/| ArgoCD
    Nginx -->|/*| SPA[React SPA]
    ArgoCD -.->|OIDC planned| Keycloak
    

Stack#

  • Frontend: React + TypeScript + Vite

  • Styling: Tailwind CSS

  • UI Components: base-ui headless components with Tailwind styling (shadcn pattern)

  • Data Fetching: TanStack React Query

  • Routing: React Router

  • Production Server: Nginx (reverse proxy + static files)

Authentication#

Currently the app uses manually-pasted ArgoCD tokens. Users run argocd login --sso to authenticate via Keycloak, then copy the auth-token and refresh-token from ~/.config/argocd/config into the app’s login dialog. Tokens are stored in localStorage and synced to cookies for API requests.

Optionally, Keycloak OIDC authentication can be enabled via an oauth2-proxy sidecar so users log in through SSO without manual token handling. See Keycloak Authentication for details.

Deployment#

The app is packaged as a Docker container running nginx. A Helm chart is provided for Kubernetes deployment. The nginx config is injected via a ConfigMap so the ArgoCD target URL can be configured per environment.