Adding field creates an array not a static string

Are you expecting that each configuration file will automatically get run in a separate pipeline? That does not happen unless you configure it that way using pipelines.yml. If you point path.config (or -f) at a directory that contains more than one configuration file then they are combined. So if you have two files

input { http { ... } }
filter { mutate { ... } }
output { stdout {... } }

and

input { file { ... } }
filter { csv { ... } }
output { elasticsearch {... } }

that is equivalent to

input {
    http { ... }
    file { ... }
}
filter {
    mutate { ... }
    csv { ... }
}
output {
    stdout {... }
    elasticsearch {... }
}