From 4.0.3 to 4.0.3-fp1

Summary

Optimization Server 4.0.3-fp1 introduces breaking changes in:

  • Master default configuration

  • Master API

  • Spring Boot API client

  • custom Java Workers

  • Docker-compose deployment

Master default configuration

Before 4.0.3-fp1, Optimization Server master was limiting the maximum number of workers to 5 by default. This has been changed to disable this limit by default. You can use the environment variable OPTIMSERVER_SERVICE_MAXPARALLELONDEMANDWORKERS to configure this value (0 means no limit).

Helm charts

dbos-infra chart

See this page for more details.

New configuration entry has been added, to disable the RabbitMQ consumer timeout:

4.0.3-fp1:

rabbitmq:
  mount:
    /etc/rabbitmq/advanced.config: "[{rabbit, [{consumer_timeout, undefined}]}]."

Spring Boot API client

The version of the Spring Boot framework has been upgraded from 2.x to 3.x. You must use Spring Boot 3 to use one of the Spring Boot client ( web API, SSE, AMQP ).

Worker

The version of the Spring Boot framework has been upgraded from 2.x to 3.x. You may have to do some modifications in your worker's code if it uses classes from the Spring Boot framework.

Master API

Master API is now more rigorous regarding the path of HTTP requests it receives, the trailing slash is not ignored. To give you an example, a request GET /tasks/ does not match GET /tasks anymore. This could lead to unexpected HTTP 404 errors in your client application.

If you need to enable back this mapping (this is not recommended) you can add the following environment variable to the deployment environment of master:

PLATFORM_TRAILINGSLASH_WEBMVC_USETRAILINGSLASHMATCH=true

Docker deployment

The variable KEYCLOAK_AUTH_SERVER_URL located in the .env file has been reworked, the trailing slash has been removed:

- # URL used to access Keycloak. Use a public DNS domain in production  (ex: https://keycloak.yourdomain.com/).
- KEYCLOAK_AUTH_SERVER_URL=http://localhost:8081/
+ # URL used to access Keycloak. Use a public DNS domain in production  (ex: https://keycloak.yourdomain.com).
+ KEYCLOAK_AUTH_SERVER_URL=http://localhost:8081

Below the corresponding changes that have been made in the file docker-compose.yml:

  ...
  master:
    ...
    environment:
-     - KEYCLOAK_AUTHSERVERURL=${KEYCLOAK_AUTH_SERVER_URL}auth
+     - KEYCLOAK_PUBLICAUTHSERVERURL=${KEYCLOAK_AUTH_SERVER_URL}/auth
  ...
  web-console:
    ...
    environment:
-     - KEYCLOAK_URL=${KEYCLOAK_AUTH_SERVER_URL}
+     - KEYCLOAK_URL=${KEYCLOAK_AUTH_SERVER_URL}/