@goldstack/infra-aws 0.3.25 → 0.3.29
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.
- package/dist/src/infraAws.d.ts +2 -1
- package/dist/src/infraAws.d.ts.map +1 -1
- package/dist/src/infraAws.js +29 -3
- package/dist/src/infraAws.js.map +1 -1
- package/dist/src/infraAws.spec.d.ts +2 -0
- package/dist/src/infraAws.spec.d.ts.map +1 -0
- package/dist/src/infraAws.spec.js +75 -0
- package/dist/src/infraAws.spec.js.map +1 -0
- package/dist/src/schemas/accountConfigSchema.json +8 -4
- package/package.json +8 -8
package/dist/src/infraAws.d.ts
CHANGED
|
@@ -7,11 +7,12 @@ export type { AWSDeployment, AWSDeploymentRegion, AWSUserName, } from './types/a
|
|
|
7
7
|
export declare const readDeploymentFromPackageConfig: (deploymentName: string, path?: string | undefined) => AWSDeployment;
|
|
8
8
|
export declare const assertTerraformConfig: (user: Name, path?: string | undefined) => AWSTerraformState;
|
|
9
9
|
export declare const writeTerraformConfig: (config: AWSTerraformState, path?: string | undefined) => void;
|
|
10
|
+
export declare const hasConfig: (path?: string | undefined) => boolean;
|
|
10
11
|
export declare const readConfig: (path?: string | undefined) => AWSConfiguration;
|
|
11
12
|
export declare const writeConfig: (config: AWSConfiguration, path?: string | undefined) => void;
|
|
12
13
|
export declare const createDefaultConfig: () => AWSConfiguration;
|
|
13
14
|
/**
|
|
14
15
|
* Obtains AWS user credentials from config file or environment variables.
|
|
15
16
|
**/
|
|
16
|
-
export declare const getAWSUser: (userName: string) => Promise<AWS.Credentials>;
|
|
17
|
+
export declare const getAWSUser: (userName: string, configPath?: string | undefined) => Promise<AWS.Credentials>;
|
|
17
18
|
//# sourceMappingURL=infraAws.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infraAws.d.ts","sourceRoot":"","sources":["../../src/infraAws.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,gCAAgC,EAChC,IAAI,EACL,MAAM,oBAAoB,CAAC;AAI5B,OAAO,GAAG,MAAM,SAAS,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC3E,YAAY,EACV,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,gBAAgB,IAAI,kBAAkB,EACtC,mBAAmB,IAAI,aAAa,EACpC,gCAAgC,EAChC,iBAAiB,EACjB,WAAW,GACZ,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,+BAA+B,mBAC1B,MAAM,gCAErB,aAcF,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAC1B,IAAI,gCAET,iBAuBF,CAAC;AAEF,eAAO,MAAM,oBAAoB,WACvB,iBAAiB,gCAExB,IAKF,CAAC;AAEF,eAAO,MAAM,UAAU,iCAAoB,gBAa1C,CAAC;AAEF,eAAO,MAAM,WAAW,WAAY,gBAAgB,gCAAkB,IAKrE,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,gBAItC,CAAC;AAEF;;IAEI;AACJ,eAAO,MAAM,UAAU,aACX,MAAM,
|
|
1
|
+
{"version":3,"file":"infraAws.d.ts","sourceRoot":"","sources":["../../src/infraAws.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,gCAAgC,EAChC,IAAI,EACL,MAAM,oBAAoB,CAAC;AAI5B,OAAO,GAAG,MAAM,SAAS,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC3E,YAAY,EACV,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,gBAAgB,IAAI,kBAAkB,EACtC,mBAAmB,IAAI,aAAa,EACpC,gCAAgC,EAChC,iBAAiB,EACjB,WAAW,GACZ,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,+BAA+B,mBAC1B,MAAM,gCAErB,aAcF,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAC1B,IAAI,gCAET,iBAuBF,CAAC;AAEF,eAAO,MAAM,oBAAoB,WACvB,iBAAiB,gCAExB,IAKF,CAAC;AAEF,eAAO,MAAM,SAAS,iCAAoB,OAOzC,CAAC;AAEF,eAAO,MAAM,UAAU,iCAAoB,gBAa1C,CAAC;AAEF,eAAO,MAAM,WAAW,WAAY,gBAAgB,gCAAkB,IAKrE,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,gBAItC,CAAC;AAEF;;IAEI;AACJ,eAAO,MAAM,UAAU,aACX,MAAM,sCAEf,QAAQ,IAAI,WAAW,CAuIzB,CAAC"}
|
package/dist/src/infraAws.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getAWSUser = exports.createDefaultConfig = exports.writeConfig = exports.readConfig = exports.writeTerraformConfig = exports.assertTerraformConfig = exports.readDeploymentFromPackageConfig = void 0;
|
|
6
|
+
exports.getAWSUser = exports.createDefaultConfig = exports.writeConfig = exports.readConfig = exports.hasConfig = exports.writeTerraformConfig = exports.assertTerraformConfig = exports.readDeploymentFromPackageConfig = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const assert_1 = __importDefault(require("assert"));
|
|
9
9
|
const utils_config_1 = require("@goldstack/utils-config");
|
|
@@ -55,6 +55,14 @@ const writeTerraformConfig = (config, path) => {
|
|
|
55
55
|
(0, utils_sh_1.write)(JSON.stringify(config, null, 2), path);
|
|
56
56
|
};
|
|
57
57
|
exports.writeTerraformConfig = writeTerraformConfig;
|
|
58
|
+
const hasConfig = (path) => {
|
|
59
|
+
if (!path) {
|
|
60
|
+
path = (0, utils_config_1.getAwsConfigPath)('./../../');
|
|
61
|
+
}
|
|
62
|
+
// otherwise check default config file location
|
|
63
|
+
return fs_1.default.existsSync(path);
|
|
64
|
+
};
|
|
65
|
+
exports.hasConfig = hasConfig;
|
|
58
66
|
const readConfig = (path) => {
|
|
59
67
|
if (!path) {
|
|
60
68
|
path = (0, utils_config_1.getAwsConfigPath)('./../../');
|
|
@@ -84,7 +92,7 @@ exports.createDefaultConfig = createDefaultConfig;
|
|
|
84
92
|
/**
|
|
85
93
|
* Obtains AWS user credentials from config file or environment variables.
|
|
86
94
|
**/
|
|
87
|
-
const getAWSUser = async (userName) => {
|
|
95
|
+
const getAWSUser = async (userName, configPath) => {
|
|
88
96
|
// check if running in ECS
|
|
89
97
|
if (process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI) {
|
|
90
98
|
const ecsCredentials = new aws_sdk_1.default.ECSCredentials({
|
|
@@ -111,7 +119,18 @@ const getAWSUser = async (userName) => {
|
|
|
111
119
|
aws_sdk_1.default.config.update({ region });
|
|
112
120
|
return credentials;
|
|
113
121
|
}
|
|
114
|
-
|
|
122
|
+
// try loading default user if no config file provided
|
|
123
|
+
if (!(0, exports.hasConfig)(configPath)) {
|
|
124
|
+
const credentials = new aws_sdk_1.default.SharedIniFileCredentials();
|
|
125
|
+
if (!credentials.accessKeyId) {
|
|
126
|
+
throw new Error('Cannot load user from AWS configuration. Please provide a Goldstack AWS Configuration in infra/aws/config.json or perform aws login for a default profile using the AWS CLI.');
|
|
127
|
+
}
|
|
128
|
+
aws_sdk_1.default.config.credentials = credentials;
|
|
129
|
+
// see https://github.com/aws/aws-sdk-js/pull/1391
|
|
130
|
+
process.env.AWS_SDK_LOAD_CONFIG = 'true';
|
|
131
|
+
return credentials;
|
|
132
|
+
}
|
|
133
|
+
const config = (0, exports.readConfig)(configPath);
|
|
115
134
|
const user = config.users.find((user) => user.name === userName);
|
|
116
135
|
if (!user) {
|
|
117
136
|
throw new Error(`User '${userName}' does not exist in AWS configuration.`);
|
|
@@ -156,6 +175,13 @@ const getAWSUser = async (userName) => {
|
|
|
156
175
|
const credentials = new aws_sdk_1.default.SharedIniFileCredentials({
|
|
157
176
|
profile: userConfig.profile,
|
|
158
177
|
});
|
|
178
|
+
if (!credentials.accessKeyId) {
|
|
179
|
+
throw new Error('Cannot load profile ' +
|
|
180
|
+
userConfig.profile +
|
|
181
|
+
' from AWS configuration for user ' +
|
|
182
|
+
user.name +
|
|
183
|
+
'. Please perform `aws login` for the profile using the AWS CLI.');
|
|
184
|
+
}
|
|
159
185
|
aws_sdk_1.default.config.credentials = credentials;
|
|
160
186
|
aws_sdk_1.default.config.update({ region: userConfig.awsDefaultRegion });
|
|
161
187
|
return credentials;
|
package/dist/src/infraAws.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infraAws.js","sourceRoot":"","sources":["../../src/infraAws.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"infraAws.js","sourceRoot":"","sources":["../../src/infraAws.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infraAws.spec.d.ts","sourceRoot":"","sources":["../../src/infraAws.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const infraAws_1 = require("./infraAws");
|
|
7
|
+
const utils_sh_1 = require("@goldstack/utils-sh");
|
|
8
|
+
const assert_1 = __importDefault(require("assert"));
|
|
9
|
+
describe('AWS User config', () => {
|
|
10
|
+
it('Should read AWS config from Goldstack config file', async () => {
|
|
11
|
+
const awsConfig = `{
|
|
12
|
+
"users": [
|
|
13
|
+
{
|
|
14
|
+
"name": "goldstack-dev",
|
|
15
|
+
"type": "apiKey",
|
|
16
|
+
"config": {
|
|
17
|
+
"awsAccessKeyId": "dummy",
|
|
18
|
+
"awsSecretAccessKey": "dummy",
|
|
19
|
+
"awsDefaultRegion": "us-west-2"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "goldstack-prod",
|
|
24
|
+
"type": "apiKey",
|
|
25
|
+
"config": {
|
|
26
|
+
"awsAccessKeyId": "dummy-prod",
|
|
27
|
+
"awsSecretAccessKey": "dummy-prod",
|
|
28
|
+
"awsDefaultRegion": "us-west-2"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}`;
|
|
33
|
+
const testDir = './goldstackLocal/tests/getAWSUser';
|
|
34
|
+
(0, utils_sh_1.mkdir)('-p', testDir);
|
|
35
|
+
(0, utils_sh_1.write)(awsConfig, testDir + '/config-embedded.json');
|
|
36
|
+
const credentialsDev = await (0, infraAws_1.getAWSUser)('goldstack-dev', testDir + '/config-embedded.json');
|
|
37
|
+
(0, assert_1.default)(credentialsDev.accessKeyId === 'dummy');
|
|
38
|
+
const credentialsProd = await (0, infraAws_1.getAWSUser)('goldstack-prod', testDir + '/config-embedded.json');
|
|
39
|
+
(0, assert_1.default)(credentialsProd.accessKeyId === 'dummy-prod');
|
|
40
|
+
});
|
|
41
|
+
// problems when initialising AWS config more than once, so leaving this as one test for now
|
|
42
|
+
// following difficult to test
|
|
43
|
+
it.skip('Should read from AWS config in user folder if no config provided', async () => {
|
|
44
|
+
const credentials = await (0, infraAws_1.getAWSUser)('default', './invalid');
|
|
45
|
+
(0, assert_1.default)(credentials.accessKeyId);
|
|
46
|
+
});
|
|
47
|
+
it.skip('Should read from AWS config in user folder if credentials config provided', async () => {
|
|
48
|
+
const testDir = './goldstackLocal/tests/getAWSUser';
|
|
49
|
+
const awsConfig = `{
|
|
50
|
+
"users": [
|
|
51
|
+
{
|
|
52
|
+
"name": "dev",
|
|
53
|
+
"type": "profile",
|
|
54
|
+
"config": {
|
|
55
|
+
"profile": "default",
|
|
56
|
+
"awsDefaultRegion": "us-west-2"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "prod",
|
|
61
|
+
"type": "profile",
|
|
62
|
+
"config": {
|
|
63
|
+
"profile": "prod",
|
|
64
|
+
"awsDefaultRegion": "us-west-2"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
}`;
|
|
69
|
+
(0, utils_sh_1.mkdir)('-p', testDir);
|
|
70
|
+
(0, utils_sh_1.write)(awsConfig, testDir + '/config.json');
|
|
71
|
+
const credentialsDefault = await (0, infraAws_1.getAWSUser)('dev', testDir + '/config.json');
|
|
72
|
+
(0, assert_1.default)(credentialsDefault.accessKeyId);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
//# sourceMappingURL=infraAws.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infraAws.spec.js","sourceRoot":"","sources":["../../src/infraAws.spec.ts"],"names":[],"mappings":";;;;;AAAA,yCAAwC;AACxC,kDAAmD;AACnD,oDAA4B;AAE5B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;EAqBpB,CAAC;QACC,MAAM,OAAO,GAAG,mCAAmC,CAAC;QACpD,IAAA,gBAAK,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAA,gBAAK,EAAC,SAAS,EAAE,OAAO,GAAG,uBAAuB,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,MAAM,IAAA,qBAAU,EACrC,eAAe,EACf,OAAO,GAAG,uBAAuB,CAClC,CAAC;QACF,IAAA,gBAAM,EAAC,cAAc,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,MAAM,IAAA,qBAAU,EACtC,gBAAgB,EAChB,OAAO,GAAG,uBAAuB,CAClC,CAAC;QACF,IAAA,gBAAM,EAAC,eAAe,CAAC,WAAW,KAAK,YAAY,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,4FAA4F;IAE5F,8BAA8B;IAC9B,EAAE,CAAC,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,WAAW,GAAG,MAAM,IAAA,qBAAU,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7D,IAAA,gBAAM,EAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,IAAI,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,OAAO,GAAG,mCAAmC,CAAC;QAEpD,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;EAmBpB,CAAC;QAEC,IAAA,gBAAK,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAA,gBAAK,EAAC,SAAS,EAAE,OAAO,GAAG,cAAc,CAAC,CAAC;QAC3C,MAAM,kBAAkB,GAAG,MAAM,IAAA,qBAAU,EACzC,KAAK,EACL,OAAO,GAAG,cAAc,CACzB,CAAC;QACF,IAAA,gBAAM,EAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -104,16 +104,20 @@
|
|
|
104
104
|
"title": "AWS Environment Variable User Configuration",
|
|
105
105
|
"type": "object"
|
|
106
106
|
},
|
|
107
|
-
"
|
|
107
|
+
"AWSProfileConfig": {
|
|
108
108
|
"additionalProperties": false,
|
|
109
109
|
"description": "User that is configured using the aws cli. Useful for development environments.",
|
|
110
110
|
"properties": {
|
|
111
|
+
"awsDefaultRegion": {
|
|
112
|
+
"$ref": "#/definitions/AWSRegion"
|
|
113
|
+
},
|
|
111
114
|
"profile": {
|
|
112
115
|
"$ref": "#/definitions/Profile"
|
|
113
116
|
}
|
|
114
117
|
},
|
|
115
118
|
"required": [
|
|
116
|
-
"profile"
|
|
119
|
+
"profile",
|
|
120
|
+
"awsDefaultRegion"
|
|
117
121
|
],
|
|
118
122
|
"title": "AWS Local User Configuration",
|
|
119
123
|
"type": "object"
|
|
@@ -167,7 +171,7 @@
|
|
|
167
171
|
"AwsUserConfig": {
|
|
168
172
|
"anyOf": [
|
|
169
173
|
{
|
|
170
|
-
"$ref": "#/definitions/
|
|
174
|
+
"$ref": "#/definitions/AWSProfileConfig"
|
|
171
175
|
},
|
|
172
176
|
{
|
|
173
177
|
"$ref": "#/definitions/AWSEnvironmentVariableUserConfig"
|
|
@@ -193,7 +197,7 @@
|
|
|
193
197
|
"description": "Type of this user.",
|
|
194
198
|
"enum": [
|
|
195
199
|
"apiKey",
|
|
196
|
-
"
|
|
200
|
+
"profile",
|
|
197
201
|
"environmentVariables"
|
|
198
202
|
],
|
|
199
203
|
"title": "Type",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goldstack/infra-aws",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.29",
|
|
4
4
|
"description": "Utilities to work with AWS infrastructrue via the cli.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"goldstack",
|
|
@@ -39,17 +39,17 @@
|
|
|
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.
|
|
47
|
-
"aws-sdk": "
|
|
42
|
+
"@goldstack/infra": "0.3.24",
|
|
43
|
+
"@goldstack/utils-config": "0.3.23",
|
|
44
|
+
"@goldstack/utils-log": "0.2.9",
|
|
45
|
+
"@goldstack/utils-package": "0.3.24",
|
|
46
|
+
"@goldstack/utils-sh": "0.4.22",
|
|
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.29",
|
|
53
53
|
"@types/jest": "^27.0.2",
|
|
54
54
|
"@types/node": "^16.11.0",
|
|
55
55
|
"jest": "^26.6.3",
|