4.3.0
Release notes for version 4.3.0 of the Rhize application.
Release date: 7 July 2026
Changes by service
The following sections document the changes this release brings to each service.
Admin
Add
- Add parameter specification to Work Master editor
- Add warnings for integrity issues when loading Hierarchy Scopes
- Add disable/enable confirmation modals for Units of Measure page
- Add Work Master Notes Field to Material, Equipment, Personnel, and Physical Asset Specifications
- Add Deadband Type, Deadband Value, and Deadband Timeout fields to DataSource Topics
- Add support for rendering workflow specification nodes in different shapes based on their their Workflow Specification Node Type configuration
- Add shape selection to Node Type page
- Add deadbanding fields to Data Source Topic importer
- Add properties to Workflow Specification connections
- Add support for an optional condition field on Workflow Specification connections
- Add “Libre Kafka Write” BPMN element template to facilitate writing data to Kafka topics, with configurable properties for topic, payload, max payload size, and output mapping
- Add “Copy Token” action to the user menu dropdown, enabling users to copy their authentication token to the clipboard with appropriate UI notifications
Change
- Change multiple Work Master UI elements
- Change error in Equipment Class Rule Definitions to be more specific by showing raw error
- Change equipment sidebar to load via tree structure rather than a flat list
- Change formatting of IDs for Material, Equipment, Personnel, and Physical Asset Specifications
- Change “Use” field in “Add Resource” popup to be a required field for Material, Equipment, Personnel, and Physical Asset Specifications
- Change Datasource Topic Import modal to support fields for Deadbanding
- Change error breakdown in Data Source Topic import modal to better display errors in validation
- Change deadband type dropdown to display empty option as “None”
- Change material use column to be consistent with sibling specification grids
- Change resource specifications to allow for optional use
- Change resource specifications to not account for use in ID formulation for Equipment, Personnel, and Physical Asset
- Change Apollo Sandbox telemetry to be disabled
- Change Work Master resource specification UI to use shared components
Fix
- Fix handling for broken Equipment Asset mappings on Physical Asset page to be done gracefully
- Fix resource selection and simplify the ’type’ column for filter and rename state variable
- Fix enable button and inactive styling for disabled Operational Location properties
- Fix duplicate label field from
QueryEquipmentClass - Fix for number of items in pagination “showing x to y of z” table
- Fix newly created Work Master not showing in sidebar panel
- Fix placeholder IIDs being sent with GraphQL mutations, causing database errors
- Fix “select all” under one specification heading selecting items across all headings
- Fix quick fix for broken equipment page
- Fix handling for Hierarchy Scopes with orphaned Equipment versions
- Fix Equipment tree failing to render all items on pagination
- Fix issue where changes to an OED property did not persist after save
- Fix issue where GraphQL requests would not retry on a network connection error
- Fix changes to Hierarchy Scope field in Personnel Class not persisting after save
- Fix spelling in coordinates message
- Fix Operational Location and Operational Location Class properties being editable on approved and deprecated versions
- Fix Operational Location Class being editable when the version is approved
- Fix update page limit retrieval in multiple components to resolve complete fail when falsy page limit is set in ENV
- Fix GraphQL error propagation crash caused by orphaned Operational Location nodes missing their non-nullable ID field
- Fix connection type seeding error on Workflow component remount
- Fix Work Master properties including a blank Unit of Measure IID when none was provided
- Fix update flow for Work Master properties to remove then set in sequence
- Fix “id already exists” on second add for Work Master properties
- Fix nested refs not unwrapping properly on inherited property selections in Work Master
- Fix issue where creating a new Equipment Class version would result in the version field being disabled
- Fix inline editing of Units of Measure not being saved
- Fix Equipment tree not refreshing on enable/disable
- Fix newly added Equipment appearing at end of Equipment tree instead of start
- Fix newly added child Equipment not appearing
- Fix child Equipment disappearing on drag and drop
- Fix Data Source topic importer sending swapped/empty fields
- Fix newly created Data Source topics displaying metadata as “Not available”
- Fix edit button in Data Source Topics not allowing fields to be edited
- Fix changes to Is Assembled From on Material Class not persisting after save
- Fix version state changes breaking Material Class and Material Definition UI
- Fix changing version state causing version dropdown select to disappear
- Fix saving a new version causing version management display to disappear
- Fix Work Master page freezing when trying to add Physical Asset
- Fix editing Physical Asset Classes on Physical Asset Version causing error on save
- Fix editing a Physical Asset property causing other properties to disappear
- Fix editing a property on Physical Asset Properties page deleting other properties in the table
- Fix typo of “specification”
- Fix issue in Work Master where edges would disappear after changing node type
- Fix Connection Type selector from resetting selection
Remove
- Remove unused formatting icon in output section of JSONata Playground
- Remove the Connection String, Username, Password, and Certificate fields from the Data Source view
- Remove unused “Linked WorkMasterVersion” field from the Workflow node editor
Agent
Add
- Add configuration options for Restate connection
- Add previously removed Restate-based Read, Write, and MethodCall handlers for OPC UA data sources
- Add graceful shutdown for the Restate HTTP/2 server
- Add support for deadbanding with generic configuration that works for numeric values across OPC UA, MQTT, and Azure Service Bus
Fix
- Fix trace provider using an already cancelled context on shutdown, resulting in unreliable shutdown errors
Change
- Change trace provider to warn instead of panic on shutdown failure
- Change Restate handler errors to terminal errors to prevent retry loops
- Change warning logs for OPC UA type mismatch to include the affected node
- Change go to v1.25.11 from v1.24.0
- Change library github.com/eclipse/paho.golang to v0.23.0 from v0.22.0
- Change library github.com/eclipse/paho.mqtt.golang to v1.5.1 from v1.5.0
- Change library github.com/nats-io/nats-server/v2 to v2.11.12 from v2.11.2
- Change library go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc to 1.43.0 from 1.40.0
- Change library go.opentelemetry.io/otel/sdk to v1.40.0 from v1.38.0
- Change library golang.org/x/net to 0.55.0 from 0.51.0
- Change library github.com/gopcua/opcua to use forked version
- Change to use internalized graphql schema types
Remove
- Remove deprecated library golang.org/x/net/http2
BaaS
Change
- Change regexpcompare filter to process after indexed optimized filters by splitting filtering into two phases
- Change deprecated docker library to moby library
- Change go to v1.25.11 from v1.24.6
- Change library golang.org/x/net to v0.55.0 from v0.51.0
- Change library google.golang.org/grpc to v1.81.1 from v1.79.3
- Change library go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp to v1.43.0 from v1.40.0
Fix
- Fix supercompose by adding regexpcompare to DgraphIndex enum across schema files
- Fix key not found error when querying for type by implementing WriteAtomic for safe split posting list transactions
- Fix restoring backup from S3
- Fix duplicate CDC messages on Alpha restart
- Fix orphaned pending transactions during leadership changes
Remove
- Remove go toolchain v1.24.7 specification
ISA-95
Add
- Add DeadbandType enum with ABSOLUTE and RELATIVE variants to schema
- Add
deadbandType,deadbandValue, anddeadbandTimeoutto Datasource Topics in schema - Add a configurable buffer for writing records to QuestDB, which can be enabled with
EXPERIMENTAL.TIMESERIES.WRITEBUFFER.ENABLED - Add equipment property change buffer configurable properties to viper configuration
- Add custom restate logger to suppress invocation successful info messages
- Add
includesPropertiesOfin relationships for hierarchy ofWorkflowSpecificationNodeTypeandWorkflowSpecificationConnectionTypes - Add
isIncludedin relationships for hierarchy ofWorkflowSpecificationNodeTypeandWorkflowSpecificationConnectionTypes
Change
- Change schema to support workflow breakpoints
- Change Timeseries Adapter for QuestDB WriteRecords to use InfluxDB Line Protocol (ILP) instead of Postgres (PG) protocol
- Change docker file to download libraries first to accelerate builds with docker build cache enabled
- Change go to v1.25.11 from v1.24.0
- Change library github.com/jackc/pgx/v5 to v5.9.2 from v5.7.6
- Change library golang.org/x/net to v0.55.0 from v0.46.0
- Change library go.opentelemetry.io\otel\exporters\otlp\otlptrace\otlptracehttp to v1.43.0 to v1.37.0
Fix
- Fix issue where trying to “save as” a datasource with many versions would result in a timeout
- Fix issue where
BuildCloneQuerywould produce an empty graphql field selection when called withdepth < maxDepth
Remove
- Remove additional log message when adding events to spans
Typescript host service
Releasing in step with other components.
Workflow
Add
- Add breakpoint creation and functionality in workflow engine
- Add trace meta data for restate instance id, workflow specification id and workflow specification version
- Add service to validate the process JWT against a set of claims provided using jsonata
- Add Kafka write task
Change
- Change span names from generic ‘workflow token’ to workflow process
- Change __trace_id to otel trace id instead of restate invocation id
- Change sql query parse library for when CGO isn’t available
- Change go to v1.25.11 from v1.25.0
- Change library github.com/jackc/pgx/v5 to v5.9.2 from v5.7.6
- Change library golang.org/x/net to v0.55.0 from v0.47.0
Fix
- Fix duplicate error code prefixes in nested call activities
- Fix missing tracing link between parent and child & improve trace metadata
- Fix orphaned traces due to missing links
Compatibility
Rhize v4.3.0 has been tested to work with the following third-party applications:- Grafana: 11.6.0
- Keycloak: 26.4
- Prometheus: 3.7.3
- Restate: 1.5.3
- Redpanda: 25.2.10
- Redpanda Console: 3.2.2
Checksums
When you install, check the container images against these checksums:
Admin:
registry.gitlab.com/libremfg/frontend/libre-admin-ui:v4.3.0
sha256:c88286242ca586c56110a33e1c99ed16eff789f7dad5af30de39735c13584623
Agent:
registry.gitlab.com/libremfg/libre-agent:v4.3.0
sha256:6c4a2085575ed47796bf14db2dcf0b144c11fe37295625a14782079ecff9487d
BaaS:
registry.gitlab.com/libremfg/baas:v4.3.0
sha256:94154216aef53cf4afb6d3e5906ad7d7908066d295e12a4f0e8ab53c7b62d55d
ISA-95:
registry.gitlab.com/libremfg/isa95:v4.3.0
sha256:23929da5d191f803722aec37df908ab3c55ca767bc92d579d8be5a90b1d05623
Keycloak theme:
registry.gitlab.com/libremfg/frontend/libre-keycloak-theme:v4.3.0
sha256:195c2d83869b89ca50efa97486a2527b23e0c0b4a9929b4676fe597d2f40e0db
Typescript host:
registry.gitlab.com/libremfg/typescript-host-service:v4.3.0
sha256:08261dbbe77855a37a2a7b5b8f6e2c4bd8e623643bf52673ec297d8a79a3b81b
Workflow:
registry.gitlab.com/libremfg/workflow:v4.3.0
sha256:3cadbd1d3aa07dd71c23df5e3f03bdfdf0d04b919120c34940550bcbe981e3caUpgrade
To upgrade to v4.3.0, follow the Upgrade instructions.
Breaking Changes
“Save Version As” Mutation
The return of a “Save Version As” mutation no longer returns a complete version of the copied entity. Instead, it will return a shallow copy, which excludes results for the versions field.
Example
With the following mutation for Material Definitions:
mutation {
saveMaterialDefinitionVersionAs(
fromID: "ExampleID"
fromVersion: "1"
toVersion: "2"
) {
iid
version
versionStatus
materialDefinition {
iid
id
label
nextVersion
versions {
iid
}
activeVersion {
iid
}
}
}
}The result in the prior version would be:
{
"data": {
"saveMaterialDefinitionVersionAs": [
{
"iid": "0x7536",
"version": "2",
"versionStatus": "DRAFT",
"materialDefinition": {
"iid": "0x7531",
"id": "ExampleID",
"label": "ExampleID",
"nextVersion": "3",
"versions": [
{
"iid": "0x7"
},
{
"iid": "0x8"
}
],
"activeVersion": null
}
}
]
}
}The new result would be:
{
"data": {
"saveMaterialDefinitionVersionAs": [
{
"iid": "0x7536",
"version": "2",
"versionStatus": "DRAFT",
"materialDefinition": {
"iid": "0x7531",
"id": "ExampleID",
"label": "ExampleID",
"nextVersion": "3",
"versions": [],
"activeVersion": null
}
}
]
}
}