Skip to content

Instantly share code, notes, and snippets.

@WhatsARanjit
Created April 26, 2019 13:02
Show Gist options
  • Save WhatsARanjit/1dfd6a9334abec3bcc72c66c62f71a9e to your computer and use it in GitHub Desktop.
Save WhatsARanjit/1dfd6a9334abec3bcc72c66c62f71a9e to your computer and use it in GitHub Desktop.
Recurse through all available secret paths
#!/bin/bash
vault_call() {
curl -sk \
--header "X-Vault-Token: $VAULT_TOKEN" \
--request $1 \
http://127.0.0.1:8200/v1/secret/$2
}
list=$(vault_call LIST metadata/$1 | jq -r '.data.keys[]')
SECRETS='[]'
for k in $list; do
secret=$(vault_call GET data/$k | jq -c --arg k $k '.data | { "name": $k, "data": .data, "metadata": .metadata }')
SECRETS=$(jq --argjson new $secret '. += [$new]' <<< $SECRETS)
done
echo $SECRETS
➜ ./recursive-get.sh | jq
[
{
"name": "test2",
"data": {
"g": "green"
},
"metadata": {
"created_time": "2019-04-26T11:52:35.205159625Z",
"deletion_time": "",
"destroyed": false,
"version": 1
}
},
{
"name": "test3",
"data": {
"b": "blue",
"i": "indigo",
"v": "violet"
},
"metadata": {
"created_time": "2019-04-26T11:52:35.23734795Z",
"deletion_time": "",
"destroyed": false,
"version": 1
}
},
{
"name": "test1",
"data": {
"o": "orange",
"r": "red",
"y": "yellow"
},
"metadata": {
"created_time": "2019-04-26T11:52:35.172288218Z",
"deletion_time": "",
"destroyed": false,
"version": 1
}
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment