Edit Page

3.0.1

Release notes for version 3.0.1 of the Rhize application.

This release includes bug fixes, improvements for developer experience, and new relationships between entities in the ISA-95 schema. It also clears the way for the new, improved Work Calendar service (still in release candidacy).

Release date: 23 Jul 2024

Warning This release includes a few minor breaking changes, review the upgrade instructions for details.

Changes by service

The following sections document the changes this release brings to each service.

Audit

Fixes

  • Fix Postgres user tag query to use column name user_id instead of the user reserved keyword

BPMN

Features

  • Error boundary events now support call-activity tasks. If a task in the called process aborts, the error boundary captures that event.
  • Support Custom Certificate authorities so that the BPMN service can run in networks with internal certificates authorities.
  • Message events now support topics that use the + wildcard.
  • Add configuration option to set __traceDebug flag on all BPMN executions. For details, read Debug workflows.
  • Allow __traceDebug to be set from variable context.
  • Add support for querying a range of work calendar entries for a Work Calendar Definition.
    • When configured, calendar data persists to a timeseries DB.
    • ⚠️Breaking . Work calendars now query for WorkCalendarDefinitions not workCalendars. This makes it possible to configure calendars in the UI.
    • Work calendar execution is now based on Hierarchy Scope.

Change

  • Reduce number of retries in BPMN recovery, speeding up response times when node does not exist. From the user’s perspective, the delay was particularly notable on API BPMN triggers when the specified workflow did not exist.

Fixes

  • Capture panics in JSONata go for better recovery and discovery.
  • ⚠️Breaking . Limit BPMN users to only tokens with specific audience and scope.
  • Workflow specifications not found in NATS now fall back to database lookups before failing. Fixes issue when spinning up new development containers.
  • Include metadata fields for jobResponse. Fixes panic if node tried to access these fields.
  • Respect debug flag for BPMNs triggered with createAndRunBpmn.
  • Reuse expected Audience for clients to match documented client name.
  • Do not create calendar entry for end events.
  • Fix nil pointer error when aborting tasks without parents.

Schema

Features

  • ⚠️Breaking . Add id and label to stateTransitionInstance.
  • Add menu URL for portal in UI (preparation for future work in UI).
  • Add filter to query material actual by a material requirement and vice-versa.
  • Link workCalendarEntries to equipment versions.
  • Include Kafka in the enum values for data sources.
  • Added optional InformationObjectTypeEnum to OperationsEventRecordEntry.

Fixes

  • Add 0:N relationship from materialRequirements to materialActual.
  • The segmentResponse entity can now have multiple jobResponses attached.
  • Change segmentResponse relationship to JobResponse to be a 1:N relationship
  • ⚠️Breaking . Change stateModelTransition from state to a relationship.
  • Fix inverse relationship between operationseventDefinitionProperty and operationsEventProperty.

Compatibility

v3.0.1 compatibility Rhize v3.0.1 has been tested to work with the following third-party applications:
  • Apollo router 1.15.1
  • Grafana: 9.4.7
  • Keycloak: 21.1.1
  • Keycloak Postgres: 15.3.0
  • Loki: 2.9.3
  • NATS: 2.10.17
  • Tempo: 2.3.1

Checksums

When you install, check the container images against these checksums:

BPMN engine:
registry.gitlab.com/libremfg/bpmn-engine:v3.0.1
sha256:d5395f8a5a342c904367385c7996c1a8936a0eac498822191e0bd3e064dc72d3

Libre Core:
registry.gitlab.com/libremfg/libre-core:v3.0.1
sha256:9c312df6c8c08e41221f6bb68e1d3609db51cf87cc5d6d85f644d452c4617509

Libre Agent:
registry.gitlab.com/libremfg/libre-agent:v3.0.1
sha256:696a9e028ffbca5ca3820fde7223b018e88899719c7b4e784c2e86b921f61615

Libre Audit:
registry.gitlab.com/libremfg/libre-audit:v3.0.1
sha256:718d57c7e7206450bca3337f682c4782cb5222b20ae24b47ed838b5f7f963db3

Libre Audit Postgres
registry.gitlab.com/libremfg/libre-audit/postgres:v3.0.1
sha256:7629dde995db6b22020ab85c68c25be478cf54c7d6d64e5a30aab72d336432f8

Libre BaaS:
registry.gitlab.com/libremfg/baas:v3.0.1
sha256:605513936d88fb09babc7d1b38410c32674d14b6a38db1363fd0e6fbf27aaec3

Libre router init:
registry.gitlab.com/libremfg/libre-router-init:v3.0.1
sha256:32084bd47013974317aa39288c28686084500a8c51a5bfa0b2b135d5a77bb8e6

Libre Keycloak theme:
registry.gitlab.com/libremfg/frontend/libre-keycloak-theme:v3.0.1
sha256:ed9e6cd57d02c5f7177d328f40fd440021432ed874ffb64c765f1a378fd7c08a

Libre Admin UI:
registry.gitlab.com/libremfg/frontend/libre-admin-ui:v3.0.1
sha256:f796ac698ebde6bb5f7dd08bb11246e4658abf2b8d61bf3299cd01f3ae48c19e

Download v3.0.1-checksums.txt

Upgrade

Back up first Before upgrading, consider backing up your Rhize services. To review the procedure, read our Back up guides.

To upgrade to v3.0.1, first ensure that you have made corrections for the aforementioned breaking changes.

Rhize now limits BPMN users to the libreBpmn audience and bpmn:mutation role. If users do not have this audience and role, they will unable to log in. To fix this:

  1. Log in to the Keycloak service in your Rhize environment.
  2. Select the libre realm.
  3. Configure the audience and role for the Users or groups that should be able to run BPMN workflows. For details, read Install Keycloak.

Work calendars now query for workCalendarDefinitions, not workCalendars. There is a chance this may break some calendars that already exist. To mitigate this, ensure you set active definitions for the calendars you want to query. Read About calendars and overrides for details about how the service and its relationships work.

After you’ve made the necessary mitigations, follow the upgrade the Upgrade instructions.

Post upgrade

Two schema changes to the state model also might cause breaking changes after upgrade. You can correct these issues by re-uploading the data.

For the specific breaks:

The StateTransitionInstance entity now has an id and label property. Any such entities that were created without an ID and label are now invalid. To mitigate this:

  1. Query for your StateTransitionInstance:
    query QueryStateTransitionInstance {
      queryStateTransitionInstance {
        iid
      }
    }
    
  2. Use a mutation to update these to have an ID and label.

Any existing StateModelTransitions using a from or to property will break. Change these to a relationship.