Configuration Reference
This is the reference for the central config /data/config.yaml
File location: The container mounts
/data
as a writable volume. Hot-reload: The Agent polls the file every tick; valid changes are applied automatically. UI Terminology: In the Management Console UI,protocolConverter:
is shown as "Bridges" anddataFlow:
is shown as "Stand-alone Flows"
YAML vs UI: Choose Your Workflow
UMH Core supports both direct YAML editing and Management Console UI for configuration. Each approach has distinct advantages:
YAML Configuration Benefits
Version Control: Every change is tracked with Git — see who changed what, when, and why
GitOps Integration: Automate deployments, rollbacks, and multi-environment promotion
AI/LLM Integration: Tools like Cursor and ChatGPT can generate, modify, and optimize configurations
Templating Power: Create and connect hundreds of machines with a few keystrokes using YAML anchors
IDE Support: Syntax highlighting, validation, autocomplete, and refactoring tools
UI Configuration Benefits
Zero Code: Any OT person or business user can click and configure without YAML knowledge
Input Validation: Real-time validation prevents configuration errors before deployment
Visual Guidance: Wizards and forms guide users through complex protocol configurations
Live Preview: See the impact of changes before applying them
The Best of Both Worlds
UMH Core provides two-way synchronization: changes made in the UI are reflected in the YAML file, and YAML edits are shown in the UI. This means:
OT teams can use the UI for day-to-day operations
IT teams can use YAML for infrastructure-as-code workflows
Both approaches maintain full version control and auditability
Scaling operations benefit from templating while individual adjustments benefit from UI convenience
Pro Tip: Start with the UI to understand the configuration structure, then switch to YAML for advanced templating and automation.
Terminology Reference
Bridge
Protocol Converter
protocolConverter:
Connects external devices to UNS with health monitoring
Stand-alone Flow
Data Flow Component (DFC)
dataFlow:
Point-to-point data processing pipelines
Stream Processor
Stream Processor
dataFlow:
Processes data within UNS (upcoming feature)
Note: YAML configuration keys retain legacy names for backward compatibility. The Management Console UI uses the current terminology.
Agent - Runtime & Device identity
metricsPort
int
9102
Exposes Prometheus metrics for the container.
location
map int → string
–
Hierarchical location path (level0-4+) that identifies this gateway. Level 0 (enterprise) is mandatory. Can follow ISA-95, KKS, or any organizational naming standard.
communicator.apiUrl
string
– (console-managed)
HTTPS endpoint of the Management Console.
communicator.authToken
string
–
API Key issued by the console. Can be set via AUTH_TOKEN
env-var.
communicator.allowInsecureTLS
bool
false
Location levels
0
Enterprise
enterprise
powerplant
acme-inc
1
Site/Region
site
/plant
unit-group
cologne-plant
2
Area/Zone
area
/line
unit
cnc-line
3+
Work Cell+
work-cell
, plc
component-grp
plc123
DataFlow - Stand-alone Flows
name
string
✔
Unique within the file.
desiredState
active
| stopped
✔
Agent will converge to this state.
dataFlowComponentConfig.benthos
object
✔
Inline Benthos config (inputs, pipeline, outputs).
Quick field map
input.*
Any supported Benthos-UMH input (OPC UA, S7comm, Modbus, MQTT, Kafka, …).
pipeline.processors
Standard Benthos processors plus tag_processor
& nodered_js
.
output.*
Usually uns: {}
for Unified Namespace. MQTT, HTTP, SQL, etc. also available.
Bridge – Bridge from Device to UNS
🚧 Roadmap Item: Bridges are under active development. Current functionality includes connection monitoring and basic read/write flows.
It combines a connection probe and two stand-alone data flows (one for reading and one for writing) under a single name and lifecycle.
Key fields
name
Unique ID for this converter instance
desiredState
active
to run immediately, or stopped
to keep it defined but off.
protocolConverterServiceConfig.location
Appended to the global agent.location
. Optional, but useful to identify per-machine data.
template.connection.nmap
TCP liveness check to decide if the device is reachable.
template.dataflowcomponent_read.benthos
Benthos pipeline to pull and forward data.
template.dataflowcomponent_write.benthos
Benthos pipeline to push and forward data.
variables
Optional Go-template variables, referenced via {{ .VARNAME }}
in the template.
Benthos-UMH Processors
UMH Core includes specialized processors for industrial data:
tag_processor 🚧
🚧 Roadmap Item: The current
tag_processor
implementation follows the benthos-umh pattern with tag names in payloads. With the next UMH Core release,tag_processor
will be updated to align with the new data model where:
Tag names are only in topics (not in payloads)
Metadata is not included in message payloads
Data Contract Guidelines:
Use
_raw
for simple sensor data and initial device integration
nodered_js 🚧
Process data using Node-RED-style JavaScript:
Industrial Input Protocols
Popular protocols include:
UMH Core Integration Pattern:
Internal - Built-In Services (expert)
UMH-Core injects this section automatically.
Do not edit unless instructed by UMH support; invalid settings can brick the stack.
Validation & tips
YAML anchors are supported – useful for re-using input or output snippets.
The Agent logs schema errors and refuses to activate a malformed DFC.
Related Documentation
External References
Last updated