benthosdev / benthos

Fancy stream processing made operationally mundane
https://www.benthos.dev
MIT License
7.68k stars 752 forks source link

parse_form_url_encoded returns unknown type when query contains diplicated fields #2514

Closed artemklevtsov closed 1 month ago

artemklevtsov commented 1 month ago

Hi,

To reproduce.

Bloblang query:

root.query = this.p.parse_form_url_encoded()
root.parsed = root.query.param.string().parse_json().index(0).catch(null) # workaround
root.param_type = root.query.param.type()
root.parsed_type = root.parsed.type()
❯ echo '{ "p": "param=value1&param=value2" }' | benthos blobl -f test.blobl  | jq
{
  "param_type": "unknown",
  "parsed": "value1",
  "parsed_type": "string",
  "query": {
    "param": [
      "value1",
      "value2"
    ]
  }
}

Actual param_type is unknown. Expected it array.

So I can't use any methods on the unknown type.

Regards.

mihaitodor commented 1 month ago

Hey @artemklevtsov, nice find! I raised #2515 to address this issue.