Add pre-check of options used in config Json for logos-delivery-api pre-createNode, treat unrecognized options as error

This commit is contained in:
NagyZoltanPeter 2026-04-07 14:24:51 +02:00
parent 59bd365c16
commit 487832e662
No known key found for this signature in database
GPG Key ID: 3E1F97CF4A7B6F42

View File

@ -1,4 +1,4 @@
import std/[json, strutils]
import std/[json, strutils, sets]
import chronos, chronicles, results, confutils, confutils/std/net, ffi
import
waku/factory/waku,
@ -28,6 +28,16 @@ registerReqFFI(CreateNodeRequest, ctx: ptr FFIContext[Waku]):
" configJson string: " & $configJson
)
# Collect known fields
var knownFields = initHashSet[string]()
for confField, _ in fieldPairs(conf):
knownFields.incl(confField)
# Check for unknown keys
for key in jsonNode.keys:
if key notin knownFields:
error "Invalid configuration option found.", option = key
return err("Invalid configuration option found: " & key)
for confField, confValue in fieldPairs(conf):
if jsonNode.contains(confField):
let formattedString = ($jsonNode[confField]).strip(chars = {'\"'})