Migration notes 5.3

This page explains the changes required to migrate to the stated version of Atoti Sign-Off.

Migrate to 5.3.1

No migration needed.

Migrate to 5.3.0

Upgrading from version 5.2.0 See Atoti Sign-Off 5.3.0 Release Notes.

Atoti Sign-Off is using Atoti Server 6.1.0, Atoti UI 5.2.x, and Sign-Off API 4.1.0 .

For new features and fixes included in these releases, please see:

Headline announcement

  • Upgrade to Atoti Server 6.1.0: Atoti Sign-Off has been upgraded to Atoti Server version 6.1.0.
  • Upgrade to Atoti UI 5.2.x: Atoti Sign-Off is now compatible with Atoti UI version 5.2.x.
  • Java 21: Atoti Sign-Off now requires Java 21 to compile and run. This is to be compatible with Atoti Server.

Breaking changes

  • Starter changes: Several classes have been removed from the signoff-starter module.
  • Upgrade to Atoti UI 5.2.x.

Migrating to Atoti Server 6.1.0

Please see the Atoti Server 6.1.0 Release Notes for details on the changes in this version. You only need to migrate customizations. No Atoti Sign-Off code needs to be changed for this migration.

Java 21

Update your Java version to Java 21 or later in order to run Atoti Sign-Off.

Atoti Spring Boot Starter changes

Atoti Server now ships with a suite of Spring Boot Starters. These dependencies auto-configure default imports required by Atoti Server, that you may override at runtime.

If you do not use the out-of-the-box signoff-starter, import these starter dependencies and remove any explicit import of classes that are now auto-configured. If you do use the out-of-the-box signoff-starter then no further changes are required.

The following core classes have been removed in signoff-starter as they are now inherited from starters:

  • ActivePivotWebMvcConfigurer.java
  • BasicAuthenticationProviderConfig.java
  • IUserLogoutSuccessHandler.java
  • JwtAuthenticationConfigurer.java
  • SameSiteConfig.java
  • SecurityJwtProperties.java
Security configuration changes

The upgrade to Atoti Server 6.1.0 includes changes to the security configuration. We expect you to implement your own security, but we provide a sample configuration in the com.activeviam.signoff.starter.cfg.security package.

warning

This is not a production grade sample.

For details on how to implement your own security, please see the Atoti Server documentation.

Input file formats

No changes.

Configuration files

Files Modified

application.yml

New properties:

Property Name Comment Value
sign-off.workflow.roles The list of roles for workflow participants USERS,MANAGERS

Updated properties:

Old Property Name New Property Name Comment New Value Old Value
workflow-types workflow.configuration Describes the workflows as a pair of key and approvers e.g. [{"dummy-workflow": {"key": "sign-off-process-instance.dummy-workflow", "participants": "approvers"}}] e.g. [{"dummy-workflow": "sign-off-process-instance.dummy-workflow"}]

note

workflow.configuration (previously workflow-types) has changed from a list of {key: value} to a list of {'key': {key: 'value'}, {participant: 'value'}}.

See here for another example.

Datastores

No changes.

Cube schema

No changes.

Measures

No changes.

Context values

No changes.

Other changes

Property updated from workflow-types to workflow-configuration

This section illustrates the changes in YAML syntax:

Previously:

  workflow-types:
    4-eyes: sign-off-process-instance.four-eyes
    simple: sign-off-process-instance.simple
    4-eyes-kpi: sign-off-process-instance.four-eyes-kpi

Now:

  workflow:
    configuration:
      4-eyes:
        key: sign-off-process-instance.four-eyes
        participants: examiners,approvers
      simple:
        key: sign-off-process-instance.simple
        participants: approvers
      4-eyes-kpi:
        key: sign-off-process-instance.four-eyes-kpi
        participants: examiners,approvers
    roles: USERS,MANAGERS

This change mainly serves for the UI to create a new workflow.

Refactored approve method in ISignOffRestService

In the interface com/activeviam/signoff/application/ISignOffRestService.java of the Sign-Off API, the following method has been refactored:

Previous Updated Details
String approve(SignOffProcessInstanceExportDTO) String updateState(SignOffProcessInstanceExportDTO) approve -> updateState

note

This also changes the REST endpoint mapping from approve to update-state.

Added call to rest endpoint /sign-off/update-state

The state is updated by calling the /sign-off/update-state rest endpoint (declared in ISignOffRestService.java and implemented in the application server side). This is implemented in the last step of the export (EXPORT_SUCEEDED / EXPORT_FAILED): Connector with bean name signOffProcessInstanceFinal. A SignOffProcessInstanceExportDTO is sent based on the current SignOffProcessInstanceDTO to update the state of the task on the application server side.