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
Development of applications
| Library | Backward compatibility | Deprecations |
|---|---|---|
| Spring Boot clients | Break changes: adjust code | |
| Worker (Java) | Break changes: adjust code |
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
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=trueDocker 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:8081Below 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}/