Skip to content

gateway: nested plugins.<name>.* params silently dropped (flat JSON key) #520

Description

@mfaferek93

Problem

extract_plugin_config() built a flat JSON object keyed by the dotted ROS-param remainder. A param like plugins.<name>.native_alarms.enabled produced {"native_alarms.enabled": true}. Every plugin reads nested objects (config["native_alarms"]["enabled"]), so the whole plugins.<name>.* param surface was dead for any nested key across all plugins. Only single-level flat keys worked.

Impact

Configure-via-param was silently broken for all nested plugin config (ADS native_alarms + discovery, discovery/auto_browse/auto_alarms, severity_bands, ...). No error, the value was just dropped.

Fix

Reconstruct a nested JSON object by splitting the prefix-stripped remainder on ., preserving flat single-level keys, array leaves, both param sources (parameter_overrides and --params-file YAML), and the read-only .path exclusion. Helpers moved into param_utils.hpp with gateway gtests locking 2-level, 3-level, array leaf, .path exclusion, and the leaf/intermediate collision.

Fixed in #518

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions