Flowable 3.14.x Release Notes
Initial release 3.14.0, July 27, 2023
Introduction
The Flowable product comprises:
- Flowable Work, a process and case management platform with an out-of-the-box user interface.
- Flowable Engage, built on top of Flowable Work, adding conversations and external connectivity to WeChat, Whatsapp and others.
- Flowable Design, a modeling environment to create BPMN, CMMN, DMN, Form and other model types that run in Platform/Work/Engage.
- Flowable Control, an administration tool that can be used to manage the Flowable Platform / Work / Engage environments.
- Flowable Inspect, a debugging and test component that can be used with Flowable Work and Engage.
These products are built on top of the Flowable Open Source project which can be found at Github.
Documentation
The Flowable Open Source project also has extensive documentation available which can be found at https://www.flowable.com/open-source/docs/oss-introduction.
Highlights
Flowable Work
Added a data dictionary model and data contract definition in a case or process model to allow for defining the structure and constraints for the case or process variables. When a variable is created that is listed in the data contract of a case or process model and defined in a data dictionary model, it will be validated against the structure and constraints as defined in the data dictionary model. This improves the data quality of the variables in a case and process instance and also allows for the variable assistant in Design to provide more guidance when creating conditions or variable bindings in a model.
Added support to define an allowed or blocked output mapping for start, human tasks and case page task forms in a case model and start and user task forms in a process model. This allows for restricting which part of the submitted form payload will be processed for creating case or process variables. It also enables the option to use read only variables in the form payload.
Added support for app level variables, which can be used in an expression with the app. prefix. This allows for defining app level constant values or expression resolvement with Spring beans, that can be used in case, process and other model types for condition expressions etc.
By default large variables won't get indexed to Elasticsearch to prevent overloading Elasticsearch with data which is not used for data retrieval through Elasticsearch. A large variable means a big JSON or other big variable types, technically it means any variable that has a byte array reference and value. This can be fully disabled with the following property flowable.indexing.filter.ignore-large-variables=false. It's also possible to define a list of variables which should be indexed with the following property flowable.indexing.filter.always-include-variables.
Added support to define participant groups to be used for the user selection in the people tab in a case, process or task instance level. A list of groups can be defined application wide using the following property flowable.platform.participant-candidate-groups. In addition, the participant groups can also be defined a part of the case and process models.
By default the activities, plan items and content items Elasticsearch indices are disabled, and the work, case instance, process instance and tasks indices are enabled. If you want to activate other indices as well you can do this with the following property flowable.indexing.enabled-indices. Note that all indices that need to be enabled need to be added here, so also the indices that are enabled by default.
Added support for including/excluding a defined set of variables in a case or process model from indexing to Elasticsearch.
Added support for an OR operator in the data object database queries. It's now possible to define and / or groups to implement more complex data object database queries.
Improved support for error handling for service registry tasks, allowing to use error events in BPMN to model any functional error handling.
Added support for storing error payload in a map when throwing a BPMN error, which can be accessed when handling the BPMN error in for example an error boundary event.
Added a REST based inbound channel, or webhook, to the event registry inbound channel options. This enables for sending events over REST to Flowable Work.
Added support for nested objects in a LINQ template when using mapValue and value methods in a LINQ expression.
Improved the export functionality for a data table to include any FE logic that has been applied.
Improved support for process instance migration with multi instance constructs.
Added support for an app order to be shown in the left menu in the Work UI based on a number value. This can be configured on the app model in Flowable Design.
Added support for a service registry button in the form engine and editor to make it easy to invoke a service operation in an easy way.
Added support to query parameters for providing a navigation to a case, process and task instance view in the Work UI. This is to provide better support for environments that have SSO integration that don't support urls with a # in it in a good way. For example a url like #/work/assignee/case/CAS-123 can be rewritten as ?app=work&filter=assignee&type=case&id=CAS-123.
Added support for a default user definition with using OAuth2 for authentication.
For POST and PUT calls it's now possible to define headers in the REST request for a REST button in the form engine.
For an admin user the custom case view header is now shown in the same way as for a regular user.
Improved the logging for Elasticsearch re-indexing, to make it clearer when a reindex is completed.
Added a create instance button to the form engine to be able to start a case or process instance in a form and handling the input mapping to the optional start form, and the output mapping from the created case or process instance response.
Added an email form field to the form engine to make it easier to work with email address input fields.
Added support for using other form field types like an action button or an editable text field in an expandable panel of a data table.
Added support to reorder elements in a multi sub form in the form engine.
Added support for numeric key fields for master data.
Added support for defining how many definitions are kept in the cache. This can be configured per engine, like for example flowable.app.definition-cache-limit=50 for the amount of app definitions kept in the cache, or flowable.process.definition-cache-limit=200 for the amount of process definitions and flowable.template.definition-cache-limit=200 for the amount of template and template variation definitions. The defaults are in general fine for these cache limits, but note that if you use large apps with for example more than 200 template definitions or 100 action definitions, these limits should be increased to prevent issues with the definition caches.
Added support for limiting the amount of repetitions / loops can be done in a Process / Case. The property for configuring this is flowable.sandbox.max-allowed-repetitions. This is applied in all places where loops can occur:
- Process loop (in memory or with wait states in between)
- Multi instance
- Non-interruptible boundary events
- Case loop (in memory or with wait states in between) (e.g. modelling repeatable unlimited task)
- Case plan item transitions (e.g. available -> unavailable -> available)
Upgraded the UI to React 18.
Flowable Engage
Added logic that purges inactive ActiveMQ destinations to clean up not needed topics.
Upgraded the UI to React 18.
Flowable Design
Added a new React based Flowable Design application, which will be the only Design application on which new development will be done. It has the following new features compared to the existing Angular Flowable Design application:
Redesigned and new implementation of Flowable Design using React to have consistency in the used UI technology for Flowable applications, and to move away from the out of date and unsupported AngularJS and JQuery versions used in the Angular Flowable Design application.
One export format which can be used to exchange applications between different Design applications, as well as deploying on Flowable Work.
New workspace concept that supports having a grouping of applications that meets your organization requirements. Each tenant can have multiple workspaces, and per workspace you can have multiple apps. A workspace can be configured to be public, this means available to all authenticated users of a tenant, or private and then only users that are part of the configured list of groups have access to the workspace. In addition, a workspace can also be readonly for certain groups of users.
New data dictionary feature that allows you to define the structure and constraints for the variable data that is used within an app, like case or process data, or form data.
Added support for creating revisions of an app, which creates a full copy of all models included in the app at the moment of creating the revision. At any point a revision can then be used to download, or revert to that version, or create a copy in another workspace. This would for example support the possibility to work on the same app in two different workspaces at the same time. This can support a requirement where a production fix is needed on an app and at the same time the app is in development for a new version.
Added support for defining app variables on an app model.
Added support to define the app order based on a number value.
Support multiple Flowable Work instances as deployment option to publish an app from Flowable Design.
Added support for an or operator in the data object database queries. It's now possible to define and / or groups to implement more complex data object database queries.
Added support to download a case or process model as an image.
Added support for a prefix and a suffix for decimal and number fields. This can be used to set a EUR, CHF or $ prefix or a % suffix for example.
Added support for defining query parameters for service registry operations.
Added support for defining a set of variables to be excluded or included from indexing to Elasticsearch. This can be configured in the properties on the case or process root level.
Added an email form field to the form editor to make it easier to work with email address input fields.
Flowable Control
Added an hierarchy view for case and process definitions to show which child definitions, like a form or action definition, are used from that definition. You can navigate to any child definition to quickly view the details.
Added an hierarchy view for case, process and task instances to show which child instances, like a form or sub process instance, are used from that instance. You can navigate to any child instance to quickly view the details.
The migrate button is now disabled for completed instances.
Flowable Inspect
Improve support for navigating from a case instance to a sub process instance.
Improve support for multi tenant environments, and make sure that test cases are visible only within the same tenant.
Upgrade information
Like mentioned in the Flowable Design section, 3.14.0 comes with a brand new React based Flowable Design application in addition to the already existing Angular based Flowable Design application. The new React based Flowable Design application will be the only Design application that is going to be released as part of next major product version which is targeted for December 2023. All new development will be done on this new Design application only, for example the data dictionary feature is only available as part of the new Design application. The Angular based Design application is included in 3.14.0 to make the transition to the new Design application easier and to prevent any issues in the new Design application blocking any project timeline requirements. In case you have an existing Design database, then the new React Design application can be configured against this database, and it will be upgraded automatically on restart. We advise to make a backup of the existing Design database. An app from the Angular Design application can be exported to and imported in the new React Design application. It's also supported to export an app from the new React Design application and import it in the Angular Design application.
The Angular Design application is using a new Docker image name flowable-design-angular. The existing Docker image name is now referring to the new React Design application.
To be able to support 2 Design applications with 3.14.0, the existing Angular based Design application uses a new group id com.flowable.design.angular and all dependencies you are using in your projects need to be updated to use this group id if you plan to keep using the Angular based Design application. In addition to the group id the artifact ids for the flowable-platform-palette and flowable-engage-palette use new artifact ids flowable-platform-palette-angular and flowable-engage-palette-angular respectively.
See the New Design Migration Guide for all details on how to migrate to the New Design application.
Version 3.14.x will be the last release of the Flowable products using Spring Boot 2.x. In the next major product version, which is targeted for December 2023, the Flowable products will be updated to Spring Boot 3.x. This means that the minimum Java version will be 17 and Java 8 or 11 won't be supported anymore. This is a requirement that is forced by the Spring Boot framework for version 3.x.
As noted in the release items for Flowable Work, by default large variables are not synced to Elasticsearch anymore. When this is unwanted this can be completely disabled with the following property flowable.indexing.filter.ignore-large-variables=false. It's also possible to define a list of variable names that should still be synced to Elasticsearch with flowable.indexing.filter.always-include-variables. In addition it's possible to define allowed / blocked variable names that should be indexed to Elasticsearch on a case or process model level.
As noted in the release items for Flowable Work, by default the activities, plan items and content items Elasticsearch indices are disabled. If you want to activate other indices as well you can do this with the following property flowable.indexing.enabled-indices. Note that all indices that need to be enabled need to be added here, so also the indices that are enabled by default.
For projects using a custom UI using Flowable components we recommend to upgrade the project to React 18.
The low level RestServiceInvokerEnhancer from the Service Registry has been updated to work with the Flowable HTTP Client API. This means that you'll need to adapt your custom implementation accordingly.
The default HTTP client implementation has been changed to Spring WebClient or Apache HTTP Client 5, depending which one is on your classpath. If you want to keep using the old implementation you need to set the property flowable.http.client-type to apacheHttpClient4. If you are using the out-of-the-box provided WARs or Docker images by Flowable then the Apache HTTP Client 5 is the one that is used.
Spring Boot
- Base Spring Boot version should be upgraded to at least 2.7.13.
React
- The React version should be upgraded to the latest 18 version.
Pentest report
- A new pentest has been performed on Flowable Work and the results are available via your Flowable account manager or contact person.
Work and Engage Database changes
Added a new table FLW_DATA_DICTIONARY_DEFINITION to store the data dictionary definitions.
Added a new table FLW_ID_DESIGN_AUTHENTICATION to store access token information to access Flowable Design from Flowable Work.
Added a new table ACT_APP_VARIABLE to store application variable data.
Added a new table ACT_APP_INCIDENT to store incident data that helps to get more insight on the execution of the Flowable Work application.
Added a new column META_INFO_ to the ACT_RU_VARIABLE and ACT_HI_VARINST tables to store additional meta information on variables like data dictionary variable types.
Design Database changes
Added a new column CATEGORY_ to the FLW_PALETTE_DEFINITION table to store the category value of a palette definition.
Added ID_, REV_, NAME_, DESCRIPTION_, CREATED_AT_ columns to the FLW_DE_TENANT table to store more tenant information.
Added a new table FLW_DE_WORKSPACE to store the workspace information.
Dropped table ACT_DE_MODEL_METADATA because it was not used anymore.
Added a new table FLW_DE_IDENTITY_LINK to store permission information on entities like workspaces, apps and models.
Added a new table FLW_DE_PRIVILEGE_MAPPING to store user privilege information.
Added a new column visibility_ to the ACT_DE_MODEL table to store the visibility information and set it to public by default.
Renamed tenant_id_ column to workspace_id_ for the ACT_DE_MODEL, ACT_DE_MODEL_HISTORY and ACT_DE_MODEL_RELATION tables to make the change from the tenant to workspace concept.
Added palette_def_category_ and palette_def_key_ to the ACT_DE_MODEL and ACT_DE_MODEL_HISTORY tables to store the reference to the paletted definition key and category.
Added a new column template_ to the ACT_DE_MODEL table to store if the model is a template.
Added a new table FLW_DE_APP_REVISION to store the app revisions.
Added a new table FLW_DE_IDENTITY_INFO to store identity info for a user.
Added a new column model_sub_type to the ACT_DE_MODEL and ACT_DE_MODEL_HISTORY tables to store a sub type for a model.
Added a new table FLW_DE_ACCESS_TOKEN to store information about access tokens that a user can create.
Control Database changes
- Added new table FLW_CTRL_AUTH_CLUSTER_MAPPING to store authority information for a cluster.
Docker images updates
- The Docker images run now in 'rootless mode'. The application process runs as the non-root 'flowable' user (uid=100).
Deprecations
- Support for asynchronous relational history will be removed in the next major version. Since version 3.8.0 the default relational history handling was changed to the alternative synchronous handling and the asynchronous behaviour had to be enabled specifically through the flowable.async-history.enable-async-relational-history=true property. Running with synchronous relational history means that the historic information for a case instance, process instance or task will be added to the relational database tables in the same transaction as the runtime data. The update of the Elasticsearch data is in both setups done with an asynchronous job, but the logic is less complex in the synchronous counterpart, which has proven to be a superior choice under high-load scenarios.
Open Source Artifacts Dependency Compatibility
Releases of Flowable Design, Work and Engage use versions of the open source Flowable dependencies that have not yet been published publicly on the Maven Central repository. These 'bugfix releases' can be retrieved by customers using the customer Flowable Maven repository credentials.
These versions contain fixes and have been QA'ed with the 3.14.0 release.
It's advised to upgrade your open source dependencies to the 'compatible' version mentioned below (and mentioned in the subsequent Service Packs
section)
Open source dependency version: 6.8.1.25
Service Packs
3.14.1
- Fixed issue with audit trail view not showing the sub type and showing the user id for user typed events.
- Added option in React Design to include an existing model from another app in the same workspace as the current app.
- Added view in React Design that shows the variables available in the current model and where the read and write references are done.
- Added view that shows uses and used by information for the current model in React Design.
- Added option to upload a license file to React Design.
- Added more cases of automatic key generation based on a name or label value for convenience in React Design.
- Added update information when a data object has changed in the service model editor and when a service model changed in the CMMN and BPMN editors.
- Fixed issue with React Design service model editor exporting empty objects and values for not filled-in properties.
- Fixed issue with React Design channel editor exporting empty objects and values for not filled-in properties.
- Fixed issue with service button in the form engine not taking into account input / output parameters.
- Added FE expression to get master data instance info by key with getMasterDataInstanceByKey.
- Added new interface CoreRestDataInterceptor to provide a hook point for adding a custom variable filter when getting variables for a form, saving or completing a form or when starting a new case or process instance.
- Fixed issue with terminate button not working for case instances in Flowable Control.
- Fixed issue with date from and to fields not working when searching for case instances in Flowable Control.
- Fixed issue with app variables not being shown in Flowable Control in the app details view.
- Upgraded to Spring Boot 2.7.14.
Open source dependency version: 6.8.1.25
3.14.2
- Fixed issue with multiple start events in a process model with an event registry start event being used as the start event when manually starting a new process instance.
- Fixed issue with event listener being triggered when it is in an unavailable state.
- Added option to map plan item ids between different case model versions for case migration. This is generally is not needed, but when migrating case models created with Flowable Design before 3.8 this could be useful.
- Fixed issue with getting content items in an action start form payload due to rendition and meta data values not being initialised.
- Use regular HTTP requests via Axios, for download urls of a form attachment component instead of using a static url with a token parameter.
- Fixed issue with importing a collapsed sub process in React Design.
- Upgraded to Spring Boot 2.7.15.
Open source dependency version: 6.8.1.26
3.14.3
- Implemented a refresh in the custom case view when an action button is clicked and an intent of reload or refresh is returned by the action bot.
- Fixed issue with data object update database and REST operations that are not returning a data object response.
- Fixed issue with links and link buttons not being clickable in a completed task form view.
- Fixed issue with action buttons in a data table column not working.
- Added support for defining a shared workspace for the current selected workspace in the React Design application. This enables the possibility to use a workspace for reusable models and add a reference to a reusable model that is part of the chosen shared workspace. For example a reusable form can be selected from the shared workspace when adding a form reference for a user task in a BPMN process model in the current workspace. On export of the app the choice can be made to export all models, including the referenced models, or only the directly included models from the app. To support the shared workspace a new column SHAREDWORKSPACE_ID had to be added to the FLW_DE_WORKSPACE of React Design. Database changes are normally not part of a minor release, but for this functionality we had to make an exception.
- In the app model overview, a referenced model is indicated with a connected icon, where directly included models don't have any indicator. This is to distinguish easily between referenced and directly included models.
- Added option to define permissions for private workspaces. A choice can be made between Reader, Modeler and Owner permissions. A Reader permission can only view the apps and models in the workspace. A Modeler can create and edit apps and models in the workspace and an Owner can also edit a workspace and change the permissions and visibility of a workspace for example.
- Added an option to duplicate models in Flowable Design to make it easy to copy models.
- Increased the max zoom out value in the BPMN and CMMN model editor.
- When creating a new child model in Flowable Design the option to open the newly created model for edit is automatically enabled.
- Improved UI for event mapping, data object operation mapping and others to make it clear that after selecting the referenced model there is a payload mapping section as well.
- Fixed issue with service task fields not getting exported in a BPMN model.
- Fixed issue where plan fragments were exported as stages in the CMMN XML.
- Fixed issue with data object tables not rendering in the form editor preview in Flowable Design.
- Fixed issue with number fields in the form editor that were filled with 0 by default after saving a form model.
- Upgraded to Spring Boot 2.7.16.
Open source dependency version: 6.8.1.27
3.14.4
- Added support for required field indicators in Flowable React Design.
- Fixed issue with tasks of a sub case model appearing in the custom case view after the case instance is completed.
- Fixed issue with optimistic lock exceptions and NPE while running a parallel multi instance HTTP task.
- Fixed issue with migrating a case model including a variable event listener in Flowable Control.
- Fixed issue with local variables being removed when migrating a process instance.
- Fixed issue with a decision service not working with a collection type in a decision table used as input for another decision table.
- Fixed issue with connecting an element to a sentry when changing the element id manually in Flowable React Design.
- Fixed issue with using containsAny in the condition builder in a case or process model.
- Fixed issue with importing expression property values without an expression toggle from Angular Design.
- Fixed issue with MSSQL database upgrade script not working in 3.14.3 for Flowable React Design.
- Fixed issue with task id search not working in Flowable Control.
- Fixed issue with a task name with spaces getting sanitised automatically when showing and editing in the Flowable Work task view.
- Fixed issue with an action HTTP request is executed without the scope type being resolved, resulting in a wrong URL, and an unnecessary HTTP request.
- Fixed issue with data tables where row selection and a row navigation URL are both configured and it's not possible to select a row without navigating.
- Fixed issue with multiple HTTP search requests being executed for a select autocomplete field in a form where it could happen that not the response for the last request is shown in the select field.
- Fixed issue with an expression button not working within a data table column. Note that it is needed to reference $payload to set a property directly in the form payload.
- Fixed issue with a button that could be executed only once when used inside a tab component in a form.
- Fixed issue with a left aligned label not working correctly for a number field in a form.
- Fixed issue with not being able to delete an attachment from a form after saving the form and refreshing the view.
- Fixed issue with not being able to download an attachment when the content item is part of a nested JSON variable.
- Fixed issue with a single select field validation not appearing in the validation panel.
- Fixed issue with a custom validation of an expression button not appearing in the validation panel.
Open source dependency version: 6.8.1.30
3.14.5
- Fixed issue with boolean init variables not getting initialised to false by default.
- Fixed issue with flw function expression support in email templates.
- Fixed issue with content items of a child instance being shown in the documents tab when the content item is not accessible due to a custom security policy.
- Fixed issue with create instance button not resolving the correct start form.
- When an error occurs in the resolvement of expressions in an email template the email will not be sent anymore.
- In the form editor it's now possible to have spacing between form fields on the same row. When a form model is imported from the Angular Design application the spacing is applied automatically. For a form model created in the React Design application a space element can be added that is available in the palette. The space element can be changed in size as needed.
- Fixed issue with allowing to unlink models in the CMMN and BPMN editor.
- Fixed issue with configuring a single select field with data objects.
- Fixed issue with being unable to use expressions in an email from and to field.
- Fixed issue with reverting a template with a Work document not getting the Word document reverted back correctly.
- Fixed issue with hit policy no being able to change in the decision table editor.
- Added ignore instance permissions in the data object model editor.
- Added support for placeholder in a rich text field.
- Fixed issue with being unable to use custom values in a user and group permission field in React Design.
- Added app revision info to AppPublishedEvent.
- Fixed issue with an out of memory exception occurring when fetching the historic versions for a model in Angular Design.
- Removed plugin-transform-runtime babel dependency in the Flowable Forms component.
- Upgraded to Spring Boot 2.7.18.
Open source dependency version: 6.8.1.31
3.14.6
- Fixed issue where only one of the multiple variable event listeners listening for the same variable change event was getting triggered.
- Fixed issue with websocket connection issues.
- Fixed issue with event subscriptions using multiple correlation parameters not working with event listeners mapping different correlation parameters.
- Fixed issue with null response values for a REST data object resulting in an exception.
- Fixed issue with caseInstance.getId returning a plan item instance id instead of a case instance id in a CMMN script task.
- Fixed issue with data dictionary definitions not being tenant aware.
- Fixed issue with the form input mapping configuration not getting applied for historic case, process and task instances.
- Fixed issue with incorrect form input mapping being applied for user event listener start forms.
- Fixed issue with historic case instance resolving root and parent context to be used in the case view.
- Add support for updating a master data instance description with the REST API.
- Fixed issue with an avatar image being updated through the REST API for a user that is not the current user.
- Fixed issue with row modification in a data table using an array format consistently.
- Fixed issue with an ordered list in the rich text editor not using correct numbering.
- Fixed issue with the rich text editor min and max length calculation to ignore HTML and markdown characters.
- Fixed issue with an attachment component using thumbnail preview giving http 500 errors when uploading files.
- Fixed issue with a validation exclamation mark being shown on the wrong tab position in a multi tab form component.
- Fixed issue with exporting a case model using variable aggregation and importing the model again, losing the variable aggregation data.
- Fixed issue with max instance value of unlimited not getting imported correctly in React Design.
- Fixed issue with the page model export from the app model overview resulting in a wrongly exported form json in Angular Design.
Open source dependency version: 6.8.1.34
3.14.7
- Added option in Java API to activate a new start event of an event sub process in the target model when doing process migration.
- Added support for WhatsApp Cloud API with the WhatsApp adapter, including a health check API and support for defining multiple cloud app secrets.
- Added automatic refresh to user accounts view to support async adding of accounts via a case or process.
- Added FE feature flag to enable links in plain text messages in the chat functionality with the plainTextWithLinks feature flag name.
- Fixed issue with radio buttons on change event handling.
- Fixed issue with data tables that don't have a value expression set that incorrectly change the form payload.
- Fixed issue with Flowable work views package to be used in an Angular 17 application.
- Fixed issue in Angular Design that prevented the usage of quotes in a description text of an app or model.
- Updated Java and React dependencies that have security vulnerabilities.
Open source dependency version: 6.8.1.35
3.14.8
- Corrected issue with React Design in 3.14.7
Open source dependency version: 6.8.1.35
3.14.9
- Added support for WhatsApp Cloud API to the WhatsApp adapter.
- Fixed issue with the Whatsapp adapter cloud API when using templates.
- Fixed issue with file attachment not downloading in preview.
- Fixed issue with radio buttons not aligning vertically.
- Fixed issue with the PDF component in the form engine not filling available width when there are multiple files
- Fixed issue with Rich Text field validation error even though there is content.
- Fixed out of sync quick actions and title for selected conversation.
- Fixed issue in Angular Design for potential XSS issues in the app description UI and in property panel fields.
- Fixed issue with document service Task not exporting exception mapping in XML.
- When creating a template with type document it is not possible to use a text type anymore in React Design.
Open source dependency version: 6.8.1.35