Skip to content
Snippets Groups Projects
user avatar
richard.petersen authored
8c921c8f
History

ui-middleware

Provides the collected manifest.json of services in a cluster as well as a list of dependencies for each source file. This information can be used to dynamically compile all ui components at runtime in the browser. Besides serving the information about all resources, this service can also function to provide snapshots of all the resources available at a specific point in time.

Endpoint

  • /manifests
  • /dependencies

Deployments

local

  • adjust .env
  • run yarn dev

docker

docker build -t ui-middleware .
docker run -t -i -p 8080:8080 ui-middleware

kubernetes

cd helm
helm upgrade -i -f ui-middleware/values.yaml -f values/develop.yaml ui-middleware ./ui-middleware

It is possible to horizontally scale the UI Middleware, as more clients are fetching resources from this service. Each instance maintains a cache of all files locally (in memory), allowing to scale easily.

Configuration

local, docker

Parameter Description Default
PORT Exposed port "8080"
CACHE_TTL Vite manifest caching time 30000
LOG_LEVEL Pino log level "info"
REDIS_HOST Redis host (required)
REDIS_PORT Redis port (optional) 6379
REDIS_DB Redis DB, e.g. "1" (optional) null
REDIS_PASSWORD Redis password (optional) null

kubernetes

Parameter Description Default
port Exposed port "8080"
cacheTTL Vite manifest caching time 30000
logLevel Pino log level "info"
redis.host Redis host
redis.port Redis port (optional) 6379
redis.db Redis DB, e.g. "1" (optional) null
redis.password Redis password (optional) null

Ingress

When using Ingress to make the service available to the public, the service is intended to be configured as a "fallback" or "default" service to answer all requests that are not specified to be served by one of the other services (e.g like everything under /api). This should simplify the Ingress configuration. One example can be found in the ui-middleware repository.