Skip to content

Commit

Permalink
fix secrets stored in JSON format, revert #473 (#478)
Browse files Browse the repository at this point in the history
  • Loading branch information
fairclothjm committed Jul 13, 2023
1 parent 65d7a12 commit 0010502
Show file tree
Hide file tree
Showing 3 changed files with 2 additions and 19 deletions.
5 changes: 1 addition & 4 deletions integrationTests/e2e/e2e.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@ describe('e2e', () => {
expect(process.env.SUBSEQUENT_TEST_SECRET).toBe("SUBSEQUENT_TEST_SECRET");
expect(process.env.JSONSTRING).toBe('{"x":1,"y":"qux"}');
expect(process.env.JSONSTRINGMULTILINE).toBe('{"x": 1, "y": "q\\nux"}');

let result = JSON.stringify('{"x":1,"y":"qux"}');
result = result.substring(1, result.length - 1);
expect(process.env.JSONDATA).toBe(result);
expect(process.env.JSONDATA).toBe('{"x":1,"y":"qux"}');
});
});
5 changes: 1 addition & 4 deletions src/action.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -223,10 +223,7 @@ describe('exportSecrets', () => {
it('JSON data secret retrieval', async () => {
const jsonData = {"x":1,"y":2};

// for secrets stored in Vault as pure JSON, we call stringify twice
// and remove the surrounding quotes
let result = JSON.stringify(JSON.stringify(jsonData));
result = result.substring(1, result.length - 1);
let result = JSON.stringify(jsonData);

mockInput('test key');
mockVaultData({
Expand Down
11 changes: 0 additions & 11 deletions src/secrets.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,18 +82,7 @@ async function selectData(data, selector) {
}

if (result.startsWith(`"`)) {
// Support multi-line secrets like JSON strings and ssh keys, see https://github.com/hashicorp/vault-action/pull/173
// Deserialize the value so that newlines and special characters are
// not escaped in our return value.
result = JSON.parse(result);
} else {
// Support secrets stored in Vault as pure JSON, see https://github.com/hashicorp/vault-action/issues/194
// Serialize the value so that any special characters in the data are
// properly escaped.
result = JSON.stringify(result);
// strip the surrounding quotes added by stringify because the data did
// not have them in the first place
result = result.substring(1, result.length - 1);
}
return result;
}
Expand Down

0 comments on commit 0010502

Please sign in to comment.