Runtime requirements
Environment variables
Server
Database
See Database Configuration. The container readsSPRING_DATASOURCE_URL, SPRING_DATASOURCE_USERNAME, SPRING_DATASOURCE_PASSWORD, and HIBERNATE_DDL_AUTO.
OIDC / Security
See Identity & Access Management for the full provider walkthrough. The container reads theALETYX_OIDC_* family:
Logging
Logging defaults toINFO at the root. Raise specific loggers via standard Spring Boot LOGGING_LEVEL_* environment variables when debugging a code path; revert before normal operation.
Secrets handling
The image accepts secret values via plain environment variables. Never embed secrets in the image, in command-line arguments, or in version-controlled configuration. Use the secret-management primitive of your platform:- Container / Podman: pass secrets via
--env-file <file>with restrictive permissions (chmod 600), or Container/Podman secrets. - Kubernetes: use a
Secretreferenced viaenvFromorvalueFrom.secretKeyRef; enable encryption at rest. If your platform integrates an external secret store, surface the values as environment variables — the container only consumes environment variables. - OpenShift: use a
Secretand inherit the tenant’s encryption-at-rest policy.
SPRING_DATASOURCE_PASSWORD, ALETYX_OIDC_ENTRA_CLIENT_SECRET (or ALETYX_OIDC_KEYCLOAK_CLIENT_SECRET), ALETYX_OIDC_INTERNAL_SECRET.
Container registry authentication
The Decision Control image is distributed from a private container registry. Credentials are issued per organization; the username is typically your account email and the password is an API token created in your account settings. On Container / Podman, log in once on the host that pulls the image:docker-registry Secret in the target namespace and reference it from the imagePullSecrets of the Decision Control Deployment (see Kubernetes & OpenShift Deployment):
Example — container run (evaluation, no auth)
Example — production-shaped (Entra, env-file)
Health and verification
The container exposes a single unauthenticated health endpoint, targeted by both Kubernetes probes:200 with body:
DOWN and the endpoint returns a non-200 status.
The OIDC bootstrap endpoint:
Operational considerations
- The image runs as a non-root user.
- The frontend reads runtime configuration from
GET /env.json, which the backend renders from environment variables at startup. After changing environment variables, restart the container so the rendered/env.jsonreflects the new values. If a CDN sits in front, ensure/env.jsonis not cached (its path contains.json, which can match*.jscaching rules).