Migration
This page describes how to update Valtimo from the previous version to the current.
Valtimo dependencies
Scope: back-end
valtimo-dependencies
andvaltimo-gzac-dependencies
should no longer be used fordependencyManagement
orplatform
. This functionality has been replaced by valtimo-dependency-versions.If present, remove the dependency to
org.hibernate:hibernate-envers
If present, upgrade dependency
org.hibernate:hibernate-core
to6.0.2.Final
or higher.
Access control files
Scope: back-end
Step 1: Find files
Locate all files in the backend libraries matching:
/resources/config/<filepath>/<filename>.permission.json
Step 2: Locate permissions Locate all permissions for
CamundaTask
that use theassignee
field. For example:Step 3: Update permissions Change
${currentUserEmail}
to${currentUserId}
.If the
value
field contains an actual email, then the email must be changed to a user ID.
Access control database
Scope: back-end
Step 1: Find access control
Go to the 'Admin' menu item and then to 'Access control'. Then for every role, do the steps below.
Step 2: Locate permissions Locate all permissions for
CamundaTask
that use theassignee
field. For example:Step 3: Update permissions Change
${currentUserEmail}
to${currentUserId}
If the
value
field contains an actual email, then the email must be changed to a user ID.
Plugin action activity types
Scope: back-end
Step 1: Locate plugin actions Locate all
@PluginAction
annotations in the implementation code.Step 2: Update activity type Change parameter
activityTypes
to use the new typecom.ritense.processlink.domain.ActivityTypeWithEventName
. For example:
Removed form links module
Scope: back-end
The
form-link
module was removed in favor of using theprocess-link
module. The following changes should be made:Migrate existing form links
Existing form link configurations should be migrated to process links. You can find a script to simplify this task here.
Remove form link configuration files (optional)
Existing form link configuration files should be removed. This is optional as the files will just get ignored.
Remove existing tables (optional)
Existing form link configurations should be removed. This is optional as the tables technically do not have to be removed. Below is a changelog that removes the tables.
Removed DocumentVariableDelegate class
Scope: back-end
The
DocumentVariableDelegate
is replaced by theDocumentDelegateService
class.Find all locations where
DocumentVariableDelegate
is used in BPMN processes and DMN decision tables.Replace
DocumentVariableDelegate
with the newDocumentDelegateService
.Migrate all running processes to the most recent version.
Deprecated code
Scope: back-end
CamundaProcessJsonSchemaDocumentService.getDocument(DelegateExecution execution)
has been deprecated and removed.Find all locations where
CamundaProcessJsonSchemaDocumentService
is used in BPMN processes and DMN decision tables.Replace
CamundaProcessJsonSchemaDocumentService
with the newDocumentDelegateService
.Migrate all running processes to the most recent version.
PostgreSQL10Dialect is deprecated
Scope: back-end
The class
org.hibernate.dialect.PostgreSQL10Dialect
is deprecated, and should be replaced withorg.hibernate.dialect.PostgreSQLDialect
at thespring.jpa.database-platform
property.
Zaaktype link moved
Scope: back-end
The Zaaktype link code has been moved from the openzaak
module to the zaken-api
module. This should only affect implementations that use Zaaktype links in custom code. Below is a list of the most important classes that have been moved. This list might not be exhaustive.
The endpoints to manage the Zaaktype link have also been replaced:
Value resolvers
Scope: back-end
Step 1: Find classes Locate all Kotlin classes that extend the
: ValueResolverFactory
interface in the implementation code.Step 2: Locate functions In the classes found, locate all function with name
handleValues(...)
Step 3: Replace parameter Change the type of parameter
values
from:Map<String, Any>
to also support null values:Map<String, Any?>
.
KvKProvider and BsnProvider
Scope: back-end
The new implementations of
KvKProvider
andBsnProvider
(ZaakKvkProvider
andZaakBsnProvider
) no longer depend on theopenzaak
module. Please make sure you have configured at least one Zaken API Plugin to make these providers work.Camunda webapps
Scope: back-end
Camunda webapps are now by default not accessible. Access can be configured with a property that allows whitelisted hosts:
Zgw case configuration
The configuration to connect a ZGW zaak type to a case, has changed from using the connector framework to use the new plugin framework. If there was previously a zaak type connected to the case, the following steps are needed:
Go to Admin > Case > Configuration
Configure the 'Connected zaak type'
The configuration to synchronize the case to an object in the Objecten API, has changed from using the connector framework to use the new plugin framework. If there was previously a case synchronisation configured, the following steps are needed:
Go to Admin > Case > Configuration
Configure the 'Case detail synchronisation'
Angular and dependency upgrades
Scope: front-end
Step 1: Node and NPM upgrade Valtimo front-end libraries 12 requires Node 18. Run the following commands in your terminal (with NVM installed):
nvm install 18
andnvm use 18
.Step 2: Angular upgrade Valtimo front-end libraries 12 uses Angular 17. Commit all pending changes in your project and run the following command from your root directory:
ng update @angular/core@17 @angular/cli@17 --force
and commit all changes after the upgrade.Step 3: @valtimo/form-link to @valtimo/process-link The
form-link
library has been renamed toprocess-link
.Change
@valtimo/form-link
to@valtimo/process-link
in yourpackage.json
file.Replace all imports in your
AppModule
from@valtimo/form-link
to@valtimo/process-link
.Change the
FormLinkModule
toProcessLinkModule
in yourAppModule
.
Step 4: Upgrade valtimo dependencies Change the version number of all
@valtimo/**
dependencies in your rootpackage.json
to the Valtimo 12 version you would like to use.Step 5: Equalize project dependencies with Valtimo dependencies In order to start your implementation, all dependency version numbers should be equal to the ones used in the
libraries project. This can be done manually by navigating to the libraries package.json and copying over the version numbers. It can also be automatically by running the following command from the terminal when in the root of your implementation (where
package.json
is located). When prompted to install dependencies, answer yes.npx make-dir-cli tmp && npx node-wget https://raw.githubusercontent.com/valtimo-platform/valtimo-frontend-libraries/release/12.0.0/scripts/equalize-deps.cjs -d tmp/equalize-deps.cjs && node tmp/equalize-deps.cjs
Step 6: Install dependencies and build project After completing the previous steps, run
npm i
in the root of your project to install all dependencies, and verify after that your project builds.
Choice fields
Scope: front-end
Change the import path of ChoiceFieldService
The ChoiceFieldsService has now been moved into the @valtimo/components library. Adjust any import paths to use this instead of @valtimo/choice-field or @valtimo/choicefield.
Change import path of ChoiceField and ChoiceFieldValue
These models can now be found in the @valtimo/components library. Adjust any import paths to use this instead of @valtimo/choice-field or @valtimo/choicefield.
Adjust method names
A few methods from the former @valtimo/choicefield library now have their names changes:
getChoiceFieldValuesPageByName -> queryValuesPage
getChoiceFieldValueById -> getValue
getChoiceFieldsPage -> queryPage
getChoiceFields -> query
Remove ChoicefieldModule
Remove any instances of ChoicefieldModule as it no longer exists. Services and models contained in that module are now a part of @valtimo/components.
Do not remove the ChoiceFieldModule, with the uppercase F. This module still exists
@valtimo/open-zaak
removedScope: front-end
Remove dependency
The library
@valtimo/open-zaak
has been removed. Remove@valtimo/open-zaak
from your implementation'spackage.json
.Remove module import
Remove the import of
OpenZaakModule
from yourAppModule
.Remove extensions
If used, remove
emailExtensionInitializer
andopenZaakExtensionInitializer
frominitializers
in your environment file. The email extension has been permanently removed. The OpenZaak extension's functionality is now included in the new library@valtimo/zgw
(see below).Connector link extension removed
Scope: front-end
connectorLinkExtensionInitializer
(exported from@valtimo/connector-management
) has been removed and its functionality will be captured in other code. If used, remove it frominitializers
in your environment file.Extensions deprecated
Scope: front-end
Extensions (defined under
initializers
in environment files) have been deprecated. Extensions included in the libraries have been removed. If you have any custom extensions, refactor them to not use extension initializer functionality, since extensions will be removed in the next major release.@valtimo/contact-moment
removedScope: front-end
The library
@valtimo/contact-moment
has been removed. Remove it from your implementation'spackage.json
. This library included a contact moments case tab:DossierDetailTabContactMomentsComponent
. This has been moved to@valtimo/zgw
. The contact moments tab has been removed as a default tab in tab management. If you still want to use it, addcontactmomenten: DossierDetailTabContactMomentsComponent
underCASE_TAB_TOKEN
in yourAppModule
file and configure it as a custom component tab. For more information, refer to this page.DossierDetailTabContactMomentsComponent
should be imported from@valtimo/zgw
.Zaakobjecten default tab removed
Scope: front-end
The zaakobjecten tab has been removed as a default tab in tab management. The zaakobjecten tab has been moved to
@valtimo/zgw
. If you still want to use it, addzaakobjecten: DossierDetailTabZaakobjectenComponent
underCASE_TAB_TOKEN
in yourAppModule
file and configure it as a custom component tab. For more information, refer to this page.DossierDetailTabZaakobjectenComponent
should be imported from@valtimo/zgw
.@valtimo/customer
removedScope: front-end
The library
@valtimo/customer
has been removed, and its functionality has been moved to@valtimo/zgw
. Remove it from your implementation'spackage.json
, and change the import ofCustomerModule
from@valtimo/customer
to@valtimo/zgw
inapp.module.ts
if you use this functionality.OpenZaak uploader provider deprecated
Scope: front-end
The OpenZaak upload provider has been deprecated and will be removed in the next major release. This provider is active if
uploadProvider
in your environment file is set toUploadProvider.OPEN_ZAAK
.Form.io Documenten API uploader component moved
Scope: front-end
The Documenten API form.io upload component has been moved from
@valtimo/dossier
to@valtimo/zgw
. If this upload component is included in your project, importZgwModule
into yourAppModule
inapp.module.ts
and change the import ofregisterDocumentenApiFormioUploadComponent
from@valtimo/dossier
to@valtimo/zgw
.New library:
@valtimo/zgw
A refactor has been made to move all ZGW functionality previously included in default Valtimo libraries to its own, optional dependency:
@valtimo/zgw
. Please install this dependency into your implementation and importZgwModule
(which it exports) into yourAppModule
if you use ZGW functionality. IfZgwModule
is imported, the following functionality is included:Documenten API documents tab. If
uploadProvider
is set toUploadProvider.DOCUMENTEN_API
in your environment file, andZgwModule
is not imported, a not found message will be displayed on the case documents tab.A new ZGW tab on the case management admin page.
The component to display object tabs based on the
caseObjectTypes
configuration in your environment file. IfZgwModule
is not imported, and this configuration is present, a not found message will be displayed on the tabs.Functionality on the case admin configuration tab to:
Link an upload process to a case definition
Configuration for case detail synchronisation
Configuration for connection a zaak type to a case definition
Removed:
@valtimo/exact-plugin
The library
@valtimo/exact-plugin
has been removed. All of its code is now exported from@valtimo/plugin
. Remove@valtimo/exact-plugin
from your implementation's package.json if it's included, and change imports throughout your implementation from@valtimo/exact-plugin
to@valtimo/plugin
.Removed:
@valtimo/view-configurator
If present, remove library
@valtimo/view-configurator
from thepackage.json
.If present, remove the module
ViewConfiguratorModule
from yourAppModule
.
Task management
Scope: front-end
Add dependency
Add the dependency
@valtimo/task-management
to your implementation. Make sure to run a freshnpm install
after.Import library
In
app.module.ts
, add the following line to the top of the file with the imports:import {TaskManagementModule} from '@valtimo/task-management';
Add task management module to imports
Add the previously imported
TaskManagementModule
to theimports
array of yourAppModule
.Add menu entry
Add the following line under the admin section in the menu configuration in the
environment
file of your implementation:{link: ['/task-management'], title: 'Tasks', sequence: {UNIQUE_SEQUENCE_NUMBER}},
ReplaceUNIQUE_SEQUENCE_NUMBER
with a unique sequence number, and make sure the sequence numbers of other menu items on the admin layer remain unique.Feature toggles
Scope: front-end
If present, remove the feature toggle
caseSearchFields
from all yourenvironment.*.ts
If not present, set the feature toggle
enableObjectManagement
tofalse
in all yourenvironment.*.ts
Dark-mode and theme-switching
Scope: front-end
Change stylesheets
In order for the themes to be displayed properly, the following change has to be made in the
styles
array inangular.json
in the root of your implementation:If present, change
"dist/valtimo/components/assets/css/carbon-beagle-compatibility.scss"
to"dist/valtimo/components/assets/css/compatibility.scss"
.If present, change
"node_modules/@valtimo/components/assets/css/carbon-beagle-compatibility.scss"
to"node_modules/@valtimo/components/assets/css/compatibility.scss"
.Make sure they both are initiated after
".../valtimo/components/assets/css/carbon.scss"
Add logo variants
Next to
logoSvgBase64
andlogoPngBase64
, there is now also support for dark-mode variants calleddarkModeLogoSvgBase64
anddarkModeLogoPngBase64
. In order for the logo's to be displayed properly in both light- and dark-mode, the following changes have to be made:Add the desired logos in
logo.ts
Import the logos and assign them in
environment.ts
The logo's should now automatically update when themes are switched.
Last updated