@goldstack/infra-aws 0.3.35 → 0.3.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"awsUserUtils.d.ts","sourceRoot":"","sources":["../../src/awsUserUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAKjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,GAAG,MAAM,SAAS,CAAC;AAE1B,wBAAsB,kCAAkC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAenF;AACD;;GAEG;AACH,wBAAsB,kCAAkC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAkBtF;AAED,wBAAsB,iCAAiC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"awsUserUtils.d.ts","sourceRoot":"","sources":["../../src/awsUserUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAKjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,GAAG,MAAM,SAAS,CAAC;AAE1B,wBAAsB,kCAAkC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAenF;AACD;;GAEG;AACH,wBAAsB,kCAAkC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAkBtF;AAED,wBAAsB,iCAAiC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAmBlF;AAED,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CA8H1B"}
|
package/dist/src/awsUserUtils.js
CHANGED
|
@@ -37,14 +37,18 @@ async function getAWSUserFromContainerEnvironment() {
|
|
|
37
37
|
exports.getAWSUserFromContainerEnvironment = getAWSUserFromContainerEnvironment;
|
|
38
38
|
async function getAWSUserFromDefaultLocalProfile() {
|
|
39
39
|
let credentials = new aws_sdk_1.default.SharedIniFileCredentials();
|
|
40
|
+
const envVarValues = {
|
|
41
|
+
AWS_SDK_LOAD_CONFIG: process.env.AWS_SDK_LOAD_CONFIG,
|
|
42
|
+
};
|
|
40
43
|
// if no access key is found, try loading process_credentials
|
|
41
44
|
if (!credentials.accessKeyId) {
|
|
45
|
+
// see https://github.com/aws/aws-sdk-js/pull/1391
|
|
46
|
+
process.env.AWS_SDK_LOAD_CONFIG = '1';
|
|
42
47
|
credentials = new aws_sdk_1.default.ProcessCredentials();
|
|
43
48
|
await credentials.refreshPromise();
|
|
44
49
|
}
|
|
50
|
+
resetEnvironmentVariables(envVarValues);
|
|
45
51
|
aws_sdk_1.default.config.credentials = credentials;
|
|
46
|
-
// see https://github.com/aws/aws-sdk-js/pull/1391
|
|
47
|
-
process.env.AWS_SDK_LOAD_CONFIG = 'true';
|
|
48
52
|
return credentials;
|
|
49
53
|
}
|
|
50
54
|
exports.getAWSUserFromDefaultLocalProfile = getAWSUserFromDefaultLocalProfile;
|
|
@@ -64,7 +68,7 @@ async function getAWSUserFromGoldstackConfig(config, userName) {
|
|
|
64
68
|
AWS_CONFIG_FILE: process.env.AWS_CONFIG_FILE,
|
|
65
69
|
};
|
|
66
70
|
if (userConfig.awsConfigFileName) {
|
|
67
|
-
// support loading from both `config` and `credentials` files, see https://github.com/goldstack/goldstack/issues/17#issuecomment-1044811805
|
|
71
|
+
// support loading from both `config` and `credentials` files, see https://github.com/goldstack/goldstack/issues/17#issuecomment-1044811805 https://github.com/aws/aws-sdk-js/pull/1391
|
|
68
72
|
process.env.AWS_SDK_LOAD_CONFIG = '1';
|
|
69
73
|
// filename property is ignored if AWS_SDK_LOAD_CONFIG is set; thus need to set AWS_SHARED_CREDENTIALS_FILE.
|
|
70
74
|
process.env.AWS_SHARED_CREDENTIALS_FILE =
|
|
@@ -72,11 +76,8 @@ async function getAWSUserFromGoldstackConfig(config, userName) {
|
|
|
72
76
|
process.env.AWS_CONFIG_FILE = userConfig.awsConfigFileName;
|
|
73
77
|
}
|
|
74
78
|
let credentials;
|
|
75
|
-
let filename;
|
|
76
|
-
if (
|
|
77
|
-
filename = undefined;
|
|
78
|
-
}
|
|
79
|
-
else if (!process.env.SHARE_CREDENTIALS_FILE) {
|
|
79
|
+
let filename = undefined;
|
|
80
|
+
if (!process.env.SHARE_CREDENTIALS_FILE) {
|
|
80
81
|
filename = userConfig.awsCredentialsFileName;
|
|
81
82
|
}
|
|
82
83
|
if (userConfig.credentialsSource !== 'process') {
|
|
@@ -86,20 +87,19 @@ async function getAWSUserFromGoldstackConfig(config, userName) {
|
|
|
86
87
|
});
|
|
87
88
|
}
|
|
88
89
|
else {
|
|
90
|
+
// Allow `AWS.ProcessCredentials` to search the default config location `~/.aws/config` in addition to `credentials`
|
|
91
|
+
// This matches most other CLI / SDK implementations (including AWS JS SDK v3) and the behaviour of most `credential_process` helper tools
|
|
92
|
+
// With this enabled, `AWS_CONFIG_FILE` must not contains an invalid path, but `AWS_SHARED_CREDENTIALS_FILE` can be missing.
|
|
93
|
+
if (!userConfig.awsCredentialsFileName) {
|
|
94
|
+
process.env.AWS_SDK_LOAD_CONFIG = '1';
|
|
95
|
+
}
|
|
89
96
|
credentials = new aws_sdk_1.default.ProcessCredentials({
|
|
90
97
|
profile: userConfig.profile,
|
|
91
98
|
filename: filename,
|
|
92
99
|
});
|
|
93
100
|
await credentials.refreshPromise();
|
|
94
101
|
}
|
|
95
|
-
|
|
96
|
-
if (process.env[key] === undefined) {
|
|
97
|
-
delete process.env[key];
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
process.env[key] = value;
|
|
101
|
-
}
|
|
102
|
-
});
|
|
102
|
+
resetEnvironmentVariables(envVarValues);
|
|
103
103
|
if (!credentials.accessKeyId) {
|
|
104
104
|
throw new Error('Cannot load profile ' +
|
|
105
105
|
userConfig.profile +
|
|
@@ -149,4 +149,14 @@ async function getAWSUserFromGoldstackConfig(config, userName) {
|
|
|
149
149
|
throw new Error(`Unknown user config type ${user.type}`);
|
|
150
150
|
}
|
|
151
151
|
exports.getAWSUserFromGoldstackConfig = getAWSUserFromGoldstackConfig;
|
|
152
|
+
function resetEnvironmentVariables(envVarValues) {
|
|
153
|
+
Object.entries(envVarValues).forEach(([key, value]) => {
|
|
154
|
+
if (process.env[key] === undefined) {
|
|
155
|
+
delete process.env[key];
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
process.env[key] = value;
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
152
162
|
//# sourceMappingURL=awsUserUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"awsUserUtils.js","sourceRoot":"","sources":["../../src/awsUserUtils.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAQ5B,sDAA0B;AAEnB,KAAK,UAAU,kCAAkC;IACtD,IAAA,gBAAM,EAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;IACxE,IAAA,gBAAM,EACJ,OAAO,CAAC,GAAG,CAAC,qBAAqB,EACjC,mCAAmC,CACpC,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACxE,IAAA,gBAAM,EAAC,MAAM,EAAE,wDAAwD,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,IAAI,iBAAG,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;IAC/B,iBAAG,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;IAErC,iBAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAE9B,OAAO,WAAW,CAAC;AACrB,CAAC;AAfD,gFAeC;AACD;;GAEG;AACI,KAAK,UAAU,kCAAkC;IACtD,MAAM,cAAc,GAAG,IAAI,iBAAG,CAAC,cAAc,CAAC;QAC5C,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC9B,UAAU,EAAE,EAAE,EAAE,iBAAiB;KAClC,CAAC,CAAC;IACH,MAAM,cAAc,CAAC,UAAU,EAAE,CAAC;IAElC,iBAAG,CAAC,MAAM,CAAC,WAAW,GAAG,cAAc,CAAC;IAExC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;KACH;IAED,iBAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAEtD,OAAO,cAAc,CAAC;AACxB,CAAC;AAlBD,gFAkBC;AAEM,KAAK,UAAU,iCAAiC;IACrD,IAAI,WAAW,GAAG,IAAI,iBAAG,CAAC,wBAAwB,EAAE,CAAC;IAErD,6DAA6D;IAC7D,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;QAC5B,WAAW,GAAG,IAAI,iBAAG,CAAC,kBAAkB,EAAE,CAAC;QAC3C,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC;KACpC;IAED,
|
|
1
|
+
{"version":3,"file":"awsUserUtils.js","sourceRoot":"","sources":["../../src/awsUserUtils.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAQ5B,sDAA0B;AAEnB,KAAK,UAAU,kCAAkC;IACtD,IAAA,gBAAM,EAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;IACxE,IAAA,gBAAM,EACJ,OAAO,CAAC,GAAG,CAAC,qBAAqB,EACjC,mCAAmC,CACpC,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACxE,IAAA,gBAAM,EAAC,MAAM,EAAE,wDAAwD,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,IAAI,iBAAG,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;IAC/B,iBAAG,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;IAErC,iBAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAE9B,OAAO,WAAW,CAAC;AACrB,CAAC;AAfD,gFAeC;AACD;;GAEG;AACI,KAAK,UAAU,kCAAkC;IACtD,MAAM,cAAc,GAAG,IAAI,iBAAG,CAAC,cAAc,CAAC;QAC5C,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC9B,UAAU,EAAE,EAAE,EAAE,iBAAiB;KAClC,CAAC,CAAC;IACH,MAAM,cAAc,CAAC,UAAU,EAAE,CAAC;IAElC,iBAAG,CAAC,MAAM,CAAC,WAAW,GAAG,cAAc,CAAC;IAExC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;KACH;IAED,iBAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAEtD,OAAO,cAAc,CAAC;AACxB,CAAC;AAlBD,gFAkBC;AAEM,KAAK,UAAU,iCAAiC;IACrD,IAAI,WAAW,GAAG,IAAI,iBAAG,CAAC,wBAAwB,EAAE,CAAC;IAErD,MAAM,YAAY,GAAG;QACnB,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;KACrD,CAAC;IAEF,6DAA6D;IAC7D,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;QAC5B,kDAAkD;QAClD,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,GAAG,CAAC;QACtC,WAAW,GAAG,IAAI,iBAAG,CAAC,kBAAkB,EAAE,CAAC;QAC3C,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC;KACpC;IAED,yBAAyB,CAAC,YAAY,CAAC,CAAC;IAExC,iBAAG,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;IACrC,OAAO,WAAW,CAAC;AACrB,CAAC;AAnBD,8EAmBC;AAEM,KAAK,UAAU,6BAA6B,CACjD,MAAwB,EACxB,QAAgB;IAEhB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,wCAAwC,CAAC,CAAC;KAC5E;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,MAA0B,CAAC;QAEnD,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE;YAC3C,OAAO,CAAC,IAAI,CACV,4DAA4D,OAAO,CAAC,GAAG,CAAC,2BAA2B,6DAA6D,CACjK,CAAC;SACH;QAED,MAAM,YAAY,GAAG;YACnB,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;YACpD,2BAA2B,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B;YACpE,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;SAC7C,CAAC;QAEF,IAAI,UAAU,CAAC,iBAAiB,EAAE;YAChC,wLAAwL;YACxL,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,GAAG,CAAC;YACtC,4GAA4G;YAC5G,OAAO,CAAC,GAAG,CAAC,2BAA2B;gBACrC,UAAU,CAAC,sBAAsB,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,UAAU,CAAC,iBAAiB,CAAC;SAC5D;QAED,IAAI,WAA4B,CAAC;QACjC,IAAI,QAAQ,GAAuB,SAAS,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE;YACvC,QAAQ,GAAG,UAAU,CAAC,sBAAsB,CAAC;SAC9C;QAED,IAAI,UAAU,CAAC,iBAAiB,KAAK,SAAS,EAAE;YAC9C,WAAW,GAAG,IAAI,iBAAG,CAAC,wBAAwB,CAAC;gBAC7C,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;SACJ;aAAM;YACL,oHAAoH;YACpH,0IAA0I;YAC1I,4HAA4H;YAE5H,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE;gBACtC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,GAAG,CAAC;aACvC;YAED,WAAW,GAAG,IAAI,iBAAG,CAAC,kBAAkB,CAAC;gBACvC,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAC;YACH,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC;SACpC;QAED,yBAAyB,CAAC,YAAY,CAAC,CAAC;QAExC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YAC5B,MAAM,IAAI,KAAK,CACb,sBAAsB;gBACpB,UAAU,CAAC,OAAO;gBAClB,mCAAmC;gBACnC,IAAI,CAAC,IAAI;gBACT,iEAAiE,CACpE,CAAC;SACH;QACD,iBAAG,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;QACrC,iBAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC3D,OAAO,WAAW,CAAC;KACpB;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAA6B,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;YACxD,MAAM,IAAI,KAAK,CACb,+CAA+C,QAAQ,yCAAyC,CACjG,CAAC;SACH;QACD,MAAM,WAAW,GAAG,IAAI,iBAAG,CAAC,WAAW,CAAC;YACtC,WAAW,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE;YACxC,eAAe,EAAE,MAAM,CAAC,kBAAkB,IAAI,EAAE;SACjD,CAAC,CAAC;QACH,iBAAG,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;QACrC,iBAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACvD,OAAO,WAAW,CAAC;KACpB;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB,EAAE;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,MAA0C,CAAC;QAEnE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,EAAE;YACnB,MAAM,IAAI,KAAK,CACb,gDAAgD,UAAU,CAAC,0BAA0B,EAAE,CACxF,CAAC;SACH;QAED,MAAM,kBAAkB,GACtB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;QACzD,IAAI,CAAC,kBAAkB,EAAE;YACvB,MAAM,IAAI,KAAK,CACb,gDAAgD,UAAU,CAAC,8BAA8B,EAAE,CAC5F,CAAC;SACH;QAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAClC,UAAU,CAAC,4BAA4B,CAC3B,CAAC;QACf,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,IAAI,KAAK,CACb,gDAAgD,UAAU,CAAC,4BAA4B,EAAE,CAC1F,CAAC;SACH;QAED,MAAM,WAAW,GAAG,IAAI,iBAAG,CAAC,WAAW,CAAC;YACtC,WAAW,EAAE,cAAc;YAC3B,eAAe,EAAE,kBAAkB;SACpC,CAAC,CAAC;QACH,iBAAG,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;QACrC,iBAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAChD,OAAO,WAAW,CAAC;KACpB;IAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC;AAjID,sEAiIC;AACD,SAAS,yBAAyB,CAAC,YAElC;IACC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpD,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YAClC,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACzB;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SAC1B;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -7,8 +7,53 @@ const infraAws_1 = require("./infraAws");
|
|
|
7
7
|
const utils_sh_1 = require("@goldstack/utils-sh");
|
|
8
8
|
const assert_1 = __importDefault(require("assert"));
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const os_1 = __importDefault(require("os"));
|
|
10
11
|
describe('AWS User config', () => {
|
|
11
|
-
it
|
|
12
|
+
it('Should read from AWS credentials in user folder if no config provided', async () => {
|
|
13
|
+
// Skip if not in CI https://docs.github.com/en/actions/learn-github-actions/environment-variables#default-environment-variables
|
|
14
|
+
if (!process.env.GITHUB_ACTION) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
console.log('RUN IN CI');
|
|
18
|
+
const awsCredentials = `
|
|
19
|
+
[default]
|
|
20
|
+
aws_access_key_id=fromProfileKey
|
|
21
|
+
aws_secret_access_key=fromProfileSecret
|
|
22
|
+
`;
|
|
23
|
+
(0, utils_sh_1.mkdir)('-p', `${os_1.default.homedir()}/.aws`);
|
|
24
|
+
await (0, utils_sh_1.rmSafe)(`${os_1.default.homedir}/.aws/config`);
|
|
25
|
+
(0, utils_sh_1.write)(awsCredentials, `${os_1.default.homedir}/.aws/credentials`);
|
|
26
|
+
const credentials = await (0, infraAws_1.getAWSUser)('default', './invalid');
|
|
27
|
+
expect(credentials.accessKeyId).toEqual('fromProfileKey');
|
|
28
|
+
expect(credentials.secretAccessKey).toEqual('fromProfileSecret');
|
|
29
|
+
});
|
|
30
|
+
it('Should read AWS credentials process in user folder if no config provided', async () => {
|
|
31
|
+
// Skip if not in CI https://docs.github.com/en/actions/learn-github-actions/environment-variables#default-environment-variables
|
|
32
|
+
if (!process.env.GITHUB_ACTION) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const awsConfig = `
|
|
36
|
+
[default]
|
|
37
|
+
region=us-west-2
|
|
38
|
+
credential_process=cat ~/processCredentials.json
|
|
39
|
+
`;
|
|
40
|
+
(0, utils_sh_1.mkdir)('-p', `${os_1.default.homedir()}/.aws`);
|
|
41
|
+
await (0, utils_sh_1.rmSafe)(`${os_1.default.homedir}/.aws/credentials`);
|
|
42
|
+
(0, utils_sh_1.write)(awsConfig, `${os_1.default.homedir}/.aws/config`);
|
|
43
|
+
const processCredentials = `
|
|
44
|
+
{
|
|
45
|
+
"Version": 1,
|
|
46
|
+
"AccessKeyId": "fromProcessCredentialsKey",
|
|
47
|
+
"SecretAccessKey": "fromProcessCredentialsSecret",
|
|
48
|
+
"SessionToken": "the AWS session token for temporary credentials",
|
|
49
|
+
"Expiration": "ISO8601 timestamp when the credentials expire"
|
|
50
|
+
}`;
|
|
51
|
+
(0, utils_sh_1.write)(processCredentials, `${os_1.default.homedir}/processCredentials.json`);
|
|
52
|
+
const credentials = await (0, infraAws_1.getAWSUser)('default', './invalid');
|
|
53
|
+
expect(credentials.accessKeyId).toEqual('fromProcessCredentialsKey');
|
|
54
|
+
expect(credentials.secretAccessKey).toEqual('fromProcessCredentialsSecret');
|
|
55
|
+
});
|
|
56
|
+
it('Should read AWS config from Goldstack config file', async () => {
|
|
12
57
|
const awsConfig = `{
|
|
13
58
|
"users": [
|
|
14
59
|
{
|
|
@@ -39,12 +84,6 @@ describe('AWS User config', () => {
|
|
|
39
84
|
const credentialsProd = await (0, infraAws_1.getAWSUser)('goldstack-prod', testDir + '/config-embedded.json');
|
|
40
85
|
(0, assert_1.default)(credentialsProd.accessKeyId === 'dummy-prod');
|
|
41
86
|
});
|
|
42
|
-
// problems when initialising AWS config more than once, so leaving this as one test for now
|
|
43
|
-
// following difficult to test
|
|
44
|
-
it.skip('Should read from AWS config in user folder if no config provided', async () => {
|
|
45
|
-
const credentials = await (0, infraAws_1.getAWSUser)('default', './invalid');
|
|
46
|
-
(0, assert_1.default)(credentials.accessKeyId);
|
|
47
|
-
});
|
|
48
87
|
it('Should read from AWS credentials file', async () => {
|
|
49
88
|
const testDir = './goldstackLocal/tests/getAWSUser';
|
|
50
89
|
const awsConfig = `{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infraAws.spec.js","sourceRoot":"","sources":["../../src/infraAws.spec.ts"],"names":[],"mappings":";;;;;AAAA,yCAAwC;AACxC,
|
|
1
|
+
{"version":3,"file":"infraAws.spec.js","sourceRoot":"","sources":["../../src/infraAws.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goldstack/infra-aws",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.38",
|
|
4
4
|
"description": "Utilities to work with AWS infrastructure via the cli.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"goldstack",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"scripts": {
|
|
27
27
|
"build": "yarn clean && yarn compile",
|
|
28
28
|
"build:watch": "yarn clean && yarn compile-watch",
|
|
29
|
-
"clean": "
|
|
29
|
+
"clean": "rimraf ./dist",
|
|
30
30
|
"compile": "tsc -p tsconfig.json",
|
|
31
31
|
"compile-watch": "tsc -p tsconfig.json --watch",
|
|
32
32
|
"compile-watch:light": "nodemon --watch ./src/ -e '*' --exec 'yarn compile'",
|
|
@@ -39,21 +39,22 @@
|
|
|
39
39
|
"version:apply:force": "yarn version $@ && yarn version apply"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@goldstack/infra": "0.3.
|
|
43
|
-
"@goldstack/utils-config": "0.3.
|
|
44
|
-
"@goldstack/utils-log": "0.2.
|
|
45
|
-
"@goldstack/utils-package": "0.3.
|
|
46
|
-
"@goldstack/utils-sh": "0.4.
|
|
42
|
+
"@goldstack/infra": "0.3.30",
|
|
43
|
+
"@goldstack/utils-config": "0.3.27",
|
|
44
|
+
"@goldstack/utils-log": "0.2.11",
|
|
45
|
+
"@goldstack/utils-package": "0.3.32",
|
|
46
|
+
"@goldstack/utils-sh": "0.4.26",
|
|
47
47
|
"aws-sdk": "2.1001.0",
|
|
48
48
|
"axios": "^0.21.1",
|
|
49
49
|
"handlebars": "^4.7.6"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@goldstack/utils-git": "0.1.
|
|
52
|
+
"@goldstack/utils-git": "0.1.31",
|
|
53
53
|
"@types/jest": "^27.0.2",
|
|
54
54
|
"@types/node": "^16.11.0",
|
|
55
55
|
"jest": "^26.6.3",
|
|
56
56
|
"renamer": "^0.7.0",
|
|
57
|
+
"rimraf": "^3.0.2",
|
|
57
58
|
"ts-jest": "^26.5.4",
|
|
58
59
|
"ts-json-schema-generator": "^0.96.0",
|
|
59
60
|
"typescript": "^4.4.3"
|