vault-cli get doesn't return YAML formatted value when secret isn't a string.
When secret value isn't a string, output of vault get secret should be the same as output of vault get --yaml secret.
Reproducer1 (tested with Python 3.6.8)
$ cat test.json
{
"foo": "bar",
"train": [1,2,3,4],
"GNU": {
"Linux": {
"Debian": "Buster"
}
}
}
$ cat test.json | vault set --stdin secret
Done
$ vault get secret
{
"foo": "bar",
"train": [1,2,3,4],
"GNU": {
"Linux": {
"Debian": "Buster"
}
}
}
$ vault get --text secret
{
"foo": "bar",
"train": [1,2,3,4],
"GNU": {
"Linux": {
"Debian": "Buster"
}
}
}
$ vault get --yaml secret
--- "{\n \"foo\": \"bar\",\n \"train\": [1,2,3,4],\n \"GNU\": {\n \"Linux\"\
: {\n \"Debian\": \"Buster\"\n }\n }\n}"
Reproducer2 (tested with Python 3.6.8)
$ cat test.json
{
"value": {
"foo": "bar",
"train": [1,2,3,4],
"GNU": {
"Linux": {
"Debian": "Buster"
}
}
}
}
$ cat test.json | vault kv put secret/testproject/secret value=- # "official" vault binary used here
$ vault kv get -format=yaml secret/testproject/secret # official vault binary used here
data:
value: |
{
"value": {
"foo": "bar",
"train": [1,2,3,4],
"GNU": {
"Linux": {
"Debian": "Buster"
}
}
}
}
$ vault get secret # vault-cli binary used here
{
"value": {
"foo": "bar",
"train": [1,2,3,4],
"GNU": {
"Linux": {
"Debian": "Buster"
}
}
}
}
$ vault get --text secret # vault-cli binary used here
{
"value": {
"foo": "bar",
"train": [1,2,3,4],
"GNU": {
"Linux": {
"Debian": "Buster"
}
}
}
}
$ vault get --yaml secret # vault-cli binary used here
--- "{\n \"value\": {\n \"foo\": \"bar\",\n \"train\": [1,2,3,4],\n \"GNU\"\
: {\n \"Linux\": {\n \"Debian\": \"Buster\"\n }\n }\n }\n}\n"
It looks like force_yaml is always false (secret is always a string).
vault-cli getdoesn't return YAML formatted value when secret isn't a string.When secret value isn't a string, output of
vault get secretshould be the same as output ofvault get --yaml secret.Reproducer1 (tested with Python 3.6.8)
Reproducer2 (tested with Python 3.6.8)
It looks like force_yaml is always false (
secretis always a string).