Migration
This page describes how to update Valtimo from the previous version to the current.
Valtimo dependencies
Scope: back-end
valtimo-dependencies
andvaltimo-gzac-depenencies
should no longer be used fordependencyManagement
orplatform
. This functionality has been replaced by valtimo-dependency-versions.Access control files
Scope: back-end
Step 1: Find filed
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. As such, usages in processes and code should be updated to useDocumentDelegateService
instead.Deprecated code
Scope: back-end
CamundaProcessJsonSchemaDocumentService.getDocument(DelegateExecution execution)
has been deprecated. As such, usages in processes and code should be updated to useDocumentDelegateService.getDocument(DelegateExecution)
instead.
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.
com.ritense.openzaak.service.ZaakTypeLinkService
com.ritense.zakenapi.service.ZaakTypeLinkService
com.ritense.openzaak.service.impl.ZaakTypeLinkService
com.ritense.zakenapi.service.DefaultZaakTypeLinkService
com.ritense.openzaak.listener.DocumentCreatedListener
com.ritense.zakenapi.service.ZakenApiEventListener
com.ritense.openzaak.domain.request.CreateZaakTypeLinkRequest
com.ritense.zakenapi.web.rest.request.CreateZaakTypeLinkRequest
com.ritense.openzaak.domain.mapping.impl.ZaakTypeLink
com.ritense.zakenapi.domain.ZaakTypeLink
com.ritense.openzaak.domain.mapping.impl.ZaakTypeLinkId
com.ritense.zakenapi.domain.ZaakTypeLinkId
com.ritense.openzaak.web.rest.ZaakTypeLinkResource
com.ritense.zakenapi.web.rest.ZaakTypeLinkResource
com.ritense.openzaak.web.rest.impl.ZaakTypeLinkResource
com.ritense.zakenapi.web.rest.DefaultZaakTypeLinkResource
com.ritense.openzaak.service.result.ZaakTypeLinkResult
No replacement needed
com.ritense.openzaak.service.impl.result.CreateZaakTypeLinkResultFailed
No replacement needed
com.ritense.openzaak.service.impl.result.CreateZaaktypeLinkResultSucceeded
No replacement needed
com.ritense.openzaak.domain.mapping.ServiceTaskHandler
Use plugin process link instead
com.ritense.openzaak.domain.mapping.impl.ServiceTaskHandler
Use plugin process link instead
com.ritense.openzaak.domain.mapping.impl.ServiceTaskHandlers
Use plugin process link instead
com.ritense.openzaak.domain.mapping.impl.InformatieObjectTypeLink
No replacement needed
com.ritense.openzaak.domain.mapping.impl.InformatieObjectTypeLinkId
No replacement needed
com.ritense.openzaak.domain.event.EigenschappenSetEvent
No replacement needed
com.ritense.openzaak.domain.event.ResultaatSetEvent
No replacement needed
com.ritense.openzaak.domain.event.StatusSetEvent
No replacement needed
com.ritense.openzaak.domain.event.ZaakCreatedEvent
No replacement needed
The endpoints to manage the Zaaktype link have also been replaced:
POST /api/v1/openzaak/link
POST /api/management/v1/zaak-type-link
DELETE /api/v1/openzaak/link/{documentDefinitionName}
DELETE /api/management/v1/zaak-type-link/{documentDefinitionName}
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 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.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. Also, replace all imports in your from@valtimo/form-link
to@valtimo/process-link
.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/development/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.
ChoiceFieldsModule
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.
@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
into 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.
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
.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.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:Change
"dist/valtimo/components/assets/css/carbon-beagle-compatibility.scss"
to"dist/valtimo/components/assets/css/compatibility.scss"
, and make sure it is initiated after"dist/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