HiveMQ Edge Mutable and Immutable Configuration Options

HiveMQ Edge is designed to be run in both container and standalone environments. When run in containers, the configuration is considered immutable since changes to the underlying config.xml can be lost during some scaling/deployment events. For this reason, configuration enables the user to selectively decide whether to allow API or UI interactions to update the config.xml.

Property Name Description Format

allow-configuration-export

When enabled, the current state of the configuration xml file can be export via the API endpoint '/management/system/configuration'

Boolean

allow-mutable-configuration

When enabled, changes to bridge, adapter and UNS configuration will be reflected in the config.xml file

Boolean

Mutable Configuration (default)

Mutable configuration is designed for use in standalone deployment modes. Mutable configuration files are updated by changes to the API or user interface. Configuration changes are reflected across process restart.

Example to enable mutable configuration
     <dynamic-configuration>
        <allow-configuration-export>false</allow-configuration-export>
        <allow-mutable-configuration>true</allow-mutable-configuration>
    </dynamic-configuration>

Immutable Configuration

Immutable configuration is designed for use in container deployment and orchestration modes. Immutable configuration files are NOT written during interactions with the API or user interface. Instead, state changes are reflected ephemerally in the runtime, a restart event reverting to the initial configuration. Running in this mode allows the ephemeral state to be exported via API or user interface. Immutable configuration files can be updated with an offline process.

Example to enable immutable configuration
     <dynamic-configuration>
        <allow-configuration-export>true</allow-configuration-export>
        <allow-mutable-configuration>false</allow-mutable-configuration>
    </dynamic-configuration>