Skip to content

Commit e6128ae

Browse files
authored
Merge pull request #209 from libremfg/jwilson/release-v4-4-0
[Feat] Add v4.4.0 release notes
2 parents a50a795 + c8d9f0e commit e6128ae

107 files changed

Lines changed: 14346 additions & 2 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

content/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
description: User guides, deploy docs, references, and deep dives about the
33
Rhize manufacturing data hub.
44
cascade:
5-
v: "4.3.0"
5+
v: "4.4.0"
66
type: "docs"
77
---
88

content/latest/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ weight: 002
44
description: User guides, deploy docs, references, and deep dives about the
55
Rhize manufacturing data hub.
66
cascade:
7-
v: "4.3.0"
7+
v: "4.4.0"
88
type: "docs"
99
icon: molecule
1010

content/latest/releases/4-4-0.md

Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
---
2+
title: 4.4.0
3+
description: Release notes for v4.4.0 of the Rhize application
4+
categories: ["releases"]
5+
weight: 1639347320
6+
aliases:
7+
- /releases/4-4-0
8+
9+
---
10+
11+
Release notes for version 4.4.0 of the Rhize application.
12+
13+
_Release date:_
14+
11 August 2026
15+
16+
## Changes by service
17+
18+
The following sections document the changes this release brings to each service.
19+
20+
### Admin
21+
22+
#### Add
23+
- Add opt-in support for authentication against a generic OIDC provider instead of Keycloak
24+
- Add environment variable `APP_AUTH_OIDC_ADDITIONAL_SCOPES` to request extra scopes on top of standard scopes
25+
- Add JWT node template
26+
27+
#### Change
28+
- Change Physical Assets page to use generic versioned entity components
29+
- Change OIDC to request `openid`, `profile`, `email`, and `offline_access` as standard scopes on every sign-in
30+
- Change description on Google BigQuery node template for clarity
31+
32+
#### Fix
33+
- Fix issue where inline editing on Equipment Class Properties would result in a GraphQL error
34+
- Fix issue where saving a versioned entity with many entities present would cause the version dropdown to disappear
35+
- Fix Equipment sidebar search not searching unloaded Equipment
36+
- Fix missing success notification for enabling and disabling Equipment
37+
- Fix missing scopes on OIDC sign-in
38+
- Fix extra brackets being displayed around version on Physical Asset page
39+
- Fix Approved and Deprecated Physical Asset versions allowing properties to be disabled
40+
- Fix Physical Asset page showing success message along with error message when trying to create duplicate property
41+
- Fix versioning in Physical Asset properties to include version number in entity version prefix to prevent duplicate ID error
42+
- Fix issue with connections not rendering in Work Master editor
43+
- Fix issue with dragging nodes not updating selection in Work Master editor
44+
- Fix positioning of Work Master nodes created by API
45+
46+
### Known Issues
47+
- Known issue where navigating to another tab after adding an Equipment Asset Mapping may cause the newly created mapping to disappear
48+
- Known issue preventing editing of inherited properties on Equipment, Person, Operations Event Definition, and Physical Asset pages
49+
- Known issue where creating a new version on the Person page causes other versions to disappear from the dropdown
50+
- Known issue where two Active versions may display for an Operational Location
51+
- Known issue where editing an Operational Location property may cause other properties on the table to disappear
52+
- Known issue where prior values for an Operations Event Definition version may display after creating a new version
53+
54+
### Agent
55+
56+
### Add
57+
- Add option to bypass OIDC
58+
- Add support for authentication against a generic OIDC provider instead of Keycloak
59+
- Add support for Azure EventHub datasource
60+
61+
### Change
62+
- Change JWT library to golang-jwt/jwt/v5 from dgrijalva/jwt-go/v4
63+
- Change OIDC to use `client_credentials` grant
64+
- Change `oidc.realm` in config to be optional
65+
- Change golang to v1.25.12 from v1.25.11
66+
- Change library golang.org/x/net to v0.57.0 from v0.55.0
67+
- Change library golang.org/x/text to v0.39.0 from v0.37.0
68+
- Change library google.golang.org/grpc to v1.82.1 from v1.80.0
69+
70+
### Remove
71+
- Remove support for OIDC username and password
72+
- Remove durable queue from `MessageHandler`
73+
74+
### BaaS
75+
76+
### Add
77+
- Add `EventDefinitions` and `SchemaDiagrams` to the `/admin` GraphQL API
78+
- Add functionality to allow GraphQL queries to be called with a timestamp
79+
- Add full CDC sink-and-source pipeline for publishing CDC events to Solace
80+
- Add an immutable audit trail for capturing CDC events from a Solace queue and writing append-only rows to an Apache Iceberg table, allowing audit records to be queried through the `queryAudit` resolver on the `/admin` GraphQL API
81+
- Add Schema Explorer page to the BAAS Console, allowing visualization of the GraphQL schema as a node graph
82+
- Add support for authentication against a generic OIDC provider instead of Keycloak with `enable-generic-oidc`
83+
84+
### Change
85+
- Change library golang.org/x/text to v0.39.0 from v0.37.0
86+
- Change library google.golang.org/grpc to v1.82.1 from v1.81.1
87+
- Change library github.com/go-chi/chi/v5 to v5.3.0 from v5.2.4
88+
- Change library github.com/klauspost/compress to v1.18.7 from v1.18.4
89+
90+
### Fix
91+
- Fix `worker`: resolve CDC-pinned orphaned transactions
92+
- Fix `worker/cdc`: reset stranded pending events when WAL is trimmed past `seenIndex`
93+
- Fix GraphQL subscriptions failing with authentication
94+
- Fix rebuild index ignoring schema requirements
95+
96+
## Known Issues
97+
- Known issue where BAAS Console S3/Minio Backup page may show a success message despite giving an invalid destination
98+
- Known issue where BAAS Console Local Export backup page may show a success message despite giving a potentially invalid export destination
99+
- Known issue where BAAS Console schema upload page will not show an error for a potentially invalid schema
100+
101+
### ISA-95
102+
103+
### Add
104+
- Add tests for timeseries queries
105+
- Add `AzureEventHub` to `DataSourceProtocol`
106+
- Add `historyQuery` custom field to Equipment type to enable SQL queries of timeseries data within Equipment context
107+
- Add `EventSource*` types for defining event specific data sources
108+
- Add `ackMethod` field to `EventSourceTopic`
109+
110+
### Change
111+
- Change schema to reflect default limits on SQL runtime queries
112+
- Change golang to v1.25.12 from v1.25.11
113+
- Change library golang.org/x/text to v0.39.0 from v0.37.0
114+
115+
### Fix
116+
- Fix `DispatchStatus` values to align with ISA-95 specification
117+
- Fix missing deprecation on `DispatchStatus` for `CANCELED` causing errors
118+
119+
### Typescript host service
120+
121+
_Releasing in step with other components._
122+
123+
### Workflow
124+
125+
### Add
126+
- Add JSON schema node for fetching schema from a schema registry
127+
- Add support for authentication against a generic OIDC provider instead of Keycloak
128+
- Add terminal error messages to BPMN variable context
129+
- Add AMQP Event Source driver
130+
- Add support for different acknowledgement methods for Event Sources based on topic configuration
131+
132+
### Change
133+
- Fix missing check for debug mode on Workflow Instances
134+
- Change OIDC to use `client_credentials` grant
135+
- Change calls to Restate from BPMN nodes to allow calls to any endpoint
136+
- Change `zeebe:input` mapping with an empty target to spread resolved JSON object fields directly into `taskVars`
137+
- Change `zeebe:input` source evaluation to read inputs starting without "=" as raw JSON when the input's target is empty
138+
- Change golang to 1.25.12 from 1.25.9
139+
- Change library golang.org/x/tools to v0.47.0 from v0.45.0
140+
- Change library google.golang.org/grpc to v1.82.1 from v1.80.0
141+
142+
### Fix
143+
- Fix authentication not being checked on BPMN load and execution
144+
- Fix trailing `/` being appended to discovery URL in OIDC adapter
145+
146+
### Remove
147+
- Remove support for OIDC username and password
148+
149+
## Compatibility
150+
151+
{{< compatible "4.4.0" >}}
152+
153+
## Checksums
154+
155+
{{% checksums "v4.4.0-checksums.txt" %}}
156+
157+
## Upgrade
158+
159+
To upgrade to v4.4.0, first ensure that you have made corrections for the following breaking changes.
160+
161+
After you've made the necessary mitigations, follow the [Upgrade instructions](/deploy/upgrade).
162+
163+
## Breaking Changes
164+
165+
### Changes to OIDC Configuration
166+
Agent and Workflow now authenticate with client credentials instead of password grants. The OAuth client must now be confidential with service accounts enabled, and its service account user must be granted any necessary roles. For Keycloak the following changes will need to be made:
167+
168+
#### Workflow Required Roles
169+
Workflow now requires the `bpmn:mutation` role to execute BPMNs that are not started by a user.
170+
171+
1. In the left hand menu, select **Clients > `{{< param application_name >}}Baas`** and then select the **Roles** tab.
172+
1. Select **Create role**.
173+
1. Name the role `bpmn:mutation`.
174+
1. **Save**.
175+
1. In the left-hand menu, select **Groups**.
176+
1. Select your admin group, and then select the **Role mapping** tab.
177+
1. Select **Assign role > Client roles**.
178+
1. Select `bpmn:mutation` from **`{{< param application_name >}}eBaas`**.
179+
1. **Assign**.
180+
181+
#### Configure Clients
182+
Clients now need to be configured to use service account roles and have their service account user be added to the admin group.
183+
184+
1. In the left-hand menu, select **Clients > `{{< param application_name >}}Workflow`**.
185+
1. Under **Capability config,** enable **Service account roles**.
186+
1. **Save**.
187+
1. Select the **Service account roles** tab.
188+
1. In the notice "To manage details..." select the `service-account-{{< param application_name >}}workflow` link.
189+
1. Select the **Groups** tab.
190+
1. Select **Join Group**.
191+
1. Select your admin group, commonly named `{{< param application_name >}}AdminGroup`.
192+
1. **Join**.
193+
1. Repeat the process for `{{< param application_name >}}Agent`.

content/latest/releases/_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ weight: 1000
55
identifier: releases
66
cascade:
77
icon: rss
8+
application_name: libre
89
aliases:
910
- /releases/
1011

content/versions/v4.3.0/_index.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
title: Rhize Product documentation
3+
weight: 002
4+
description: User guides, deploy docs, references, and deep dives about the
5+
Rhize manufacturing data hub.
6+
cascade:
7+
v: "4.3.0"
8+
type: "docs"
9+
icon: molecule
10+
11+
---
12+
13+
The following topics cover everything you need to know to administrate and use Rhize.
14+
15+
For administrators, the Deploy topics cover everything about deploying Rhize on Kubernetes and maintaining through the cycle.
16+
For day-to-day users, the product documentation covers everything you need to use Rhize to model production and transform and store data.
17+
18+
19+
{{< card-list >}}
20+
21+
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
title: Deploy
3+
description: >-
4+
A collection of pages to administrate Rhize: install, upgrade, back up, and more.
5+
weight: 100
6+
icon: server
7+
identifier: deploy
8+
cascade:
9+
icon: server
10+
domain_name: libremfg.ai
11+
brand_name: Libre
12+
application_name: libre
13+
db: libreBaas
14+
pre_reqs: |-
15+
- Optional: [kubectx](https://github.com/ahmetb/kubectx) utilities
16+
- `kubectx` to manage multiple clusters
17+
- `kubens` to switch between and configure namespaces easily
18+
- Optional: the [k8 Lens IDE](https://k8slens.dev), if you prefer to use Kubernetes graphically
19+
k8s_cluster_ns: |-
20+
```bash
21+
## context
22+
kubectl config current-context
23+
## namespace
24+
kubectl get namespace
25+
```
26+
27+
To change the namespace for all subsequent [`kubectl` commands](https://kubernetes.io/docs/reference/kubectl/cheatsheet/) to `libre`, run this command:
28+
29+
```bash
30+
kubectl config set-context --current --namespace=libre
31+
```
32+
33+
aliases:
34+
- /deploy/
35+
36+
---
37+
38+
A collection of pages to administrate Rhize: install, upgrade, back up, and more.
39+
40+
41+
{{< card-list >}}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
title: About OpenID connect
3+
description: The Rhize GraphQL implementation uses OpenIDConnect for
4+
Authentication and role-based access control. This section describes how to
5+
set up Keycloak
6+
weight: 999
7+
categories: ["concepts"]
8+
db: libreBaas
9+
aliases:
10+
- /explanations/about-openidconnect
11+
- /deploy/about-openidconnect
12+
13+
---
14+
15+
Rhize uses [OpenIDConnect](https://openid.net/developers/how-connect-works/) to connect to a [Keycloak](https://www.keycloak.org/) server to authenticate users and manage Role-based access controls.
16+
17+
Open ID Connect is a security architecture that uses JSON Web Tokens (JWTs) to access secured resources.
18+
JWTs are issued by Keycloak. Users can also be managed in Keycloak.
19+
Or you can manage users in other services such as LDAP, Google, Azure AD, Facebook, etc.
20+
21+
The general authentication flow is as follows:
22+
1. When a user accesses the user interface, the UI redirects to Keycloak.
23+
1. Depending on how it is configured, Keycloak redirects to the authentication provider so that the user can log in.
24+
1. If the user is successfully authenticated, Keycloak redirects back to the user interface with an authentication code in the URL parameters.
25+
1. The UI calls a secure API to exchange the authentication code for a JWT.
26+
1. The UI then uses that JWT to access secure APIs such as the Rhize GraphQL API.
27+
28+
The Rhize DB, {{< param db >}}, has the public key from Keycloak, which can be used to verify the JWT.
29+
30+
```mermaid
31+
sequenceDiagram
32+
actor User
33+
participant UI as Web UI
34+
participant Rhize as Rhize DB
35+
participant KC as Keycloak
36+
participant AP as AuthProvider
37+
Rhize->>KC: Get Public Key
38+
User->>UI: Log In
39+
UI-->>KC: Redirect
40+
KC-->>AP: Redirect
41+
AP->>User: Credentials
42+
AP-->>KC: Auth Result
43+
KC-->>UI: Redirect with Code
44+
UI->>KC: Exchange Code for Token
45+
KC->>UI: Reply with id_token and access_token
46+
UI->>Rhize: Access API with Bearer Token
47+
Rhize->>Rhize: Verify Token with Public Key from Keycloak
48+
49+
```
50+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
date: "2023-09-12T19:35:35+11:00"
3+
title: Back up
4+
description: Guides to back up your data on Rhize
5+
categories: ["how-to"]
6+
weight: 200
7+
cascade:
8+
icon: database
9+
aliases:
10+
- /deploy/backup/
11+
12+
---
13+
14+
Backup is critical to ensure reliability and recovery.
15+
16+
These guides show you how to back up different services and data on Rhize.
17+
They also serve as blueprints for automation.
18+
19+
Your organization must determine how frequently you backup services, and how long you store them for.
20+
The correct practice here is highly contextual,
21+
depending on the size of the data, the importance of the data, and the general regulatory and governance demands of your industry.
22+
23+
24+
{{< card-list >}}

0 commit comments

Comments
 (0)