OL Hub Release Notes 3.0.23
Release Date: February 2, 2026
OL HUB Core Version 5.0.146 · OL HUB DTF Version 3.0.23
✨ New Features
Method Flows – Handling Multiple Asset Responses
Assets in method flows can now route multiple response types (for example, different HTTP status codes) into separate branches:
- New Responses tab on assets lists all non-default responses (such as 400, 401, 404).
- For each response you can choose to:
- Create a new success output,
- Create a new error output, or
- Map it to an existing output/error (for grouping, such as all 4xx into a single “Client Error” branch).
- At runtime:
- Mapped responses are routed via their configured outputs/errors.
- Unmapped responses trigger the asset’s error handling (OnError / unhandled exception).
This makes it much easier to design flows with explicit handling for different response codes.
Asset Versioning – Regenerate Related Methods
The Hub can now help keep your methods in sync with asset versions:
- When you create a new version of an asset, The Hub checks if the prior version had simple or system API methods that depend on it.
- If so, the Hub offers to auto-regenerate them against the new asset version.
- The list of methods related to an asset is updated accordingly.
CLI – Discover Project Technology Type
The CLI now exposes the project’s technology type, which is useful for deployment automation:
ol list projectsnow shows the Technology for each project (such as OpenAPI, Kafka, Generic).- A new
get project [Project Name]command returns:- Project name
- Description
- Technology
RPGLE Parsing – CLI
The CLI now supports parsing RPGLE sources into assets:
ol add --source-pathsupports.RPGLEfiles and directories.- RPGLE sources are automatically recognized and parsed into:
- One Operation per program.
- One or more Model Definitions for inputs/outputs.
- Parsing output is stored as asset metadata in the selected module.
- The generated asset structure follows the same conventions as other host technologies (for example, COBOL), without impacting existing PCML support.
RPGLE Parsing – Hub UI
The Hub UI now supports parsing RPGLE/RPG files into assets:
After parsing, the Hub creates a new asset in the current module that includes:
-
- An Operation representing the program.
- Model definitions for input and output structures.
- A path reference to the source program on the AS400.
- The Input and Output tabs present the parsed hierarchy, including nested fields.
- Representation and behavior are aligned with other parsed asset types (PCML, COBOL, JCL).
🚀 Enhancements
Projects – Handling Duplicate Screen Asset Names
When projects contain more than one screen module, Hub now helps you identify and resolve duplicate screen asset names:
- Modules that contain duplicates are marked with a notification icon.
- Each duplicated asset is highlighted.
- When viewing a project that includes duplicates, Hub displays a clear message explaining the issue and pointing you to the affected assets so you can rename them.
This improves clarity in flows and avoids confusion when multiple modules share asset names.
Consumer Configurations – Dynamic Values Support
Consumer configurations now support dynamic values, similar to connections:
- Fields in consumer configurations can use environment-based placeholders and other dynamic patterns.
- Works on both contract-level and method-level consumer configurations.
- Reduces the need for YAML workarounds and allows reusing the same project across multiple environments by simply changing environment variables or dynamic expressions.
Reverse Client Generator – Response Consolidation
Reverse-generated client programs for Z/OS COBOL , Z/OS CICS COBOL and AS/400 COBOL have been improved to better represent all possible responses without duplicating structures:
- All 2XX responses are grouped and named as:
RESPONSE-OKfor the main success structure (200 if present, otherwise the first 2XX).RESPONSE-OK2,RESPONSE-OK3, and so on for other unique 2XX structures.
- All non‑2XX responses are grouped and named as:
RESPONSE-ERRORfor the first error structure.RESPONSE-ERROR2,RESPONSE-ERROR3, and so on for additional distinct error structures.
- Identical response schemas (for multiple status codes) are consolidated into a single COBOL structure with comments listing all the covered status codes.
- All response structures other than
RESPONSE-OKREDEFINERESPONSE-OK, andRESPONSE-OKincludes a filler so its total size is at least as large as any other response.
This produces cleaner, more maintainable COBOL clients that still capture all response variations.
Kafka Consumer – Extended Client Configuration
Kafka consumers now expose additional client configuration options directly in the UI:
- Support for setting additional Kafka properties as a key–value map, aligned with standard consumer configuration options.
- New poll timeout configuration to control how long a consumer waits when polling for messages.
- All properties (including additional properties) support environment variable placeholders:
- Single or multiple placeholders within a value, such as
www.${var1}.com/${var2}.
- Single or multiple placeholders within a value, such as
- The same capabilities are available both at the consumer level and the consumer method level.
This enables richer and more flexible Kafka consumer configurations without manual overrides.
🐞 Bug Fixes
- Fixed an issue where some mappings in mainframe screen flows were not being applied after introducing a new variable
- Addressed a regression where some screen table mappings began to behave incorrectly following a Hub SaaS upgrade.
- Resolved an issue where path parameters configured as integers were being converted to strings at runtime:
- This caused downstream expression steps and logic that expected integer values to fail.
- Path parameter handling now preserves the declared data type, so integer parameters remain integers throughout the flow.
- Fixed an issue where a method’s generated OpenAPI specification produced an incorrect status code (for example, 227 instead of the configured 200)
- Fixed a problem where MQ consumers sometimes failed to resume message consumption after network interruptions
