Categories

Versions

Patch files from 2026.0.0 to 2026.0.2

As part of the upgrade, apply the following changes in your .env and docker-compose.yml files:

As usual with patch files, the first character in every line has a meaning:

  • Lines starting with + needs to be added
  • Lines starting with - needs to be removed
  • Lines starting with a space ` ` are just for context and should not be changed
  • Lines starting with @@ are indicating the line numbers in the original file and should not be changed

.env

@@ -75,7 +75,7 @@ COMPOSE_HTTP_TIMEOUT=600
 REGISTRY=rapidminer/

 # Version of the Init container
-INIT_VERSION=2026.0.0
+INIT_VERSION=2026.0.2

 # Enable configuring server settings for Python Scripting extension
 INIT_SHARED_CONDA_SETTINGS=true
@@ -86,7 +86,7 @@ INIT_SHARED_CONDA_SETTINGS=true
 #
 # ############################################

-PROXY_VERSION=2026.0.0
+PROXY_VERSION=2026.0.2

 # Deprecated, please use HTTP_PORT and HTTPS_PORT
 UNPRIVILEGED_PORTS=false
@@ -162,10 +162,10 @@ DEBUG_CONF_INIT=false
 # ############################################

 # Keycloak container version
-KEYCLOAK_VERSION=2026.0.0
+KEYCLOAK_VERSION=2026.0.2

 # Keycloak database parameters
-KEYCLOAK_POSTGRES_VERSION=2026.0.0
+KEYCLOAK_POSTGRES_VERSION=2026.0.2
 KEYCLOAK_DBSCHEMA=kcdb
 KEYCLOAK_DBUSER=kcdbuser
 KEYCLOAK_DBPASS=changeit
@@ -194,7 +194,7 @@ KC_HEALTH_ENABLED="true"
 SKIP_LICENSE_CHECK=false
 LICENSE_PROXY_HOSTNAME=license-proxy
 LICENSE_PROXY_PROFILES_ACTIVE=default,prometheus
-LICENSE_PROXY_VERSION=2026.0.0
+LICENSE_PROXY_VERSION=2026.0.2
 # License Proxy url with protocol and port
 LICENSE_PROXY_INTERNAL_URL=http://license-proxy:9898
 # Unique machine id of the deployment
@@ -269,10 +269,11 @@ ALM_HHWU_PROXY_PASSWORD=
 # ############################################

 AIHUB_BACKEND_PROFILES_ACTIVE=default,prometheus
-AIHUB_FRONTEND_VERSION=2026.0.0
-AIHUB_BACKEND_VERSION=2026.0.0
-AIHUB_POSTGRES_VERSION=2026.0.0
+AIHUB_FRONTEND_VERSION=2026.0.2
+AIHUB_BACKEND_VERSION=2026.0.2
+AIHUB_POSTGRES_VERSION=2026.0.2
 AIHUB_DBHOST=aihub-postgresql
+AIHUB_DBPORT=5432
 AIHUB_DBSCHEMA=aihub-db
 AIHUB_DBUSER=aihub-db-user
 AIHUB_DBPASS=changeit
@@ -331,7 +332,7 @@ RAPIDMINER_PYTHON_SDK_EXTENSION_DIR=/aihub/home/resources/python-sdk-extensions
 #
 # ############################################

-JOBAGENT_VERSION=2026.0.0
+JOBAGENT_VERSION=2026.0.2
 JOBAGENT_SPRING_PROFILES_ACTIVE=default,prometheus
 JOBAGENT_QUEUE_ACTIVEMQ_URI=failover:(tcp://aihub-activemq:61616)
 JOBAGENT_CONTAINER_COUNT=2
@@ -354,7 +355,7 @@ JOBAGENT_CONTAINER_PYTHON_SDK_EXTENSIONS_DIR=/home/rapidminer/resources/python-s
 #
 # ############################################

-ACTIVEMQ_VERSION=2026.0.0
+ACTIVEMQ_VERSION=2026.0.2
 BROKER_ACTIVEMQ_USERNAME=amq-user
 BROKER_ACTIVEMQ_PASSWORD="<SERVER-AMQ-PASS-PLACEHOLDER>"
 ENABLE_JMX_EXPORTER=true
@@ -365,7 +366,7 @@ ENABLE_JMX_EXPORTER=true
 #
 # ############################################

-JUPYTERHUB_VERSION=2026.0.0
+JUPYTERHUB_VERSION=2026.0.2
 JUPYTERHUB_DBHOST=jupyterhub-db
 JUPYTERHUB_DBSCHEMA=jupyterhub
 JUPYTERHUB_DBUSER=jupyterhubdbuser
@@ -397,7 +398,7 @@ JUPYTERHUB_DOCKER_DISABLE_NOTEBOOK_IMAGE_PULL_AT_STARTUP=False
 #
 # ############################################

-JUPYTERHUB_NOTEBOOK_VERSION=2026.0.0
@@ -194,7 +194,7 @@ KC_HEALTH_ENABLED="true"
 SKIP_LICENSE_CHECK=false
 LICENSE_PROXY_HOSTNAME=license-proxy
 LICENSE_PROXY_PROFILES_ACTIVE=default,prometheus
-LICENSE_PROXY_VERSION=2026.0.0
+LICENSE_PROXY_VERSION=2026.0.2
 # License Proxy url with protocol and port
 LICENSE_PROXY_INTERNAL_URL=http://license-proxy:9898
 # Unique machine id of the deployment
@@ -269,10 +269,11 @@ ALM_HHWU_PROXY_PASSWORD=
 # ############################################

 AIHUB_BACKEND_PROFILES_ACTIVE=default,prometheus
-AIHUB_FRONTEND_VERSION=2026.0.0
-AIHUB_BACKEND_VERSION=2026.0.0
-AIHUB_POSTGRES_VERSION=2026.0.0
+AIHUB_FRONTEND_VERSION=2026.0.2
+AIHUB_BACKEND_VERSION=2026.0.2
+AIHUB_POSTGRES_VERSION=2026.0.2
 AIHUB_DBHOST=aihub-postgresql
+AIHUB_DBPORT=5432
 AIHUB_DBSCHEMA=aihub-db
 AIHUB_DBUSER=aihub-db-user
 AIHUB_DBPASS=changeit
@@ -331,7 +332,7 @@ RAPIDMINER_PYTHON_SDK_EXTENSION_DIR=/aihub/home/resources/python-sdk-extensions
 #
 # ############################################

-JOBAGENT_VERSION=2026.0.0
+JOBAGENT_VERSION=2026.0.2
 JOBAGENT_SPRING_PROFILES_ACTIVE=default,prometheus
 JOBAGENT_QUEUE_ACTIVEMQ_URI=failover:(tcp://aihub-activemq:61616)
 JOBAGENT_CONTAINER_COUNT=2
@@ -354,7 +355,7 @@ JOBAGENT_CONTAINER_PYTHON_SDK_EXTENSIONS_DIR=/home/rapidminer/resources/python-s
 #
 # ############################################

-ACTIVEMQ_VERSION=2026.0.0
+ACTIVEMQ_VERSION=2026.0.2
 BROKER_ACTIVEMQ_USERNAME=amq-user
 BROKER_ACTIVEMQ_PASSWORD="<SERVER-AMQ-PASS-PLACEHOLDER>"
 ENABLE_JMX_EXPORTER=true
@@ -365,7 +366,7 @@ ENABLE_JMX_EXPORTER=true
 #
 # ############################################

-JUPYTERHUB_VERSION=2026.0.0
+JUPYTERHUB_VERSION=2026.0.2
 JUPYTERHUB_DBHOST=jupyterhub-db
 JUPYTERHUB_DBSCHEMA=jupyterhub
 JUPYTERHUB_DBUSER=jupyterhubdbuser
@@ -397,7 +398,7 @@ JUPYTERHUB_DOCKER_DISABLE_NOTEBOOK_IMAGE_PULL_AT_STARTUP=False
 #
 # ############################################

-JUPYTERHUB_NOTEBOOK_VERSION=2026.0.0
+JUPYTERHUB_NOTEBOOK_VERSION=2026.0.2

 JUPYTERHUB_NOTEBOOK_SSO_NB_UID_KEY=X_NB_UID
 JUPYTERHUB_NOTEBOOK_SSO_NB_GID_KEY=X_NB_GID
@@ -430,7 +431,7 @@ JUPYTERHUB_NOTEBOOK_SHARED_ENV_VOLUME_NAME_DOCKERSPAWNER=coding-shared-vol
 #
 # ############################################

-PLATFORM_ADMIN_VERSION=2026.0.0
+PLATFORM_ADMIN_VERSION=2026.0.2
 PLATFORM_ADMIN_SSO_CLIENT_ID=platform-admin
 PLATFORM_ADMIN_SSO_CLIENT_SECRET=
 PLATFORM_ADMIN_DISABLE_PYTHON=false
@@ -442,7 +443,7 @@ PLATFORM_ADMIN_DISABLE_RTS=false
 #
 # ############################################

-CES_VERSION=2026.0.0
+CES_VERSION=2026.0.2
 DISABLE_DEFAULT_CHANNELS=True
 CONDA_CHANNEL_PRIORITY=strict
 HTTP_PROXY=
@@ -456,7 +457,7 @@ NO_PROXY=platform-admin
 # ############################################

 SCORING_AGENT_SPRING_PROFILES_ACTIVE=default,prometheus
-SCORING_AGENT_VERSION=2026.0.0
+SCORING_AGENT_VERSION=2026.0.2
 SCORING_AGENT_CACHE_REPOSITORY_CLEAR_ON_COLLECTION=false
 SCORING_AGENT_CACHE_REPOSITORY_MAXIMUM_SIZE=50
 # Maximum age in milliseconds of entries held in the cache
@@ -517,7 +518,7 @@ WEBAPI_REGISTRY_PASSWORD=secret
 WEBAPI_AIHUB_CONNECTION_PROTOCOL=http
 WEBAPI_AIHUB_CONNECTION_HOST=aihub-backend
 WEBAPI_AIHUB_CONNECTION_PORT=8080
-WEBAPI_AGENT_VERSION=2026.0.0
+WEBAPI_AGENT_VERSION=2026.0.2
 WEBAPI_GROUP_NAME=DEFAULT
 #WEBAPI_1_GROUP_NAME=
 #WEBAPI_2_GROUP_NAME=
@@ -540,7 +541,7 @@ SCORING_AGENT_RAPIDMINER_LOAD_USER_CERTIFICATES=true
 # ############################################

 WEBAPI_GATEWAY_PROFILES_ACTIVE=default,prometheus
-WEBAPI_GATEWAY_VERSION=2026.0.0
+WEBAPI_GATEWAY_VERSION=2026.0.2
 # The connect timeout in milliseconds
 WEBAPI_GATEWAY_SPRING_CLOUD_GATEWAY_HTTPCLIENT_CONNECT_TIMEOUT=15000
 WEBAPI_GATEWAY_SPRING_CLOUD_GATEWAY_HTTPCLIENT_RESPONSE_TIMEOUT=5m
@@ -564,10 +565,10 @@ WEBAPI_GATEWAY_LOADBALANCER_METRIC_STYLE=CPU_MEMORY
 # ############################################

 # Official grafana image from: https://hub.docker.com/r/grafana/grafana/
-OFFICIAL_GRAFANA_IMAGE=docker.io/grafana/grafana:12.1.1-ubuntu
+OFFICIAL_GRAFANA_IMAGE=docker.io/grafana/grafana:12.3.2-ubuntu
 GF_SECURITY_ANGULAR_SUPPORT_ENABLED=true
 # Image tag used by grafana-proxy and grafana-init
-GRAFANA_UTILS_VERSION=2026.0.0
+GRAFANA_UTILS_VERSION=2026.0.2
 GF_AUTH_GENERIC_OAUTH_SCOPES=email,openid
 GRAFANA_PROXY_REQUEST_TIMEOUT=60 # seconds
 GF_DATAPROXY_TIMEOUT=60 # seconds
@@ -602,7 +603,7 @@ GF_SERVER_ROOT_URL=
 #
 # ############################################

-LETSENCRYPT_VERSION=2026.0.0
+LETSENCRYPT_VERSION=2026.0.2

 # ############################################
 #
@@ -610,7 +611,7 @@ LETSENCRYPT_VERSION=2026.0.0
 #
 # ############################################

-DDM_VERSION=2026.0.0
+DDM_VERSION=2026.0.2

 # ############################################
 #
@@ -618,7 +619,7 @@ DDM_VERSION=2026.0.0
 #
 # ############################################

-LANDING_PAGE_VERSION=2026.0.0
+LANDING_PAGE_VERSION=2026.0.2
 LANDING_PAGE_SSO_CLIENT_ID=landing-page
 LANDING_PAGE_SSO_CLIENT_SECRET=
 LANDING_PAGE_DEBUG=false
@@ -654,10 +655,10 @@ DEPLOYED_PANOPTICON=false
 #
 # ############################################

-PANOPTICON_VIZAPP_VERSION=2026.0.0
-PANOPTICON_VIZAPP_PYTHON_VERSION=2026.0.0
-PANOPTICON_MONETDB_IMAGE_VERSION=2026.0.0
-PANOPTICON_RSERVE_IMAGE_VERSION=2026.0.0
+PANOPTICON_VIZAPP_VERSION=2026.0.2
+PANOPTICON_VIZAPP_PYTHON_VERSION=2026.0.2
+PANOPTICON_MONETDB_IMAGE_VERSION=2026.0.2
+PANOPTICON_RSERVE_IMAGE_VERSION=2026.0.2

 PANOPTICON_SSO_CLIENT_ID=panopticon
 PANOPTICON_SSO_CLIENT_SECRET=

docker-compose.yaml

@@ -124,6 +124,10 @@ services:
       - PGTZ=${TZ}
     volumes:
       - keycloak-db-vol:/var/lib/postgresql/data
+    # SIGINT triggers fast shutdown in postgres
+    stop_signal: SIGINT
+    # give it time to checkpoint and exit cleanly before SIGKILL
+    stop_grace_period: 90s
     networks:
       idp-db-net:
         aliases:
@@ -132,7 +136,7 @@ services:
       - keycloak
       - deployment-init
     healthcheck:
-      test: pg_isready -d ${KEYCLOAK_DBSCHEMA} -U ${KEYCLOAK_DBUSER}
+      test: pg_isready -h 127.0.0.1 -d ${KEYCLOAK_DBSCHEMA} -U ${KEYCLOAK_DBUSER}
       interval: 60s
       timeout: 30s
       retries: 5
@@ -268,6 +272,10 @@ services:
       - PGTZ=${TZ}
     volumes:
       - aihub-db-vol:/var/lib/postgresql/data
+    # SIGINT triggers fast shutdown in postgres
+    stop_signal: SIGINT
+    # give it time to checkpoint and exit cleanly before SIGKILL
+    stop_grace_period: 90s
     networks:
       aihub-db-net:
         aliases:
@@ -276,7 +284,7 @@ services:
       - aihub-backend
       - deployment-init
     healthcheck:
-      test: pg_isready -d ${AIHUB_DBSCHEMA} -U ${AIHUB_DBUSER}
+      test: pg_isready -h 127.0.0.1 -d ${AIHUB_DBSCHEMA} -U ${AIHUB_DBUSER}
       interval: 60s
       timeout: 30s
       retries: 5
@@ -367,7 +375,7 @@ services:
       - SERVER_FORWARD_HEADERS_STRATEGY=framework
       - LOGGING_LEVEL_COM_RAPIDMINER_EXECUTION_JOBSERVICE_SCHEDULED=${LOGGING_LEVEL_COM_RAPIDMINER_EXECUTION_JOBSERVICE_SCHEDULED}
       - DB_HOST=${AIHUB_DBHOST}
-      - DB_PORT=5432
+      - DB_PORT=${AIHUB_DBPORT:-5432}
       - DB_NAME=${AIHUB_DBSCHEMA}
       - DB_USER=${AIHUB_DBUSER}
       - DB_PASSWORD=${AIHUB_DBPASS}
@@ -844,6 +852,10 @@ services:
       - PGTZ=${TZ}
     volumes:
       - jupyterhub-db-vol:/var/lib/postgresql/data
+    # SIGINT triggers fast shutdown in postgres
+    stop_signal: SIGINT
+    # give it time to checkpoint and exit cleanly before SIGKILL
+    stop_grace_period: 90s
     networks:
       jupyterhub-user-net:
         aliases:
@@ -851,7 +863,7 @@ services:
     profiles:
       - jupyter
     healthcheck:
-      test: pg_isready -d ${JUPYTERHUB_DBSCHEMA} -U ${JUPYTERHUB_DBUSER}
+      test: pg_isready -h 127.0.0.1 -d ${JUPYTERHUB_DBSCHEMA} -U ${JUPYTERHUB_DBUSER}
       interval: 60s
       timeout: 30s
       retries: 5
@@ -1131,7 +1143,7 @@ services:
       - PANOPTICON_DEFAULT_ROLES=VIEWER
       - DATASTORE_CONNECTION_PASSWORD=${PANOPTICON_MONETDB_ADMIN_PASS}
       - LICENSE_HWU_HOSTED_AUTHORIZATION_PASSWORD=${LICENSE_UNIT_MANAGER_PASSWORD}
-      - LICENSE_HWU_HOSTED_AUTHORIZATION_TOKEN=${LICENSE_UNIT_MANAGER_AUTH_CODE}
+      - LICENSE_HWU_HOSTED_AUTHORIZATION_AUTHCODE=${LICENSE_UNIT_MANAGER_AUTH_CODE}
       - LICENSE_HWU_HOSTED_AUTHORIZATION_USERNAME=${LICENSE_UNIT_MANAGER_USER_NAME}
       - LICENSE_HWU_URI=${ALTAIR_LICENSE_PATH}
       - CONNECTOR_PYTHON_MODE=fast_api