Patch Level Update

This guide explains how to perform a patch level update. The patch level is the version number “after the second dot”. Example: update from 2.1.2 to 2.1.2.

Enterprise and Community+ users

Please note that Patch Level Updates are only provided to community+ and enterprise customers, they are not available in the community edition.

Database Patches

Between patch levels, the structure of the database schema is not changed. The database structure of all patch releases is backward compatible with the corresponding minor version. Our database schema update guide provides details on the update procedure as well as available database patches.

Special Considerations

This section describes noteworthy potentially breaking changes when you update to the respective patch levels.

2.2.0 to 2.2.1

Date and Time Serialization Format Change

As of 2.3.0 and 2.2.2, date and time values in webclient REST responses are serialized as ISO-8601 strings, matching the Spring Boot default:

Type Example output
java.util.Date, java.sql.Timestamp "2026-08-04T13:20:00.000+00:00"
java.time.Instant "2026-08-04T13:20:00Z"
java.time.OffsetDateTime "2026-08-04T12:00:00+02:00"
java.time.LocalDateTime "2026-08-04T12:00:00"
java.time.LocalDate "2026-08-04"
java.time.Duration "PT1H"

In version 2.2.1, the webclient supplied its own ObjectMapper, which overrode the Spring Boot defaults and wrote epoch milliseconds instead (1785849600000), and numeric arrays or fractional seconds for java.time types. Consumers built against that output have to parse ISO-8601 strings now.

This also applies when the webclient is embedded as a library into another Spring Boot application: it no longer overrides that application’s date format.

As a temporary migration aid, the previous output can be restored:

cibseven:
  webclient:
    custom:
      spring:
        jackson:
          serialization:
            write-dates-as-timestamps: true

Deprecated

cibseven.webclient.custom.spring.jackson.serialization.write-dates-as-timestamps is deprecated and will be removed. It exists only to give consumers that adapted to the earlier output a migration window. Jackson 3 disables timestamp output by default, so the flag loses its purpose once the wire layer moves to Jackson 3 and will be removed together with that migration.

The flag is global: it affects every date and duration in every REST response. Prefer adapting the consumer, or annotating the individual field with @JsonFormat, over switching the whole application back.

2.1.3 to 2.1.4

Multi-engine improvement

In CIB seven 2.1.4, multi-engine support feature, introduced in 2.1.3 version, was improved. Now, the extended endpoints are used only for alternative engines, ensuring full backward compatibility for existing webclient configurations. For example, when using the default engine, the web client connects to the standard endpoint to retrieve information about a process definition (as in versions prior to 2.1.3):

/process-definition/key

and for an alternative engine, it connects to the extended one:

/engine/<engine_name>/process-definition/key

Expected Impact

We expect no impact for most of the users.

Dependency Updates

The 2.1.4 release also includes a few dependency updates to address security vulnerabilities. For a complete list of updated dependencies, see Release Notes.

2.1.2 to 2.1.3

Multi-engine support

In CIB seven 2.1.3, multi-engine support was introduced, and CIB seven webclient was updated to use the extended REST API endpoints that include engine names. For example, before 2.1.3, the webclient connected to:

/process-definition/key

Now, it connects to:

/engine/<engine_name>/process-definition/key

In the next release, we plan to further improve this feature, so that the extended endpoints are used only for alternative engines, ensuring full backward compatibility with existing configurations.

Expected Impact

We expect no impact for most users. If you have custom Spring Boot configurations, please review your authentication filter configuration and ensure that the /engine/* endpoint is included in the urlPatterns array. Alternatively, update your configuration to the recommended general URL pattern /*, which enables the authentication filter for all required endpoints:

  String[] urlPatterns = Arrays.asList("/*")
    .stream()
    .map(pattern -> addUrl(restApiPathPattern, pattern))
    .toArray(String[]::new);

Full Distribution

This section is applicable if you installed the Full Distribution with a shared process engine. In this case you need to update the libraries and applications installed inside the application server.

Please note that the following procedure may differ for cluster scenarios. Contact our support team if you need further assistance.

  • Shut down the server
  • Exchange CIB seven libraries, tools and webapps (EAR, RAR, Subsystem (Wildfly), Shared Libs) - essentially, follow the installation guide for your server.
  • Restart the server

Application With Embedded Process Engine

In case you use an embedded process engine inside your Java Application, you need to

  1. update the Process Engine library in your dependency management (Apache Maven, Gradle …),
  2. re-package the application,
  3. deploy the new version of the application.

Applying Multiple Patches at Once

It is possible to apply multiple patches in one go (e.g., updating from 2.1.0 to 2.1.3).

On this Page: