Skip to content
Proxus 2.0.0 Proxus 2.0: the largest release in Proxus history Release notes

Reference · for Administrators, Developers

Configuration keys

Every section and key of Proxus-config.toml with its default and meaning, how to set it as an environment variable, and which keys have no effect.

The hub and every edge gateway read their settings from Proxus-config.toml. This page lists every section and key of the delivered file. How to edit settings from the hub's screens is in Configuration.

Where the file is and how it is read

  • Installed directly on a machine, the file is next to the program. In a container it is in /app/config/ (the config volume of the delivered Docker Compose file). If it is missing, the delivered file is written there at first start.
  • The hub reads keys that concern the hub, a gateway reads keys that concern gateways. The Read by column says which. The hub runs its own gateway (SYSTEM), which reads the gateway keys from the same file.
  • A setting is read at start. Restart the hub or gateway after a change.

Environment variables

Every key can also be set with an environment variable, which wins over the file. Join the section and the key with two underscores:

In the fileEnvironment variable
[NATS] BrokerUrlNATS__BrokerUrl
[UNS.Optimizations] SummaryIntervalMsUNS__Optimizations__SummaryIntervalMs
[Security] Lockout.EnabledSecurity__Lockout__Enabled
[[WEBAPI.Authentication.Jwt]] IssuerSigningKeyWEBAPI__Authentication__Jwt__0__IssuerSigningKey
[MCP] IPWhitelist = ["10.0.0.0/8"]MCP__IPWhitelist__0=10.0.0.0/8
[Service] UI-PortService__UI-Port

One environment variable has no key in the file: PROXUS_CERTIFICATE_STORE_KEY, the key that decrypts the private keys in the Certificate Store (a base64 value of 32 bytes). Without it, the hub keeps this key in keys/STORE/certificate-store.key in the config folder. Back up either one with the config folder.

Names are not case-sensitive. Lists take an index (__0, __1). Keys with a hyphen, such as UI-Port, work in a Docker Compose or Kubernetes environment block; a Linux shell cannot export them.

Keys marked Not used are in the file but change nothing in this release.

Culture

KeyDefaultRead byMeaning
Name"tr-TR"hub, gatewayThe default language and number and date format, as a culture name such as en-US. Users can switch language in the hub when it is one of Languages (see Language).

Kestrel.EndpointDefaults

KeyDefaultRead byMeaning
Protocols"Http1AndHttp2"Not used: each port sets its HTTP versions itself.

NATS

The message bus between the hub and the gateways. Every connection to the hub's NATS server uses TLS and checks the server against the platform CA.

KeyDefaultRead byMeaning
BrokerUrl"nats://localhost:4222"hub, gatewayThe NATS server address. In the delivered Docker installation: nats://hub-server:4222.
BrokerUser"acc"gatewayUser name, when no credentials file is set.
BrokerPassword"acc"gatewayPassword, when no credentials file is set.
CredsFile""gatewayPath to the gateway's NATS credentials file. Replaces user and password. Gateways installed from the hub get one.
CaFile""gatewayThe CA file the NATS server is checked against. Empty: the file the hub writes next to the credentials file. Set it only to use another path.
TlsHostNamesnot sethubExtra names the hub's NATS server is reached by, separated by commas, for example "nats.plant.example". The certificate also covers hub-server, the hub machine's names and addresses, every address an edge install command is created for, and [Service] PublicHostNames.
ServerTrustDirnot set ("/nats-config/nats")hubThe folder where the NATS server itself finds its certificate, as that server sees it. Change it only if the NATS server mounts the trust folder elsewhere.

Flows

The pipeline engine on each gateway. See Pipeline nodes.

KeyDefaultRead byMeaning
EffectsEnabledfalsegatewayAllows pipelines in Active mode to write to devices, call APIs and send to targets. With false these effects are refused.
Workers0gatewayPipeline workers. 0 picks the number of processor cores, at most 4. Range 1 to 4.
QueueCapacity256gatewayEvents waiting for a worker (16 to 4096).
EffectQueueCapacity128gatewayEffects waiting to run (16 to 4096). A full queue refuses new effects.
CheckpointIntervalSeconds30gatewayHow often pipeline state (windows, alarms) is saved to disk (5 to 3600).
StatusIntervalSeconds5gatewayHow often the gateway reports pipeline status to the hub (1 to 300).

Service

KeyDefaultRead byMeaning
UI-Port"8080"hubThe hub's HTTP port: screens, REST API, Telemetry API and MCP.
UI-HTTPS-Port"8443"hubThe hub's HTTPS port, with the default certificate from the Certificate Store. An empty value turns HTTPS off. UI-Port stays on for local access.
RedirectHttpToHttpsnot set ("false")hub"true" sends every HTTP request to HTTPS and turns on HSTS. Off by default, because HSTS makes browsers use HTTPS on every port of the host.
PublicHttpsPortnot sethubThe port others reach HTTPS on, when it is published on another port of the host.
PublicHostNamesnot sethubExtra names and addresses of the hub, separated by commas, for example "proxus.plant.example, 203.0.113.10". The hub's HTTPS certificate (on new installations, or after Renew) and its NATS certificate cover them, next to the machine's own names and addresses.
Server-Port"8083"gatewayThe gateway's HTTP port: health check and historical import.
Server-HTTPS-Portnot setgatewaySet it to also serve HTTPS on the gateway, with the gateway's certificate from the hub.
Name"Proxus"Not used.
UI-Address"localhost"Not used.
Server-Address"localhost"Not used.

UI

KeyDefaultRead byMeaning
ForceSkiaRenderingtruehubDrawing engine for dashboard and report images, on Windows only.
EnableDashboardExportRestrictedModefalsehubRestricted mode for dashboard export. Must be present in the file.
EnableDashboardCustomPalettenot sethubA list of colors for dashboard charts, for example ["#315b50", "#c46b2e"].

Security

KeyDefaultRead byMeaning
Lockout.EnabledtruehubLock a user out after failed sign-ins.
Lockout.MaxFailedAccessAttempts3hubFailed sign-ins before the lockout.
Lockout.DefaultLockoutTimeSpan30hubLength of the lockout, in seconds.

Security.Password

Rules for passwords. They are checked when a user must choose a new password at sign-in, when a user changes their own password with Change My Password, and when an administrator uses Reset Password. Restart the hub after a change.

KeyDefaultRead byMeaning
MinLength6hubShortest password.
MaxLength128hubLongest password.
RequireUppercase0hubAt least this many capital letters.
RequireLowercase0hubAt least this many small letters.
RequireDigits0hubAt least this many digits.
RequireSpecialCharacters0hubAt least this many characters from AllowedSpecialCharacters.
AllowedSpecialCharacters"!@#$%^&*()_+-=[]{}|;:,.<>?"hubWhat counts as a special character.
PreventKeyboardPatternsfalsehubRefuse keyboard rows such as qwerty.
PreventRepeatedCharactersfalsehubRefuse a character repeated more than MaxRepeatedCharacters times in a row. If the key is removed from the file, this check is on.
MaxRepeatedCharacters3hubSee above.
PasswordHistory5hubA user cannot choose any of their last N passwords again; the current one counts. 0 turns it off.
PasswordExpirationDays90hubAfter this many days the user must choose a new password at the next sign-in. 0: passwords do not expire. After an upgrade, the age of existing passwords starts at the first start of the new version.
PasswordExpirationWarningDays14hubThe user sees a warning at sign-in this many days before the password expires. 0: no warning.
PreventCommonPasswordstruehubRefuse the most common passwords and passwords that contain the user name.
RequireChangeOnFirstLogintruehubNew users created on Security > Users start with Force Password Change ticked.
TempPasswordExpirationHours24hubA password set with Reset Password stops working if the user has not replaced it within this many hours; an administrator then resets it again. 0: no limit.

Rules.DeviceNaming

A naming rule for new devices. See Add a device.

KeyDefaultRead byMeaning
EnabledfalsehubCheck device names against Pattern.
Pattern""hubA regular expression the whole name must match, for example ^[A-Z]{3}_[A-Z0-9_]+$.
Hint""hubThe message shown when a name does not match.
[[Rules.DeviceNaming.Sites]] Site, Pattern, Hintnot sethubA different pattern for the devices of one site.

Data

KeyDefaultRead byMeaning
MaxDeviceDataLoad1000hubMost rows of device data loaded at once in the hub's screens.
DeviceDataTimeRange"1h"hubDefault time span of device data in the screens. Values like 30s, 15m, 1h, 7d, 4w, 6mo, 1y.
LogsTimeRange"1d"hubDefault time span of logs in the screens.

EdgeGateway

KeyDefaultRead byMeaning
GatewayID"1"gatewayThe gateway's ID in the hub. 1 is the hub's own gateway, SYSTEM.
GatewayName"SYSTEM"gatewayThe gateway's name.
EdgeMode"Proxus"gatewayProxus: managed by a hub (the normal case). Standalone: runs without a hub and sends to an MQTT broker set in [MQTTAPI].
Integration"MQTT_CLIENT"gatewayThe connection used in Standalone mode.
EdgeMetricsTransmissionInterval10gatewaySeconds between two reports of the gateway's metrics to the hub.

ClickHouse

The database that stores tag values and logs.

KeyDefaultRead byMeaning
ClickHouseHost"clickhouse"hub, gatewayHost name.
ClickHousePort8123hub, gatewayHTTP port.
ClickHouseMySqlPort9004hubMySQL-protocol port, used by reports.
ClickHouseDatabase"proxus"hub, gatewayDatabase name.
ClickHouseUsername"admin"hub, gatewayUser.
ClickHousePassword"proxus"hub, gatewayPassword. Change it together with the database's own setting.
ClickHouseWriteIntervalSeconds1gatewaySeconds between two writes of buffered values.
ClickHouseLogTTLExpression"toDateTime(Time) + INTERVAL 45 DAY DELETE"gatewayHow long logs are kept.
ClickHouseTTLExpressionnot setgatewayHow long tag values are kept, for example "toDateTime(Time) + INTERVAL 1 YEAR DELETE". Not set: kept forever.

Reports.ClickHouse and Reports.PostgreSqlFederation

KeyDefaultRead byMeaning
[Reports.ClickHouse] EnabledtruehubOffer the tag value database as a data source in reports.
[Reports.PostgreSqlFederation] EnabledtruehubSet up the read-only reporting access described in Reporting federation.

ScheduledDelivery

See Scheduled delivery.

KeyDefaultRead byMeaning
ExternalDeliveryEnabledtruehubAllow scheduled reports to be sent by email. With false, nothing leaves the hub.
AutomaticRetryEnabledfalsehubAllow schedules to retry a failed delivery.
ArtifactRetentionDays0hubDelete generated files older than this many days (0 to 3650). 0 keeps them.
ArtifactCleanupIntervalHours24hubHow often old files are deleted (1 to 168).

Database

KeyDefaultRead byMeaning
ConnectionString"Server=postgresql;Port=5442;User ID=proxus;Password=proxus;Database=proxus;..."hub, gatewayThe PostgreSQL database that holds the configuration (devices, users, rules).
TelemetryDB"clickhouse"hub, gatewayWhere tag values are stored. Keep clickhouse.
InsertStrategy"Bulk"hubHow values are written. Must be present.
BulkInsertInterval1000hubMilliseconds values are collected before one write.
MaxConcurrentInserts16hubParallel writers to the database.
EnableDataStoreCachefalsehubCache configuration reads in memory.
TablesExcludedFromCache["DeviceRawData", "Log", "Device"]hubTables never cached.
DeviceRawDataRetentionPolicy"0s"Has no effect with TelemetryDB = "clickhouse". Use ClickHouseTTLExpression.

Fieldbus

How the gateway reads devices.

KeyDefaultRead byMeaning
UseBatchReadForSupportedProtocolstruegatewayRead neighboring addresses in one request where the protocol allows it.
UseS7DbFullReadtruegatewaySiemens S7: read a whole data block in one request.
SleepProbeIntervalMs10000gatewayWhen a device stops answering it goes to sleep mode; the first retry comes after this many milliseconds.
SleepProbeMaxIntervalMs300000gatewayRetries slow down up to this interval.
MaxConsecutiveLocalOverloads3gatewayHow many read timeouts caused by an overloaded gateway (not by the device) are ignored before they count against the device. 0 turns this off.

Browse

Browsing and discovery in the device setup wizard.

KeyDefaultRead byMeaning
UseEdgeRemoteBrowsetruehubBrowse from the device's gateway, not from the hub.
OpcUaDiscoveryPorts"tcp:4840, tcp:53530, https:53443"hubPorts tried when searching for OPC UA servers.
OpcUaSeedDiscoveryUrls""hubDiscovery URLs always tried, separated by commas.
OpcUaDiscoveryMaxHosts"254"hubMost addresses scanned.
OpcUaDiscoveryProbeTimeoutMs"150"hubWait per address.
OpcUaDiscoveryProbeParallelism"48"hubAddresses tried at the same time.
MtConnectDiscoveryPorts"5000, 5001, 5005, 5006, 7000"hubPorts tried when searching for MTConnect agents.
MtConnectDiscoveryMaxHosts"254"hubMost addresses scanned.

MQTTBroker

The broker on each gateway. See MQTT and the UNS topics.

KeyDefaultRead byMeaning
EnabledtruegatewayRun the broker and publish the UNS topics.
MQTTBrokerPort1883gatewayThe broker port without TLS.
TlsPort8883gatewayThe broker port with TLS, using the gateway's certificate from the hub. It opens once the hub has issued the certificate. 0 turns TLS off. Devices check the broker against the platform CA.
PlainEnabledtruegatewayKeep the port without TLS open. false accepts TLS only.
AllowAnonymousfalsegatewayAccept clients without a user name.
MasterToken""gatewayThe user name for UNS clients. Created at first start when empty.
EnableMQTTHookstruegatewayPublish the values the gateway reads on the UNS topics.
AllowPortFallbacknot set (true)gatewayWhen the port is taken, use a free one instead of failing.
BrokerHostAddress"127.0.0.1"Not used.

UNS and UNS.Optimizations

KeyDefaultRead byMeaning
UNSPayloadFormat"JSON"gatewayJSON or SparkplugB.
UNSGroupId"ProxusGroup"gatewaySparkplug group ID.
UNSEdgeNodeId"ProxusEdge"gatewaySparkplug edge node ID.
UNSRetainMessagestruegatewayRetain the state topics.
UNSVersionnot set ("v1")gatewayFirst level of every UNS topic.
QoS.Telemetry, QoS.State, QoS.Commandnot set (0, 1, 1)gatewayMQTT QoS per kind of message.
[UNS.Optimizations] TelemetryThinPayloadtruegatewayLeave the context object out of each tag message.
SummaryIncludeContexttruegatewayPut the place of the device in the _summary message.
SummaryIntervalMs5000gatewayLeast time between two summaries of a device. 0: every reading.
LastSeenIntervalMs5000gatewayLeast time between two _lastSeen messages.
StatusOnChangeOnlytruegatewayPublish _status only when it changes.
SummaryOnlyOnChangefalsegatewayPublish a summary only when a value changed.

MQTTAPI

Only for a gateway with EdgeMode = "Standalone": the MQTT broker it sends its data to.

KeyDefaultRead byMeaning
MQTTServer"your.mqtt.server.address"gatewayBroker host.
MQTTPort1883gatewayBroker port.
MQTTUser, MQTTPasswordplaceholdersgatewayCredentials.
MQTTVersion"V310"gatewayV310 or V500.
MQTTConnectionTimeOut30gatewaySeconds.
MQTTKeepAlivePeriod60gatewaySeconds.
MQTTCleanSessiontruegateway

WEBAPI

[[WEBAPI.Authentication.Jwt]]: the tokens of the REST API. Only the first entry is used; its environment variables start with WEBAPI__Authentication__Jwt__0__.

KeyDefaultRead byMeaning
Issuer"My"hubWritten into and checked on every token.
Audience"http://0.0.0.0:8082"hubWritten into and checked on every token.
IssuerSigningKey""hubThe secret tokens are signed with. Leave it empty: the hub then makes a random key on its first start and keeps it in Keys/UI/jwt-signing.key in the shared configuration folder. A value shorter than 32 characters, or the example key of earlier versions, is not used. Changing it makes all issued tokens invalid.
TokenExpireTime"1y"hubHow long a token is valid: 30m, 2h, 7d, 1y.

Cluster

KeyDefaultRead byMeaning
RedisConnectionnot sethubA Redis server, for example redis:6379, shared by several hub instances (MCP sign-ins).
GrpcInterfaceBinding, ClusterProvider"AdvertisedHost", "Consul"Not used: read, but the setting is not applied.
IdentityLookupStrategy, HeartbeatExpiration, ActorRequestTimeout, ActorActivationTimeout, GossipRequestTimeout, ActorSpawnVerificationTimeoutsee fileNot used.

UserFunctions

See Functions SDK.

KeyDefaultRead byMeaning
ExceptionThresholdPerFunction10gatewayUnhandled exceptions before a function is undeployed. 0: no limit.
UseAutoTryCatchInjectortruegatewayWrap function code so exceptions are logged and counted.
UseAutoDisposeInjectorfalsegatewayExperimental: dispose objects the function no longer uses.
LogLevelPolicy["Error:2 1m", "Critical:2 1m"]gatewayMost log lines per level and window for each function.

Logging

KeyDefaultRead byMeaning
Loglevel3hub, gatewayLowest level written: 0 Trace, 1 Debug, 2 Information, 3 Warning, 4 Error, 5 Critical.
LogRetentionTime14hubDays logs are kept in the database.
LogToFiletruehub, gatewayAlso write logs to files in the config folder.
IncludeDiagnosticDetailsfalsehub, gatewayAdd technical details to log entries.
OperationalLogDedupeWindowSeconds60hub, gatewayThe same message within this time is counted, not written again.
LogSqlQueriesfalseNot used.

Tracing, Metrics and Otlp

KeyDefaultRead byMeaning
[Tracing] Enablefalsehub, gatewaySend traces over OpenTelemetry.
[Metrics] Enablefalsehub, gatewaySend metrics over OpenTelemetry, and serve them for Prometheus on the gateway.
[Otlp] Endpoint"http://otel-collector:4317"hub, gatewayThe OpenTelemetry collector.
[Otlp] MetricsIntervalMilliseconds10000hub, gatewayHow often metrics are sent.
[Otlp] SkipWhenEndpointUnresolvabletruehub, gatewayDo not export when the collector's name cannot be resolved.

Language

The language list of the hub. The section name is shown as it appears in the file:

[DevExpress.ExpressApp]
Languages = "en-US;tr-TR"      # languages users can switch between
ShowLanguageSwitcher = true    # show the language switcher

The look of the hub is not a setting: Proxus has one theme. To show your company's name and logo, use White labeling. A theme section that an earlier version wrote into the file is removed on the first start, after a backup (Proxus-config.toml.pre-proxus-theme.bak).

Runtime

KeyDefaultRead byMeaning
MinWorkerThreads0gatewayThreads kept ready. 0: four per core, at least 32.
MinCompletionPortThreads0gatewayThreads kept ready for network work.
ThreadPoolLatencyWarningMs500gatewayLog a warning when the gateway is this late in starting work.
ThreadPoolSampleIntervalMs250gatewayHow often that delay is measured.
ThreadPoolStarvationCorrelationWindowMs5000gatewayHow long a read timeout is blamed on an overloaded gateway after a warning.

MCP and MCP.ClickHouse

See MCP server for every key and its meaning. Two keys there are Not used: AlertOnSuspiciousActivity and [MCP.ClickHouse] DefaultHours. [MCP.ClickHouse] MaxHours is only checked to be above zero.

Keys read but not in the file

These keys are read with the default shown when they are absent. Add them to the right section to change them: [MQTTBroker] AllowPortFallback (true), [UNS] UNSVersion ("v1"), [UNS] QoS.Telemetry (0), QoS.State (1), QoS.Command (1), [Fieldbus] LogTelegramMetrics (true), [Cluster] RedisConnection, [MCP] RedisConnection, [HistoricalImport] Enabled (false) and StorageEnabled (false), [Service] Server-HTTPS-Port, [ClickHouse] ClickHouseTTLExpression, [Flows] StatePath.

Was this page helpful?

Evaluating Proxus? See it on your own machines in a 30-minute technical session.