- New baseConfig.json: shared schema for general/logging/functionality/asset sections - ConfigManager.buildConfig(): builds runtime config from UI inputs + domain overrides - Eliminates the need for each nodeClass to manually construct base config sections - All nodes can now use: cfgMgr.buildConfig(name, uiConfig, nodeId, domainConfig) Closes #1 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
86 lines
2.7 KiB
JSON
86 lines
2.7 KiB
JSON
{
|
|
"general": {
|
|
"name": {
|
|
"default": "Unnamed Node",
|
|
"rules": { "type": "string", "description": "Human-readable name for this node." }
|
|
},
|
|
"id": {
|
|
"default": null,
|
|
"rules": { "type": "string", "nullable": true, "description": "Unique node identifier (set at runtime)." }
|
|
},
|
|
"unit": {
|
|
"default": "unitless",
|
|
"rules": { "type": "string", "description": "Default measurement unit." }
|
|
},
|
|
"logging": {
|
|
"logLevel": {
|
|
"default": "info",
|
|
"rules": {
|
|
"type": "enum",
|
|
"values": [
|
|
{ "value": "debug", "description": "Verbose diagnostic messages." },
|
|
{ "value": "info", "description": "General informational messages." },
|
|
{ "value": "warn", "description": "Warning messages." },
|
|
{ "value": "error", "description": "Error level messages only." }
|
|
]
|
|
}
|
|
},
|
|
"enabled": {
|
|
"default": true,
|
|
"rules": { "type": "boolean", "description": "Enable or disable logging." }
|
|
}
|
|
}
|
|
},
|
|
"functionality": {
|
|
"softwareType": {
|
|
"default": "unknown",
|
|
"rules": { "type": "string", "description": "Software type identifier for parent-child registration." }
|
|
},
|
|
"role": {
|
|
"default": "Generic EVOLV node",
|
|
"rules": { "type": "string", "description": "Describes the functional role of this node." }
|
|
},
|
|
"positionVsParent": {
|
|
"default": "atEquipment",
|
|
"rules": {
|
|
"type": "enum",
|
|
"values": [
|
|
{ "value": "upstream", "description": "Upstream of parent equipment." },
|
|
{ "value": "atEquipment", "description": "At equipment level." },
|
|
{ "value": "downstream", "description": "Downstream of parent equipment." }
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"asset": {
|
|
"uuid": {
|
|
"default": null,
|
|
"rules": { "type": "string", "nullable": true, "description": "Asset UUID from asset management system." }
|
|
},
|
|
"tagCode": {
|
|
"default": null,
|
|
"rules": { "type": "string", "nullable": true, "description": "Asset tag code." }
|
|
},
|
|
"supplier": {
|
|
"default": "Unknown",
|
|
"rules": { "type": "string", "description": "Equipment supplier." }
|
|
},
|
|
"category": {
|
|
"default": "sensor",
|
|
"rules": { "type": "string", "description": "Asset category." }
|
|
},
|
|
"type": {
|
|
"default": "Unknown",
|
|
"rules": { "type": "string", "description": "Asset type." }
|
|
},
|
|
"model": {
|
|
"default": "Unknown",
|
|
"rules": { "type": "string", "description": "Equipment model." }
|
|
},
|
|
"unit": {
|
|
"default": "unitless",
|
|
"rules": { "type": "string", "description": "Asset measurement unit." }
|
|
}
|
|
}
|
|
}
|