@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.
@@ -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,KACf,QAAQ,IAAI,WAAW,CA8GzB,CAAC"}
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"}
@@ -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
- const config = (0, exports.readConfig)();
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;
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=infraAws.spec.d.ts.map
@@ -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
- "AWSLocalUserConfig": {
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/AWSLocalUserConfig"
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
- "local",
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.25",
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.21",
43
- "@goldstack/utils-config": "0.3.20",
44
- "@goldstack/utils-log": "0.2.8",
45
- "@goldstack/utils-package": "0.3.21",
46
- "@goldstack/utils-sh": "0.4.19",
47
- "aws-sdk": "^2.995.0",
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.28",
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",