inheritable config flow
An inheritable config flow contains settings that a node makes available to its descendants in the mesh hierarchy. It is the primary mechanism for providing default configurations to child nodes.
Inheritance Hierarchy
The inheritance chain follows this precedence (most specific wins):
- Parent Node's InheritableNodeConfig
- Grandparent Node's InheritableNodeConfig (and so on, up the tree)
- Service-level InheritableNodeConfig
- Platform-level InheritableNodeConfig (ultimate fallback)
The final OperationalNodeConfig
for a given node is resolved by merging the settings from this chain.
Resolution Algorithm
When resolving a node's operational configuration, the system walks up the hierarchy from the node's parent, collecting InheritableNodeConfig
at each level. These are merged, with settings from closer ancestors taking precedence.
Property-Level Inheritance
Configuration inheritance works at the property level. A child's InheritableNodeConfig
can override a single property while still inheriting others from its parent.
{
"@id": "parent:inheritableConfig",
"@type": "node-conf:InheritableNodeConfig",
"node-conf:versioningEnabled": true,
"node-conf:distributionFormats": ["application/trig", "application/ld+json"]
}
{
"@id": "child:inheritableConfig",
"@type": "node-conf:InheritableNodeConfig",
"node-conf:versioningEnabled": false
// Inherits distributionFormats from parent
}
Configuration Control Properties
nodeConfigInheritanceEnabled
(Child's Perspective)
Controls whether a node receives inherited configuration.
- Default:
true
- Effect: When
false
, the node ignores the inheritance chain and uses only its own operational config or system defaults.
inheritableConfigPropagationEnabled
(Parent's Perspective)
Controls whether a node provides its inheritable configuration to its children.
- Default:
true
- Effect: When
false
, this node acts as a "firewall," blocking its own and any ancestor's inheritable configs from flowing down to its children.
Backlinks