Skip to content

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, and deadbandTimeout to 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 includesPropertiesOf in relationships for hierarchy of WorkflowSpecificationNodeType and WorkflowSpecificationConnectionTypes
  • Add isIncluded in relationships for hierarchy of WorkflowSpecificationNodeType and WorkflowSpecificationConnectionTypes

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 BuildCloneQuery would produce an empty graphql field selection when called with depth < 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:3cadbd1d3aa07dd71c23df5e3f03bdfdf0d04b919120c34940550bcbe981e3ca

Download v4.3.0-checksums.txt

Upgrade

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
        }
      }
    ]
  }
}