Working with @ipaterson to get this into the master. The discussion is around making the value a true JSON string which would require brackets to complete. The colon check could be a problem if not base64 encoded. The code update hack would be again at 3282 as the following looking for the brackets as follows:
Line 3282:
headers: (auth ? ((auth.startsWith('{') && auth.endsWith('}')) ? ( new groovy.json.JsonSlurper().parseText( auth ) ) : [Authorization : auth]) : [:]),
Your piston input value will need to change to have escaped { } as shown here:
\{ "x-api-key" : "{apikey}", "authorization" : "{apikey}", "Public-Key-Pins": "max-age=2592000; pin-sha256=\\"E9CZ9INDbd+2eRQozYqqbQ2yXLVKB9+xcprMF+44U1g=\\";" \}
or simple x-api-key only would be:
\{ "x-api-key" : "{apikey}" \}
It would be great to get a second check on this and the okay your side.