ISA-95 configuration
This document covers how to configure the ISA-95 service through its Helm Chart.
Application configuration
isa95 is configured entirely through environment variables, set in the chart’s
envVars. There is no configuration file, so any setting left unset takes its
default value.
General settings
| Value | Description |
|---|---|
port |
|
servicename |
|
baas.url[Required] |
|
secret.key[Required when a secret value is written or read] |
|
logging.level |
|
logging.type |
|
oidc
At startup isa95 fetches the provider’s .well-known/openid-configuration and
public keys and then obtains an access token; failure at either step exits the
process. isa95 signs in as a user rather than as the client, so it takes a
username and password alongside the client id and secret.
| Value | Description |
|---|---|
oidc.serverUrl[Required] |
|
oidc.realm[Required when oidc.enableGenericOidc is false] |
|
oidc.clientId[Required] |
|
oidc.clientSecret[Required] |
|
oidc.username[Required] |
|
oidc.password[Required] |
|
oidc.enableGenericOidc |
|
oidc.customRolesKey |
|
oidc.customAudienceKey |
|
libreDataStoreGraphQl.caFile |
|
restate
| Value | Description |
|---|---|
restate.admin[Required] |
|
restate.serverurl[Required] |
|
kafka
Consumed only when valuechange.direct is enabled, which puts isa95 into
direct Kafka consumption rather than receiving events through Restate.
| Value | Description |
|---|---|
kafka.servername[Required when valuechange.direct is true] |
|
kafka.serverport[Required when valuechange.direct is true] |
|
kafka.groupid |
|
kafka.consumer_count |
|
valuechange.direct |
|
valuechange.topic |
|
ludicrous.mode |
|
questdb
The time series store for equipment property history. Reads and writes use two different QuestDB ports: queries go over the PostgreSQL protocol, and writes go over the InfluxDB line protocol on HTTP.
| Value | Description |
|---|---|
questdb.host[Required when timeseries.enabled is true] |
|
questdb.port[Required when timeseries.enabled is true] |
|
questdb.username[Required when timeseries.enabled is true] |
|
questdb.password[Required when timeseries.enabled is true] |
|
questdb.ilpconf |
|
timeseries.enabled |
|
equipment_property_change_buffer
Batches equipment property changes before writing them to the time series store. Each value falls back to the built-in default if it is zero or negative, with a warning.
| Value | Description |
|---|---|
equipment_property_change_buffer.flush_interval |
|
equipment_property_change_buffer.buffer_size_per_equipment |
|
equipment_property_change_buffer.receive_channel_size |
|
Other services
| Value | Description |
|---|---|
jsonata.grpc[Required] |
|
opentelemetry.serverurl |
|
Helm chart values
Values shared by every chart are documented in
shared-helm-values.md. This chart deploys a Deployment, has no
ConfigMap, and passes all configuration as environment variables.
| Value | Description |
|---|---|
envVars[Required] |
|
additionalSecrets |
|
graphqlCA |
|
The Deployment also sets POD_IP from the downward API.
The Restate admin URL set directly, and two credentials taken from Secrets:
envVars:
RHIZE_ISA95_RESTATE_ADMIN: "http://restate:9070"
additionalSecrets:
- name: RHIZE_ISA95_OIDC_CLIENTSECRET
secretName: libre-client-secrets
secretKey: libreISA95
- name: RHIZE_ISA95_SECRET_KEY
secretName: libre-secrets
secretKey: isa95SecretKey