Valtimo documentation v1
Valtimo 11
Valtimo 11
  • Introduction
    • Overview
    • Architectural overview
    • Available modules
      • Dashboards
      • Documents
      • Form flow
      • Form links (deprecated)
      • Plugins
    • How to contribute
    • Style guide for contributing
  • Getting started
    • First dive into Valtimo
      • Start as Docker containers
      • Creating your own Valtimo implementation
    • Compatibility matrix
    • Components
      • Valtimo List
    • Configure database
    • Modules
      • Core
        • Audit
        • Authorization
        • Camunda
        • Case
        • Connector
        • Contract
        • Core
        • Dashboard
        • Document
        • Document generation
        • Exporter
        • Form
        • Form flow
        • Form link (deprecated)
        • Importer
        • Local document generation
        • Local mail
        • Mail
        • Mandrill
        • Milestones
        • Plugins
        • Outbox
          • Outbox RabbitMQ
        • Process document
        • Resource
        • Temporary resource storage
        • Test utils common
        • Value resolvers
        • Valtimo dependencies
        • Web
          • CORS
      • ZGW
        • Besluit
        • Besluiten API
        • Catalogi API
        • Contactmoment
        • Documenten API
        • Haalcentraal BRP
        • Klant
        • Notificaties API
        • Notificaties API Authentication
        • Objecten API
        • Objecten API Authentication
        • Object management
        • Objects API
        • Objecttypen API
        • OpenZaak
        • OpenZaak resource
        • Portaaltaak
        • SmartDocuments
        • Valtimo GZAC dependencies
        • Verzoek
        • Wordpress mail
        • Zaken API
    • Exchange
      • Building blocks
      • Process blueprints
  • Using Valtimo
    • Access control
      • Auto-deployment for access control
      • Configuring permissions
      • Configuring roles
      • Front-end access control
    • Case
      • Creating case settings
      • Case tabs
      • Exporting and importing case definitions
    • Dashboard
      • Auto deploying dashboards
      • Create dashboard
    • Documents
      • Assigning a user to a document
      • Automatic task assignment
      • Creating a document definition
      • Creating case settings
      • Custom case list columns
      • Custom case headers
      • How to link a process to a case
      • How to start a process for a case
      • Search fields
      • Case search
    • Forms
      • Creating FormIO forms in Valtimo
      • Interpolating data in Form.io
      • Configuring an Objecten API object form
    • Form flow
      • Creating a form flow definition
      • Creating a custom form flow component
    • Form links (deprecated)
      • How to refer to external data from a form
      • How to link a form to a task
    • Keycloak
      • Configuring Keycloak
    • Pending Changes mechanism
    • Plugins
      • Catalogi API plugin
      • Configuring plugins
      • SmartDocuments plugin
      • OpenZaak plugin
      • Documenten API plugin
      • Zaken API plugin
      • Object Token Auhentication Plugin
      • Objecten API Plugin
      • Objecttypen API Plugin
      • Portaaltaak Plugin
      • Exact Plugin
      • Verzoek Plugin
      • Besluiten Plugin
    • Process
      • System processes
      • Correlating messages
      • Job service
    • Process links
      • Creating a process link
      • Editing a process link
      • Unlinking a process link
    • Upload
      • Temporary file storage
      • Uploading to Documenten API with metadata
    • Web
      • Configure CORS in Valtimo
  • Extending Valtimo
    • Access control
      • Creating a resource
      • Creating a relation to another resource
    • Dashboard
      • Creating custom data sources
      • Creating custom display types
      • Widget translations
    • Document
      • Assigning and unassigning a user
      • Search fields
    • Forms
      • Creating a form field data resolver
    • Form flow
      • Whitelisting Spring beans for Form flow
    • Making Valtimo multi instance ready
    • Modals (external docs)
    • Creating a custom outbox message publisher
    • Plugins
      • Custom plugin definitions
    • Process
      • Whitelisting Spring beans for Camunda
    • Tabs
      • Customizing case details tabs
      • Customizing case list tabs
      • Setting extra tabs for Zaak object type
    • Integrating spring beans in a process
    • Creating a custom dashboard
    • Creating a custom value resolver
    • Security testing
  • References
    • Modules
      • Authorization
      • Outbox
      • Dashboard
      • Case
      • Core
        • ZonedLocalDateTimeDeserializer
      • Document
      • Form
      • Form flow
      • Form links (deprecated)
      • Object management
      • Value resolvers
    • User interface
      • Design philosophy
      • Carbon design system
      • v-button
      • Breadcrumbs
    • Feature toggles
    • Supported databases
    • Process beans
    • Content Security Policy (CSP)
    • Troubleshoot
  • Release notes
    • Release notes
    • 11.x.x
      • 11.3.3
        • Valtimo backend libraries
      • 11.3.2
        • Valtimo frontend libraries
      • 11.3.1
        • Valtimo frontend libraries
      • 11.3.0
        • Valtimo backend libraries
        • Valtimo frontend libraries
      • 11.2.2
        • Valtimo frontend libraries
      • 11.2.1
        • Valtimo frontend libraries
      • 11.2.0
        • Valtimo backend libraries
        • Valtimo frontend libraries
      • 11.1.6
        • Valtimo frontend libraries
      • 11.1.5
        • Valtimo frontend libraries
      • 11.1.4
        • Valtimo backend libraries
        • Valtimo frontend libraries
      • 11.1.1
        • Valtimo backend libraries
        • Valtimo frontend libraries
      • 11.1.0
        • Valtimo backend libraries
        • Valtimo frontend libraries
      • 11.0.0
        • Valtimo backend libraries
        • Valtimo frontend libraries
        • Migration
    • 10.x.x
      • 10.8.5
        • Valtimo backend libraries
      • 10.8.4
        • Valtimo frontend libraries
      • 10.8.3
        • Valtimo backend libraries
      • 10.8.2
        • Valtimo frontend libraries
      • 10.8.0
        • Valtimo backend libraries
        • Valtimo frontend libraries
      • 10.7.0
        • Valtimo backend libraries
        • Valtimo frontend libraries
      • 10.6.0
        • Valtimo backend libraries
        • Valtimo frontend libraries
        • Migration
      • 10.5.3
        • Valtimo backend libraries
      • 10.5.2
        • Valtimo backend libraries
      • 10.5.1
        • Valtimo backend libraries
        • Valtimo frontend libraries
      • 10.5.0
        • Valtimo backend libraries
        • Valtimo frontend libraries
        • Migration
      • 10.4.0
        • Valtimo backend libraries
        • Valtimo frontend libraries
      • 10.3.0
        • Valtimo backend libraries
        • Valtimo frontend libraries
      • 10.2.0
        • Valtimo backend libraries
        • Valtimo frontend libraries
      • 10.1.0
        • Valtimo backend libraries
        • Valtimo frontend libraries
        • Migration
      • 10.0.1
        • Valtimo frontend libraries
      • 10.0.0
        • Valtimo backend libraries
        • Valtimo frontend libraries
        • Migration
    • 9.x.x
      • 9.26.2/5.15.2
        • Valtimo backend libraries (9.26.2)
        • Valtimo frontend libraries (5.15.2)
        • Migration
      • 9.26.1/5.15.1
        • Valtimo backend libraries (9.26.1)
        • Valtimo frontend libraries (5.15.1)
      • 9.26.0/5.15.0
        • Valtimo backend libraries (9.26.0)
        • Valtimo frontend libraries (5.15.0)
        • Migration
      • 9.25.0/5.14.0
        • Valtimo backend libraries (9.25.0)
        • Valtimo frontend libraries (5.14.0)
      • 9.24.0/5.13.0
        • Valtimo backend libraries (9.24.0)
        • Valtimo frontend libraries (5.13.0)
      • 9.23.0/5.12.0
        • Valtimo backend libraries (9.23.0)
        • Valtimo frontend libraries (5.12.0)
      • 9.22.0/5.11.0
        • Valtimo backend libraries (9.22.0)
        • Valtimo frontend libraries (5.11.0)
        • Migration
      • 9.21.0/5.10.0
        • Valtimo backend libraries (9.21.0)
        • Valtimo frontend libraries (5.10.0)
        • Migration
      • 9.20.0/5.9.1
        • Valtimo backend libraries (9.20.0)
        • Valtimo frontend libraries (5.9.1)
        • Migration
      • 9.19.0/5.8.0
        • Valtimo backend libraries (9.19.0)
        • Valtimo frontend libraries (5.8.0)
        • Migration
      • 9.18.0/5.6.0
        • Valtimo backend libraries (9.18.0)
        • Valtimo frontend libraries (5.6.0)
        • Migration
      • 9.17.0/5.5.0
        • Valtimo backend libraries (9.17.0)
        • Valtimo frontend libraries (5.5.0)
      • 9.16.0/5.4.0
        • Valtimo backend libraries (9.16.0)
        • Valtimo frontend libraries (5.4.0)
Powered by GitBook
On this page
  1. Release notes
  2. 11.x.x
  3. 11.0.0

Migration

PreviousValtimo frontend librariesNext10.x.x

Last updated 1 year ago

This page describes how to update Valtimo from the previous version to the current.

  • Change in Recipient.Type values

    Scope: back-end

    To meet coding standards, the Enum values of com.ritense.valtimo.contract.mail.model.value.Recipient.Type have been changed to all uppercase. References to these Enum values should be changed in implementations:

    • Change uses of Type.To to Type.TO

    • Change uses of Type.Cc to Type.CC

    • Change uses of Type.Bcc to Type.BCC

  • Rename application property valtimo.jwt.secret

    Scope: back-end

    1. Find valtimo.jwt.secret

      Find all occurrences of valtimo.jwt.secret and rename them all to valtimo.oauth.public-key. This property is usually found in the application.yml.

    2. Find VALTIMO_JWT_SECRET

      Find all occurrences of VALTIMO_JWT_SECRET and rename them to VALTIMO_OAUTH_PUBLIC_KEY. This environment variable can potentially be found in many different places such as:

      • .env.properties file inside the repository

      • AWS Parameter store

      • Kubernetes .yaml file

  • Rename application property valtimo.jwt.tokenValidityInSeconds

    Scope: back-end

    1. Find valtimo.jwt.tokenValidityInSeconds

      Find all occurrences of valtimo.jwt.tokenValidityInSeconds and rename them all to valtimo.oauth.tokenValidityInSeconds. This property is usually found in the application.yml.

    2. Find VALTIMO_JWT_TOKEN_VALIDITY_IN_SECONDS

      Find all occurrences of VALTIMO_JWT_TOKEN_VALIDITY_IN_SECONDS and rename them to VALTIMO_OAUTH_TOKEN_VALIDITY_IN_SECONDS. This environment variable can potentially be found in many different places such as:

      • .env.properties file inside the repository

      • AWS Parameter store

      • Kubernetes .yaml file

  • Whitelist all services used in Camunda processes

    Scope: back-end

    1. Find all services used in processes and decision tables

      Open all BPMN and DMN files and list all the services and other java/kotlin classes that are used.

    2. Find all services in code

      All the listed services must then be found inside the java/kotlin code.

    3. Whitelist the service

      Whitelisting a service should be done in one of two different ways:

      1. Either, add @ProcessBean above the class. For example:

        @ProcessBean
        @Service
        class MyCustomClass {
            ...
      2. Or add @ProcessBean above the bean definition. For example:

        @ProcessBean
        @Bean
        @ConditionalOnMissingBean(MyCustomService::class)
        fun myCustomService(...): MyCustomService {
            return MyCustomService(...)
        }
  • Remove the use of authority and contexts entities

    Scope: back-end

    1. Find and delete the use of authority classes as they are no longer supported

      • AuthorityResource.java

      • AuthorityService.java

      • AuthorityRepository.java

      • AuthorityCreatedEvent.java

      • AuthorityDeletedEvent.java

      • AuthorityEvent.java

      • AuthorityNameChangedEvent.java

      • Authority.java

      • AuthorityRequest.java

      • Money.java

    2. Find and delete the use of context classes as they are no longer supported

      • ContextResource.java

      • ContextService.java

      • ContextRepository.java

      • UserContextRepository.java

      • UserContextDTO.java

      • Context.java

      • ContextProcess.java

      • MenuItem.java

      • UserContext.java

  • Angular and dependency upgrades

    Scope: front-end

    1. Upgrading Angular

      • The Valtimo front-end libraries have been upgraded from Angular 14 to Angular 16 in major 11. In order to use them, your implementation also needs to upgrade to Angular 16.

      • Follow to upgrade from Angular 14 to Angular 15. You will probably need to use ng update commands with the --force option at the end.

      • After the migration is complete, commit your changes.

      • Follow to upgrade from Angular 15 to Angular 16. You will probably need to use ng update commands with the --force option at the end.

      • After the migration is complete, commit your changes.

      • Verify whether all Angular related dependencies in the package.json in the root of your project are at version 16. If some have been skipped, check https://www.npmjs.com/ for their latest version and upgrade them manually.

    2. Removing dependencies

      • Some dependencies have been removed from the Valtimo front-end libraries. It is advised to remove them from your implementation as well.

      • @angular/flex-layout has been deprecated. Remove it from your implementation. To replace its directives, we advise to write regular CSS classes with flexbox styling.

      • If your implementation does not use any @angular/material related dependencies, and they are included in your package.json dependencies, we advise to remove them.

    3. Locking dependencies

      • In Valtimo front-end libraries, all dependencies not related to Angular have been locked to specific versions, in order to avoid issues which are frequently encountered with automatic minor or patch dependency upgrades.

      • We advise you to do the same; lock all dependencies except for the ones related to Angular. You can achieve this by removing tilde ~ and caret ^ symbols from your implementation's package.json.

      • Next, we advise you to lock your dependencies to the same versions used in the Valtimo front-end libraries. A non-exhaustive list of dependencies and their versions is included below. If you cannot find your dependency in the list below, refer to the major 11 front-end libraries package.json .

      package.json

      {
        ...
        "dependencies": {
          ...
          "@mdi/font": "7.2.96",
          "@bpmn-io/dmn-migrate": "0.4.3",
          "@webcomponents/custom-elements": "1.6.0",
          "bpmn-js-properties-panel": "0.46.0",
          "core-js": "3.32.0",
          "dmn-js": "12.3.0",
          "dropzone": "6.0.0-beta.2",
          "flatpickr": "4.6.13",
          "json-server": "0.17.3",
          "ngx-color-picker": "14.0.0",
          "ngx-logger": "5.0.12",
          "ngx-translate-multi-http-loader": "16.0.1",
          "popper.js": "1.16.1",
          "rxjs": "7.8.1",
          "swagger-ui": "5.4.2",
          "tslib": "2.6.2",
          "zone.js": "0.13.1"
        },
        "devDependencies": {
          ...
          "@types/jasmine": "4.3.5",
          "@types/jasminewd2": "2.0.10",
          "@types/node": "20.5.0",
          "codelyzer": "6.0.2",
          "deepmerge-ts": "5.1.0",
          "jasmine-core": "5.1.0",
          "jasmine-spec-reporter": "7.0.0",
          "karma": "6.4.2",
          "karma-chrome-launcher": "3.2.0",
          "karma-coverage-istanbul-reporter": "3.0.3",
          "karma-jasmine":"5.1.0",
          "karma-jasmine-html-reporter":  "2.1.0",
          "ts-node": "10.9.1",
          "typescript": "5.1.6"
        }
      }
    4. Adding dependencies

      • @valtimo/access-control, should be added to your implementation as it is a required dependency.

    5. Changing typescript config

      • In tsconfig.json in the root of your implementation, change module to es2020 and also change es**** in the lib array to es2020.

  • Change in Carbon Design System version

    Scope: front-end

    1. Install new Carbon Dependencies

      • Delete node_modules.

      • Run 'npm install --legacy-peer-deps'.

    2. Update all carbon selectors from 'ibm' to 'cds'

      Tags:

      Deprecated:
      <ibm-placeholder></ibm-placeholder>
      
      Active:
      <cds-placeholder></cds-placeholder>

      Directives:

      Deprecated:
      <button ibmButton="primary"></button>
      
      Active:
      <button cdsButton="primary"></button>

      Classes:

      Deprecated:
      <svg class="ibm--btn__icon"></svg>
      
      Active:
      <svg class="cds--btn__icon"></svg>
    3. Remove all usages of @carbon/icons-angular

      Icon:

      Deprecated:
      <svg class="ibm--btn__icon" ibmIconArrowDown size="16"></svg>
      
      Active:
      <svg class="cds--btn__icon" cdsIcon="arrow--down" size="16"></svg>
    4. Registering @carbon/icons

    5. In order to use @carbon/icons, the IconModule needs to be imported.

      sample.module.ts

      ...
      // import IconModule
      import {IconModule} from 'carbon-components-angular';
      ...
      
      @NgModule({
          ...
          imports: [
            ...
            IconModule
            ...
          ]
          ...
      })
      export class SampleModule {
       ...
      }
    6. Some icons may not be available by default, so they need to be registered in the component where they are needed. This is accomplished via the Carbon IconService

      sample.component.ts

      ...
      // import IconService
      import {IconService} from 'carbon-components-angular';
      ...
      // import Icons
      import {ArrowDown16, ArrowUp16} from '@carbon/icons';
      ...
      
      @Component({
          ...
      })
      export class SampleComponent implements OnInit{
       ...
       constructor(private readonly iconService: IconService) {}
       ...
       public ngOnInit(): void {
        this.iconService.registerAll([ArrowDown16, ArrowUp16]);
       }
       ...
      }
    7. All icons available through the Carbon library can be found

  • Remove deleted admin menu items

    Scope: front-end

    1. Remove @valtimo/context

      • Remove @valtimo/context library from the package.json.

      • Remove ContextModule module from the app.module.ts.

    2. Remove @valtimo/management

      • Remove @valtimo/management library from the package.json.

      • Remove ManagementContextModule module from the app.module.ts.

      • Remove the Contexts link from the environment.ts

    3. Remove @valtimo/user-management

      • Remove @valtimo/user-management library from the package.json.

      • Remove UserManagementModule module from the app.module.ts.

      • Remove the Users link from the environment.ts

    4. Remove @valtimo/authority

      • Remove @valtimo/authority library from the package.json.

      • Remove AuthorityModule module from the app.module.ts.

      • Remove the Entitlements link from the environment.ts

  • Form-links page

    Scope: front-end

    1. environment.ts

      Go to the environment.ts file and change this line:

      {link: ['/form-links'], title: 'Form links'...

      To this line:

      {link: ['/process-links'], title: 'Process links'...

  • Update connector and plugin keys

    Scope: back-end/front-end

    In order for keys to be encrypted with GCM (as apposed to ECB, see for more information), all existing plugin configurations need to be updated.

    1. Save existing connector configurations with their keys

    2. Save plugin configurations with their keys

    3. See if encryption is used anywhere else in the application

  • Removal of @valtimo/user-interface library

    Scope: front-end

    1. Remove @valtimo/user-interface as a dependency

      The library @valtimo/user-interface has been removed. All of its components, directives and services have been been moved to @valtimo/components. In order to migrate, remove @valtimo/user-interface as a dependency in your implementation.

    2. Change stylesheet in angular.json

      The angular.json file in the root of your implementation includes the following value:

      "node_modules/@valtimo/user-interface/assets/design-tokens.css"

      This should be changed to:

      "node_modules/@valtimo/components/assets/css/design-tokens.css"

    3. Change imports

      Most components, services and directives from @valtimo/user-interface are now exported from @valtimo/components. Search your implementations for any imports and change them accordingly.

    4. Renamed components

    The component v-multi-input has been renamed to valtimo-carbon-multi-input. If it is used anywhere in your implementation, change the selector.

    ModaleModule exported from @valtimo/user-interface is renamed to VModalModule.

    CardModule exported from @valtimo/user-interface is renamed to VCardModule.

  • Update of CarbonTable for backwards compatibility

    Scope: front-end

    Updates in the @Input fields:

    • @Input paginationConfig -> @Input paginatorConfig

    • @Input fields has been added instead of having the columnConfigs in the tableConfig. ColumnConfig now extends the ListField for backwards compatibility.

    • Remove fields property from any instances of CarbonTableConfig as it is no longer a part of the interface

  • Enable the JSON PBAC editor

    Scope: front-end

    Change in angular.json

    1. Go to the file angular.json.

    2. Locate the array with assets: projects.architect.build.options.assets.

    3. Add the monaco-editor:

    {
        "glob": "**/*",
        "input": "node_modules/monaco-editor",
        "output": "assets/monaco-editor"
    }
  • Add PBAC dependencies and menu items

    Scope: front-end

    1. Add PBAC dependencies

    Run npm i @valtimo/access-control@11.0.0 @valtimo/access-control-management@11.0.0 in the root of your implementation.

    1. AppModule

    Add the following line to the top of app.module.ts:

    import {AccessControlManagementModule} from '@valtimo/access-control-management';

    Next, add AccessControlManagementModule to the imports array of AppModule.

    1. Access control management menu item

    Add the following to the admin menu items in your environment config:

    {link: ['/access-control'], title: 'Access Control', sequence: UNIQUE_SEQUENCE_NUMBER}

    Make sure to update UNIQUE_SEQUENCE_NUMBER with a unique sequence number.

  • Moved Verzoek plugin property objectManagementId

    Scope: back-end

    1. Locate any .pluginconfig.json file

      Go to the /resource folder of you project and locate any file ending with .pluginconfig.json.

    2. Find the verzoek plugin configurations

      Every .pluginconfig.json can contain Verzoek plugin configuration. This plugin can be recognized where the property pluginDefinitionKey is verzoek.

    3. Move the objectManagementId

      Every Verzoek plugin configuration has a field called objectManagementId. This field should be moved out of the properties field and into every verzoekProperties field.

  • Configure access control roles and permissions

    Scope: back-end

    Roles and permissions need to be configured as described .

this guide
this guide
here
here
here
here