aws-toolkit-azure-devops icon indicating copy to clipboard operation
aws-toolkit-azure-devops copied to clipboard

Secrets Manager get secret task output not a valid json

Open rahul-ve opened this issue 2 years ago • 2 comments

Describe the bug

Not sure if I am doing something wrong or a bug! I am using Secrets Manager Get secret task and saving the secret value to a variable. When I print the variable, I was expecting it to be valid JSON but it is not.

To reproduce

- task: SecretsManagerGetSecret@1
  inputs:
    awsCredentials: '${{ parameters.awsCredentials }}'
    regionName:     '${{ parameters.awsRegion }}'
    secretIdOrName: 'my-secret'
    variableName: 'build-var-my-secret'


# print out variable
- script: echo $(build-var-my-secret)
  displayName: 'Print out variable'


Expected behavior

was expecting valid JSON

{"foo":"bar"}

Instead got {foo:bar}

Screenshots

Your Environment

  • cloud version
  • Azure DevOps version: Not sure, it is cloud version, not self-hosted!
  • AWS Toolkit for Azure DevOps version: 1.13.0

Thanks!

rahul-ve avatar Feb 20 '23 05:02 rahul-ve

Same for me, it's problematic to parse it for example with jq program. And what if the value will contain comma, then it will be:

{pets:dog,cat,owner:tom}

instead:

{"pets":"dog,cat","owner":"tom"}

Curly bracket inside value will break everything as well.

tometchy avatar May 26 '23 22:05 tometchy

Hopefully this bug is fixed soon, as there is no way to get the exact value from a Secrets stored as a JSON, In my case I had to use awk and sed to extract the value, for OP's case would be like:

build-var-my-secret=$(echo $(build-var-my-secret) | awk -F ':' '{print $2}' | sed 's/}//')
echo $build-var-my-secret #will print bar

niCSan avatar Jan 11 '24 17:01 niCSan