I have four files:
input.json
{
".properties.on_demand_service_plans_collection": {
"type": "collection",
"value": [
{
"plan_name": "my-plan",
"plan_description": "my-plan",
"account_name": "vault-supplied-value"
"account_access_key": "vault-supplied-value"
},
{
"plan_name": "my-plan-test",
"plan_description": "my-plan-test",
"account_name": "vault-supplied-value",
"account_access_key": "vault-supplied-value"
}
],
"optional": false
}
}
vault.json
{
"appd": {
"account_key": "appd-key",
"account_name": "appd-user"
},
"aws": {
"access_key_id": "my-key-id",
"region": "us-east-1",
"secret_access_key": "my-secret-key"
}
}
keyfile.json
[
[[".properties.on_demand_service_plans_collection", "value[0]", "account_name"], ["appd", "account_name"]],
[[".properties.on_demand_service_plans_collection", "value[0]", "account_access_key"], ["appd", "account_key"]],
[[".properties.on_demand_service_plans_collection", "value[1]", "account_name"], ["appd", "account_name"]],
[[".properties.on_demand_service_plans_collection", "value[1]", "account_access_key"], ["appd", "account_key"]]
]
valut.jq
reduce $keyfile[] as $p (.; setpath(($p|.[0]); $vault|getpath($p|.[1])))
This is my jq command:
jq --argfile keyfile keyfile.json --argfile vault vault.json -f vault.jq input.json > desired.json
desired.json
{
".properties.on_demand_service_plans_collection": {
"type": "collection",
"value": [
{
"plan_name": "my-plan",
"plan_description": "my-plan",
"account_name": "appd-key",
"account_access_key": "appd-user"
},
{
"plan_name": "my-plan-test",
"plan_description": "my-plan-test",
"account_name": "appd-key",
"account_access_key": "appd-user",
"controller_host": "example.com"
}
],
"optional": false
}
}
I'm not coding the keyfile.json file correctly, because I am not getting the desired results. I've tried every iteration of the keyfile.json I can think of, but to no avail.
Does anyone have any ideas? Thanks in advance.
what-i-get.json
{
".properties.on_demand_service_plans_collection": {
"type": "collection",
"value": [
{
"plan_name": "my-plan",
"plan_description": "my-plan",
"account_name": "vault-supplied-value",
"account_access_key": "vault-supplied-value"
},
{
"plan_name": "my-plan-test",
"plan_description": "my-plan-test",
"account_name": "vault-supplied-value",
"account_access_key": "vault-supplied-value"
}
],
"optional": false,
"value[0]": {
"account_name": "appd-user",
"account_access_key": "appd-key"
},
"value[1]": {
"account_name": "appd-user",
"account_access_key": "appd-key"
}
}
}