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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions