Skip to content

Admin UI ​

React-based administration dashboard for managing the Proxy Smart platform. Provides full control over SMART apps, users, FHIR servers, scopes, identity providers, consent, and monitoring.

It is a single-page application against the backend's admin REST API, served as static files from the backend at /webapp/ behind admin-level authentication.

┌────────────┐   Admin API   ┌──────────────┐
│  Admin UI  │ ─────────────►│  Backend     │
│  (React)   │  /admin/*     │  (Elysia)    │
└────────────┘               └──────────────┘

What it administers ​

Most of what the platform knows is configured here at runtime rather than through environment variables, which is why a new FHIR server or SMART client needs no redeploy.

AreaManagesDetail
SMART AppsClient registration, redirect URIs, launch types, Dynamic Client Registration settingsdocs
ScopesFHIR scope definitions, assignment, and reusable scope templatesdocs
Healthcare UsersUsers and the FHIR resources they resolve to (fhirUser)docs
Identity ProvidersExternal SAML and OIDC identity providersdocs
User FederationLDAP and other external user storesdocs
OrganizationsMulti-tenant organizations and per-organization brandingdocs
FHIR ServersServer endpoints, capability probing, and healthdocs
DICOM ServersOrthanc and DICOMweb PACS connectionsdocs
Launch ContextsPer-user patient, encounter, and tenant contextdocs
MonitoringOAuth metrics, FHIR availability, consent decisions, auth attempts, and the admin audit traildocs

Consent enforcement and webhooks, Identity Assurance Level thresholds, backend service credentials, the MCP endpoint, and Keycloak realm settings are configured here too, and have no separate page yet.

Development ​

bash
cd frontend/ui
bun run dev
# -> http://localhost:5173/
CommandDescription
bun run devStart Vite dev server (default port 5173)
bun run buildProduction build
bun run typecheckTypeScript type checking
bun run lintESLint
bun run testVitest unit tests
bun run generateRegenerate API client from backend OpenAPI spec

Tech Stack ​

LayerTechnology
FrameworkReact 19, TypeScript
BuildVite, Tailwind CSS
UIshadcn/ui (via @proxy-smart/shared-ui), Radix primitives
RoutingComponent-based navigation (no router -- single admin SPA)
StateReact hooks, service layer with fetch
ThemeDark/light/system via ThemeProvider
ModalsModalStackProvider from shared-ui

Architecture ​

The Admin UI does not use SmartAppShell -- it has its own LoginForm + AdminApp shell since it authenticates differently (admin credentials, not SMART launch).

App.tsx
  └─ ThemeProvider
      └─ ModalStackProvider
          └─ AdminApp (login gate + navigation + content)
              ├─ LoginForm (when unauthenticated)
              └─ Navigation + Feature Components (when authenticated)

Per-feature documentation starts at the Dashboard; the table above links each area directly.

Proxy Smart — Healthcare Interoperability Platform