Skip to main content

Release notes

These release notes present the current version 4.2.0 of IBM Industry Solutions Workbench, which became generally available on 2024 November 29th (GA).

New features

FeatureDescriptionAvailable since version
Support of Oracle Transaction Manager for MicroservicesFor Java Spring Boot Stack 2.0 services using the Saga Pattern Extension, Oracle Transaction Manager for Microservices (MicroTx) can also be used as lra-coordinator.4.2.0
Assets as a part of project creationThe creation of projects has been simplified and streamlined. Assets from designated asset catalogs can now be included to be shown together with the service type projects on the first page of the project creation wizard. Please note that the default setting for asset catalogs is that they are included in the creation dialog; this can be changed at any time in the admin settings.4.2.0
Service deployment details in the Solution HubAdditional information is now accessible in the Solution Hub under each service deployment. Moreover, artifacts concerning the service deployment, like toolkits or the Swagger view of its APIs, can be accessed from the service deployment details.4.2.0
Learning content accessible from the Solution DesignerThe IBM Industry Solutions Workbench Learning Center as well as the IBM Industry Solutions Workbench 4.2.0 documentation are now directly accessible under the help sign in the application header. Additionally, a welcome page with useful links is displayed at first login, which can be switched on and off in the user settings and the page itself. You can also access this page at any time in the help menu.4.2.0
Overview of VPC usage in the Solution HubSeveral graphs visualizing the usage of VPCs (virtual processor core) per k5-project are now available in a new tab in the Solution Hub. Data for the last 31 days is available and can be filtered for timeframe and k5-projects to be displayed.4.2.0
Saga Improved CapabilitiesImproved capabilities to override saga behavior and configuration, including asynchronous calls for Orchestrator services, as well as overriding the Orchestrator behavior.4.2.0
Saga ConfigurationSaga participants are now able to return objects, allowing the Participant to run sequentially.4.2.0
Event error handlingNow failing events will be published to a Dead Letter Queue.4.2.0
Custom API basepathThe design model has been extended to support additional fields related to custom API base paths.4.2.0
Authorization flow CLIImplement device authorization flow in CLI.4.2.0
Http communicationAllow http communication for service projects4.2.0
Pipeline technologyBy default, it is expected that OpenShift Pipelines are installed on the cluster, but it is now also possible to use your own Pipeline technology instead.4.2.0
Java Live Remote DebuggingJava Live Remote Debugging is now possible.4.2.0
Batch mport of PropertiesProperties can now be created in batch via import of a CSV file.4.2.0
Installation improvementsYou can now configure a private registry for your installation.4.2.0
New project type "Integration service"A new project type "Integration Service" has been introduced for Java Spring Boot Stack 2.0. Using this service type, you can implement a backend which provides a REST API and consumes other REST APIs in a comfortable manner with a high degree of automation.4.2.0
Improved User SupportMore contextual links to the documentation are provided throughout the application. The documentation and the learning center can now be accessed from the help menu in the application header and help icons next to field redirect to the corresponding entry in the documentation.4.2.0
UI ImprovementsThe UI has been improved in several ways, e.g. via adjustable columns and sidebars, file upload via drag & drop, and a warning notification for unsaved changes in the text editor.4.2.0
NestJS stackThe new TypeScript NestJS stack offers support for easily implementing a NodeJS backend using TypeScript as implementation language.4.2.0
NestJS API ModellingNestJS stack now supports API Modelling, allowing users to define API namespaces through the Solution Designer.4.2.0
NestJS Swagger UI SupportNestJS stack now supports Swagger UI generation for API namespaces modelled in Solution Designer4.2.0
Custom Pipelines based on WorkspacesPipelines are based on workspaces and multiple tasks. That provides an easy possibility to define own Custom Pipeline Types, see Pipeline Overview and Custom Pipelines4.1.1
Custom Remote Deploy PipelineOwn custom pipeline templates can be defined to be able to deploy service projects (Java SpringBoot Stack 2.0) to another cluster. Its possible to deploy into amd64 or ppc64le (IBM Power Server) clusters, see Custom Remote Deploy Pipeline and Deployment Pipeline for IBM Power Server (ppc64le)4.1.1
Property Types Long and Time for Domain NamespacesAdditional property types Long and Time can be modelled for Domain Services, see Property Types4.1.1
Include documentation into the product deploymentThe product documentation can be deployed as part of the installation into the cluster, see Extended configuration.4.1.1
Import Service Project from GIT repositoryImport an existing Service Project from a connected GIT repository into the Solution Designer, see Import Service Project from GIT repository.4.1.1
Extended validation supportAdditional validation of references between objects in domain model, as well as extended validation on API binding value in API dependencies4.1.1
Event EnhancementsAllow setting of headers and message key when publishing events as well as accessing headers and the message key in agents for Java projects.4.1.1
Java Persistence Annotations (JPA)Customization of data persistence in Java Spring Boot Stack 2.0 projects with database type DB2 (RDBMS) with JPA4.1.1
Extensions for Java Stack 2.0 StackAdvanced modelling and code generation capabilities via Extensions for your project4.1.1

Changes

TopicDescriptionChanged in version
Paths and operations interfaceYou can now view and manage the operations associated to a path on a new path instance page accessible via the paths overview. New operations can be created there or via the table row actions in the paths overview page.4.2.0
Creation of projectsNew created service projects of type Generic Service (Java) are using the new default naming strategy. (see JPA Configuration)4.1.1
Creation of projectsNew created service projects of type Generic Service (Java) are based on Java Spring Boot Stack 2.04.1.1

Resolved Issues

TopicDescriptionResolved since version
Domain Service Projects (TypeScript, Java)Project configuration files (e.g. tsconfig.json, mvnw.cmd) get overwritten on the deployed pods if they already exist on the git repository.4.2.0
Domain Service Projects (TypeScript)High numerical values of type Long (Domain entity properties) might get truncated. This occurs due to coercion from the native Number data type to the Bigint data type.4.2.0
Not allowed to use the same pacakge path when importing asset through Asset ManagerWhen creating a new project by importing asset, If the asset acronym and base package name matches the acronym and basepackage name of new project, then import/creation fails for new project4.1.1
Display of imported propertiesWhen importing properties for a schema in an API namespace, the property type has not been displayed as a whole in the selection table if the label was longer than the table column width.4.1.1
Failing deploy & release pipelinesIn some cases, the generated pom.xml file did not use the latest versions of dependencies or plugins. If the generated code was not compliant with the used dependencies, the pipelines might have failed.4.1.1
Certificate handling in CLIFor some requests no ca certificate is transmitted4.1.1
Domain Service Projects (Java)While importing a Java project from an asset, the comments in the pom.xml are no longer removed4.1.1
Saga Support for distributed transactionsIn case that there is an invalid URL for the lra coordinator configured, the error handling is insufficient4.1.1
Implementing Domain Services (Java)In Java Spring Boot Stack 2.0, saving domain entities with BigDecimal property (or any type from java.math) to MongoDB will throw an InaccessibleObjectException. As a workaround for single deployment services, use the following API to add the following to JAVA_OPTIONS --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/java.math=ALL-UNNAMED and for application composition, add the following to values.yaml: additionalJavaOptions: "--add-opens=java.base/java.time=ALL-UNNAMED --add-opens java.base/java.math=ALL-UNNAMED"4.1.1
Domain Service Projects (Java)Log tracing in Java Spring Boot Stack 2.04.1.1
Generic Service Projects (Java)Entries in application-local.template.yaml are now aligned with the expected configuration keys in Java Spring Boot Stack 2.0.4.1.1
Enums of a schema propertyIf you try to create a new version of a schema from the schema registry and want to change a property with enum values via the modeling editor, these enum values are not displayed in the 'Edit Property' view and are therefore deleted when saving. As a workaround in this case, you can use the 'Expert view' when changing the property.4.1.1
Service Projects (Single Deployment)The single component deployment step of services now masks the keycloak client secret.4.1.1
Domain Service Projects (Java)Domain Properties of type "Currency" and "GeoPoint" are now using the correct path to the Money/GeoPoint class4.1.1
New values are not immediately visible in Solution HubThe fields "Identity provider service binding", "Database service binding" and "Message hub service binding" don't reflect a newly added value immediately. The value will be created, but has to be searched and set by hand again after creation.4.1.1

Known issues

TopicDescriptionKnown since version
Modeling toolCombinations of expandable model elements (systems, containers, groups) cannot be copied and pasted properly. Expandable elements within an expandable element wil be inserted outside of the parent element and have to be manually moved back to the parent.
Modeling toolCopying/Cutting and pasting relationships (e.g. if two connected elements are copied and pasted) results in the relationship being inserted even if it has been removed beforehand.
Java Stack 1.0The current version of spring-web for the java stack 1.0 has a critical vulnerability (CVE-2016-1000027), which can't be resolved, since it's not possible to update to Spring 6. It's recommended to migrate to Java Stack 2.0.4.0.5
Implementing Domain Services (TypeScript)Event using entity as payload fails if property "id" is used.

_Remediation:_ Use schema for event payload or rename the property to a different naming.
4.0.5
Domain Service ProjectsWhen creating a "OneOf Schema" and specifying a discriminator, a required property is created with the name of the discriminator, which is automatically attached to each schema belonging to the "OneOf Schema".

_Remediation:_ If one of these schemas is used independently, the discriminator property must be set to #/components/schemas/<schema_localIdentifier> accordingly.
4.0
Domain Service ProjectsIf one of the schemas of a oneOf-schema contains a property with the same name as the name of the discriminator, then this property will be replaced by the discriminator. The discriminator is an Enum value of type String.

_Remediation:_ Make sure that there are no properties in any of the schemas of a "oneOf-schema" that have the same name as the discriminator.
4.0
Domain Service ProjectsWork with multiple developers on a project can lead to conflicts.

_Remediation:_ In case of conflicts, delete the package-lock.json of the project and execute k5 pull.
4.0
Domain Service Projects (Java)The root level "pom.xml" file is not automatically updated when the Java SDK version has changed.

_Remediation:_ Update the pom.xml file manually if the Java SDK version has changed.
4.0
Git Provider ConnectivityThe first commit to GitHub Enterprise shows incorrect user data in the Git repository.4.0
Git Provider ConnectivityWhen getting new permissions or when permissions are changed in the repository membership or role assignment, it may take up to a maximum of 3 minutes to activate them if the repository membership is changed. This time period is currently not configurable.

_Remediation:_ If the role assignment is changed, you have to log out and log back in to activate the permissions. To reduce the time required to activate the new permissions, you can clear the cache manually by calling the appropriate API, for example, via the Swagger UI interface.
4.0
Runtime ConfigurationExisting default or custom bindings in runtime namespaces are working, but are not displayed through the Configuration Management REST API.4.0
Environment ConfigurationIt is not possible to configure more than one Message Hub Service Binding (Kafka binding) at the environment level in Solution Hub.

_Remediation:_ You can still configure and use multiple Message Hub service bindings at the _project_ level.
4.0
Implementing Domain Services (TypeScript)Local debugging of TypeScript Domain Service Projects that contain events requires additional manual configuration to connect to the Kafka cluster.

_Remediation:_Manually configure the local debugging to connect to the Kafka cluster.
4.0
Implementing Domain ServicesSending an array / a complex payload entity (i.e. has properties that are entities) is not supported due to the way an entity is represented (nested value dictionaries) that are not able to be constructed back when consuming events and firing agents. If the event payload is a simple structure (an entity with simple properties), it is successfully reconstructed, the event is consumed, and the agent is fired.4.0
Application Composition ProjectsWhen the version of a component in use is changed, the associated binding information (API binding(s) and theme binding(s)) is not automatically updated.

_Remediation:_ When you have changed the configuration of the component, please save a copy of the content and then remove the component. Then click the "cog wheel" icon and click the "API Bindings/Theme Bindings" button. Finally, add the component back in the desired version and paste the configuration again.
4.0
Swagger-UI - Execute button does not responseThe Swagger UI API has two known issues that can cause the "Execute" button to not work: #6295 Execute button is not working with 'malformed' JSON body, and #7784 OAS2: Execute button doesn't work if the request body fails schema validation4.0
Domain Service ProjectsAdding an entity name with a suffix "Entity" (e.g. petEntity) in the domain namespace results in a compilation error because the SDK currently uses the "Entity" suffix as the reserved name for the entity interface. In the future, the generated interfaces will be removed.4.0
Domain Service ProjectsIf you add any primitive type as operation response body this will lead to 502 statusCode.4.0
Service ProjectsThe default branch name of a project cannot be changed later.4.0
Domain Service Projects (Java)Enum values in API parameters that are not written in uppercase only lead to the exception MethodArgumentTypeMismatchException

_Workaround:_ The missing converters have to be created manually for each enum class, which is affected:
  1. Create a package web under your application package
  2. Create for each affected enum class a converter similar to:
    package [MYAPP].web;
    import org.springframework.core.convert.converter.Converter;
    import [MYAPP].sdk.api.[MYAPI].model.[MYENUM];
    public class StringTo[MYENUM]Converter implements ConverterString, [MYENUM] {
    @Override
    public [MYENUM] convert(String source) {
    return [MYENUM].fromValue(source);
    }
    }
  3. Register all converters by creating a class similar to:
    package [MYAPP].web;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.format.FormatterRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    @Configuration
    public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addFormatters(FormatterRegistry registry) {
    registry.addConverter(new StringTo[MYENUM]Converter());
    // one line per converter...
    }
    }
4.0
Domain Service Projects (TypeScript)Any designed query parameter with type boolean or number will be represented as string. This will lead to validation errors while using them as service input

_Workaround:_
  1. Boolean Case: check if the value can be converted to boolean as following
    const booleans: string[] = ['true', 'false'];
    if(booleans.includes(request.query.booleanProperty)){
    const convertedBooleanProp = JSON.parse(request.query.booleanProperty);
    }
  2. Number Case: check if the value can be converted to number as following
    if (!Number.isNaN(+request.query.numberProperty) ){
    const convertedNumProp = +data.myNumber;
    }
4.0
Domain Service ProjectsApicurio cannot handle event evolution with compatibility rules enabled. This is due to a bug in apicurio and leads to the situation that the Solution Designer cannot register a new schema or update it. _Remediation:_ do not enable the compatibility rules for apicurio schema registry4.0
Enums of a schema propertyIf you try to create a new version of a schema from the schema registry and want to change a property with enum values via the modeling editor, these enum values are not displayed in the 'Edit Property' view and are therefore deleted when saving. As a workaround in this case, you can use the 'Expert view' when changing the property.4.0
Compare deployments for components versionsIf there are any incompatible versions that don't follow the semantic versioning format, the version list will not be ordered by the latest version.4.0

Deprecated features

If a feature is listed as deprecated, or certain system requirements are indicated as deprecated on the Software Product Compatibility Reports website, IBM might remove this capability or support in a subsequent release of the IBM Industry Solutions Workbench to focus on follow-on technologies or the strategic feature that is listed under Action. Typically, a feature is not deprecated unless an equivalent alternative is provided or available. A feature is not removed for at least two releases after the deprecation of the feature is declared. In rare cases, it might be necessary to remove features sooner; such cases are indicated in the descriptions of these removed features.

The following features from previous releases are deprecated IBM Industry Solutions Workbench 4.2.0

Deprecated featureDescriptionAction
Event Support 1.0With introduction of the new Event Support 2.0 the feature is deprecated in Version 4.0.5Use the compability mode to to migrate your projects as described in Event Support 1.0
Java Spring Boot Stack 1.0With introduction of the new Java Spring Boot Stack 2.0 the feature is deprecated in Version 4.1.0Upgrade to the new version of the stack

Removed features

The following features from previous releases are removed in IBM Industry Solutions Workbench 4.2.0

Removed featureDescriptionAction
No features have been removed in version 4.2.0