Release notes
These release notes present the current version 4.1.1 of IBM Industry Solutions Workbench, which became generally available on 2024 May 28th (GA).
New features
Feature | Description | Available since version |
---|---|---|
Custom Pipelines based on Workspaces | Pipelines are based on Workspaces and multiple Tasks. That provides an easy possibility to define own Custom Pipeline Types, see Pipeline Overview and Custom Pipelines | 4.1.1 |
Custom Remote Deploy Pipeline | Own custom pipeline templates can be definet 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 Namespaces | Additional property types Long and Time can be modelled for Domain Services, see Property Types | 4.1.1 |
Include Documentation into the product deployment | The product documentation can be deployed as part of the installation into the cluster, see Extended configuration. | 4.1.1 |
Import Service Project from GIT repository | Import 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 support | Additional validation of references between objects in domain model, as well as extended validation on API binding value in API dependencies | 4.1.1 |
Event Enhancements | Allow 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 JPA | 4.1.1 |
Extensions for Java Stack 2.0 Stack | Advanced modelling and code generation capabilities via Extensions for your project | 4.1.1 |
Java Spring Boot Stack 2.0 Stack | New Java Spring Boot Stack 2.0 introduced (based on Java 17 and Spring Boot 3) | 4.1.0 |
Saga Support for distributed transactions | For Java Spring Boot Stack 2.0 Saga Pattern Support can now be enabled | 4.1.0 |
Update of default dependencies in Generic Service Projects | Newly created Generic Serivce Projects (TypeScript and JavaScript) will automatically use the latest dependencies of the modules that are available by default. Already created projects will not be updated automatically. | 4.1.0 |
Extended validation support | API specifications are now validated when cloning and during pipeline execution. Also, additional warnings are shown if business events that still use entities as payloads as Event Support 1.0 is deprecated. | 4.1.0 |
Custom API binding values at Application Composition Projects | For API bindings in the Application Composition Projects, custom key/value pairs can be added as additional parameters. | 4.1.0 |
Access deployed Application Composition Project | You can directly jump from the Solution Designer to a deployed Application. | 4.1.0 |
Get Argo CD Data visualized in the Solution Hub | For all deployed Application Composition Project you can now access the most important information directly in the Solution Hub. | 4.1.0 |
Show schema usages | Within the schema instance page now a new part shows where the schemas are used. | 4.1.0 |
Share your workspaces with co-workers | You now simply can share your workspace with co-workers by simply handing over a token. Co-workers then easily create the same setup based on that token and later also can synchronize with the source workspace. | 4.1.0 |
Sort the properties of an entity | In Domain Namespaces you can now sort the properties of an Entity or a Root Entity according to your needs | 4.1.0 |
Branching Support | Solution Designer now shows the current branch and gives the possibility to checkout remote branches for the projects. Also deletion of single branches is supported. | 4.1.0 |
Design Model Validation for CLI | To validate the local state of the design model a new validation method has been introduced in the CLI | 4.1.0 |
Event Enhancements | Added flexibility to set headers and the message key when publishing events as well as accessing headers and the message key in agents. | 4.1.0 |
Enhancement for Domain Service Projects | From this version on, you can specify 0-50 number of decimal places for Decimal properties in the Domain & Integration Namespaces | 4.1.0 |
Enhancement for better user experience | Component source is now shown for Application Composition Projects. | 4.1.0 |
Enhancement for better user experience | API bindings and Topic bindings are refreshed after any change of a component of an application. | 4.1.0 |
Create via header navigation | The user has the possibility to access different create actions without navigating away from the current context. | 4.1.0 |
BAW Toolkit generation for API Namespaces | Improved usage of generated toolkits. Please see API Namespaces for more details. | 4.1.0 |
Event Support 2.0 | With that version the product offers the possibility to connect to a central Schema Registry and manage schemas via the Solution Designer. The current functionality Event Support 1.0 is still supported with a compatability mode. | 4.0.5 |
Fully customizable Helm Charts | The helm charts that are used for the build and deployment of service project can now be modified or completely overridden for specific projects if needed, see customized helm charts. | 4.0.5 |
Custom secrets for application composition projects | It's now possible in the Solution Designer to add kubernetes secrets for Application Composition Projects such that it can be used by the external component. | 4.0.5 |
Enhancement for Domain Service Projects | Inline and referenced responses in context of an API operation can now be edited via the Solution Designer. | 4.0.5 |
Changes
Topic | Description | Changed in version |
---|---|---|
Creation of projects | New created service projects of type Generic Service (Java) are using the new default naming strategy. (see JPA Configuration) | 4.1.1 |
Creation of projects | New created service projects of type Generic Service (Java) are based on Java Spring Boot Stack 2.0 | 4.1.1 |
Creation of projects | The naming of the available project types changed. For more information please check the Projects Overview | 4.1.0 |
Creation of projects | New created service projects of type Domain Service (Java) are based on Java Spring Boot Stack 2.0 | 4.1.0 |
Creation of projects | During service project creation, specifying a "Category" for the service is no longer possible. To classify services, it is recommended to use "Tags" instead | 4.1.0 |
Implementation of API operations (Java) | For Domain Service (Java) projects, the generated method signature of API operations might change, which requires code adaptions. Please check the Upgrade notes for further details. | 4.1.0 |
Resolved Issues
Topic | Description | Resolved since version |
---|---|---|
Not allowed to use the same pacakge path when importing asset through Asset Manager | When 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 project | 4.1.1 |
Display of imported properties | When 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 pipelines | In 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 CLI | For some requests no ca certificate is transmitted | 4.1.1 |
Domain Service Projects (Java) | While importing a Java project from an asset, the comments in the pom.xml are no longer removed | 4.1.1 |
Saga Support for distributed transactions | In case that there is an invalid URL for the lra coordinator configured, the error handling is insufficient | 4.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.0 | 4.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 property | If 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. | 23.11 |
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 class | 4.1.1 |
Generic Service Projects (Java) | The JSON formatted logs are no longer printed out. Instead only java.lang.NoSuchMethodError: 'java.time.Instant ch.qos.logback.classic.spi.ILoggingEvent.getInstant()' is logged. Workaround: In your pom.xml of the application please add the following line to the section of the properties: and in the section of the dependencies:
| 4.1.1 |
Solution Designer | Checkout of a branch into the Solution Designer now shows proper error message if there is an invalid API, that cannot be handled | 4.1.0 |
Domain Service Projects | Editing of a schema property of type array is now possible | 4.1.0 |
Domain Service Projects | Generation of invalid APIs including duplicates is now avoided | 4.1.0 |
Domain Service Projects (Java) | Using the date type for sending events is blocked by the sender due to wrong validation | 4.1.0 |
Domain Service Projects (Java) | Required API headers are ordered before optional parameters in the implementation | 4.1.0 |
Swagger-UI | New Generic Service Projects (Java) use correct baseURL for the Swagger UI. For existing projects check migration documentation | 4.1.0 |
Certificate handling in CLI | Duplicate and invalid certificates are not handled well in CLI | 4.1.0 |
Solution Designer | Left menu navigation is available in case of an error | 4.0.5 |
Solution Designer & Solution Hub | In case of an invalid entered URL a 404 page is shown | 4.0.5 |
Asset Catalogs | Assets can now be filtered by tag | 4.0.5 |
Asset Catalogs | When sharing an asset the version (SemVer) is now checked properly | 4.0.5 |
Asset Catalogs | New Service Projects created from Assets have no invalid references | 4.0.5 |
Asset Catalogs | Correct error message is now shown in case of missing permissions | 4.0.5 |
Asset Catalogs | Bitbucket is now supported for Asset Catalog | 4.0.5 |
Workspaces | Filter options are now in relation to each other | 4.0.5 |
Workspaces | Adding a project now supports filtering by tag | 4.0.5 |
Application Composition Projects | Adjusted error message in case of missing permissions | 4.0.5 |
Application Composition Projects | yaml editor for component configuration does not display more than 8 lines | 4.0.5 |
Application Composition Projects | Error message is not displayed correctly if a selected component is not in the Helm repository | 4.0.5 |
Service Projects | Deploy pipeline cannot check deployment status | 4.0.5 |
Domain Service Projects | While changing an API using the Expert View adjusted meta information and documentation on API Namespace level is now kept | 4.0.5 |
Domain Service Projects | API Dependency in Integration Namespacesnow uses the full height for the code view | 4.0.5 |
Domain Service Projects | Description of business errors in Domain Namespaces migrated to a simple text field | 4.0.5 |
Domain Service Projects | Problem navigation not working properly in case of missing k5_propagate_security_token | 4.0.5 |
Domain Service Projects | Sidebar action now closes after creation of a namespace | 4.0.5 |
Domain Service Projects | Prefix of namespace allows now camelCase | 4.0.5 |
Domain Service Projects | Added validation for invalid path parameters | 4.0.5 |
Domain Service Projects | "required" is now shown on the instance page of a schema | 4.0.5 |
Domain Service Projects | Validation fails in a nested oneOf hierarchy due to discriminator validation | 4.0.5 |
Domain Service Projects | OneOf Discriminator property error message is not clear | 4.0.5 |
Domain Service Projects | After changing an API using the Expert View default parameters are shown as modelled Header Parameters | 4.0.5 |
Domain Service Projects | The service instances page displays the inputs and outputs of the deleted services | 4.0.5 |
Domain Service Projects (Java) | Documentation Setup Java for local profile is not correct | 4.0.5 |
Domain Service Projects (Java) | When creating or editing enums, spaces that are entered at the beginning or end are automatically deleted | 4.0.5 |
Domain Service Projects (Java) | External entity constructor input properties cause Java code to fail | 4.0.5 |
Domain Service Projects (Java) | It is now possible to call an integration service from within an agent execution and the required JWT token will be provided | 4.0.5 |
Domain Service Projects (Java) | API parameters do not support uppercase for enum values | 4.0.5 |
Domain Service Projects (Java) | Using same service name in different namespaces may cause server errors | 4.0.5 |
Domain Service Projects (Java) | Incorrect alignment of the configuration in the generated local configuration template | 4.0.5 |
Domain Service Projects (Java) | oneOf schema discriminator enum value is generated incorrectly | 4.0.5 |
Domain Service Projects (Java) | Setting table names for Java RDBMS on abstract root entities is now possible. Also, the limitation for table names to 30 chars has been removed. | 4.0.5 |
Domain Service Projects (Java) | Repo variable is not assigned to associated field in services constructor | 4.0.5 |
Domain Service Projects (Java) | Changing property type does not delete additional information of associations | 4.0.5 |
Domain Service Projects (Java) | Indentations in example application-local.template.yaml are incorrect | 4.0.5 |
Domain Service Projects (TypeScript) | Projects can't be compiled if an API schema contains enum values | 4.0.5 |
Domain Service Projects (TypeScript) | SchemaFactory always returns the same instance | 4.0.5 |
Domain Service Projects (TypeScript) | References of linked schemas are not created and linked incorrectly | 4.0.5 |
Domain Service Projects (TypeScript) | API Schemas with AllOf-schemas ignore the directly associated properties in the code | 4.0.5 |
Domain Service Projects (TypeScript) | Error cloning TypeScript Domain Service projects when using a custom schema type as query parameter in an API operation | 4.0.5 |
Domain Service Projects (TypeScript) | Schemas with allOf schema ignore the directly assigned properties | 4.0.5 |
Domain Service Projects (TypeScript) | isInstanceOf is missing for external entities | 4.0.5 |
BAW Toolkit generation for API Namespaces | Error when using the BAW toolkit if the x tracing header object is not set | 4.0.5 |
BAW Toolkit generation for API Namespaces | BAW toolkit now also works in container environments | 4.0.5 |
Product Installation | Error regarding k5-project resource when Istio support is enabled | 4.0.5 |
Product Installation | ConfigMap k5-solution-global-values is not created automatically in k5-projects | 4.0.5 |
Known issues
Topic | Description | Known since version |
---|---|---|
All Service Projects | Added DEV Bindings to integration namespaces in any project type will be ignored. As a workaround, please use the Configuration Management API to specify a binding for the API dependency. | 4.1.1 |
All Service Projects | In case of using Local Lookup in combination with Istio enabled, a required secret is created with wrong values. As a workaround, please edit the created secret (k5-${serviceAcronym}-api-${apiDependencyName} ) after deployment. In the secret value, the property URL should follow the following pattern http://k5-${originSolutionAcronym}/api/${originApiName} instead of https://k5-${originSolutionAcronym}.${k5Project}.svc/api/${originApiName} | 4.1.1 |
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.1.1 |
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 Projects | When 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 Projects | If 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 Projects | Work 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 Connectivity | The first commit to GitHub Enterprise shows incorrect user data in the Git repository. | 4.0 |
Git Provider Connectivity | When 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 Configuration | Existing default or custom bindings in runtime namespaces are working, but are not displayed through the Configuration Management REST API. | 4.0 |
Environment Configuration | It 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 Services | Sending 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 Projects | When 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 response | The 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 validation | 4.0 |
Domain Service Projects | Adding 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 Projects | If you add any primitive type as operation response body this will lead to 502 statusCode. | 4.0 |
Service Projects | The 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:
| 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:
| 4.0 |
Domain Service Projects | Apicurio 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 registry | 4.0 |
Enums of a schema property | If 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 |