@goldstack/infra-aws 0.3.31 → 0.3.35

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.
@@ -0,0 +1,10 @@
1
+ import { AWSConfiguration } from './types/awsAccount';
2
+ import AWS from 'aws-sdk';
3
+ export declare function getAWSUserFromEnvironmentVariables(): Promise<AWS.Credentials>;
4
+ /**
5
+ * Obtains AWS user credentials from container environment variables for ECS containers.
6
+ */
7
+ export declare function getAWSUserFromContainerEnvironment(): Promise<AWS.ECSCredentials>;
8
+ export declare function getAWSUserFromDefaultLocalProfile(): Promise<AWS.Credentials>;
9
+ export declare function getAWSUserFromGoldstackConfig(config: AWSConfiguration, userName: string): Promise<AWS.Credentials>;
10
+ //# sourceMappingURL=awsUserUtils.d.ts.map
@@ -0,0 +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,CAalF;AAED,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CA6H1B"}
@@ -0,0 +1,152 @@
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
+ exports.getAWSUserFromGoldstackConfig = exports.getAWSUserFromDefaultLocalProfile = exports.getAWSUserFromContainerEnvironment = exports.getAWSUserFromEnvironmentVariables = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ const aws_sdk_1 = __importDefault(require("aws-sdk"));
9
+ async function getAWSUserFromEnvironmentVariables() {
10
+ (0, assert_1.default)(process.env.AWS_ACCESS_KEY_ID, 'AWS_ACCESS_KEY_ID not defined.');
11
+ (0, assert_1.default)(process.env.AWS_SECRET_ACCESS_KEY, 'AWS_SECRET_ACCESS_KEY not defined');
12
+ const region = process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION;
13
+ (0, assert_1.default)(region, 'Neither AWS_REGION nor AWS_DEFAULT_REGION are defined.');
14
+ const credentials = new aws_sdk_1.default.EnvironmentCredentials('AWS');
15
+ await credentials.getPromise();
16
+ aws_sdk_1.default.config.credentials = credentials;
17
+ aws_sdk_1.default.config.update({ region });
18
+ return credentials;
19
+ }
20
+ exports.getAWSUserFromEnvironmentVariables = getAWSUserFromEnvironmentVariables;
21
+ /**
22
+ * Obtains AWS user credentials from container environment variables for ECS containers.
23
+ */
24
+ async function getAWSUserFromContainerEnvironment() {
25
+ const ecsCredentials = new aws_sdk_1.default.ECSCredentials({
26
+ httpOptions: { timeout: 5000 },
27
+ maxRetries: 10, // retry 10 times
28
+ });
29
+ await ecsCredentials.getPromise();
30
+ aws_sdk_1.default.config.credentials = ecsCredentials;
31
+ if (!process.env.AWS_REGION) {
32
+ throw new Error('AWS region environment variable ("AWS_REGION") not defined for ECS task.');
33
+ }
34
+ aws_sdk_1.default.config.update({ region: process.env.AWS_REGION });
35
+ return ecsCredentials;
36
+ }
37
+ exports.getAWSUserFromContainerEnvironment = getAWSUserFromContainerEnvironment;
38
+ async function getAWSUserFromDefaultLocalProfile() {
39
+ let credentials = new aws_sdk_1.default.SharedIniFileCredentials();
40
+ // if no access key is found, try loading process_credentials
41
+ if (!credentials.accessKeyId) {
42
+ credentials = new aws_sdk_1.default.ProcessCredentials();
43
+ await credentials.refreshPromise();
44
+ }
45
+ 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
+ return credentials;
49
+ }
50
+ exports.getAWSUserFromDefaultLocalProfile = getAWSUserFromDefaultLocalProfile;
51
+ async function getAWSUserFromGoldstackConfig(config, userName) {
52
+ const user = config.users.find((user) => user.name === userName);
53
+ if (!user) {
54
+ throw new Error(`User '${userName}' does not exist in AWS configuration.`);
55
+ }
56
+ if (user.type === 'profile') {
57
+ const userConfig = user.config;
58
+ if (process.env.AWS_SHARED_CREDENTIALS_FILE) {
59
+ console.warn(`Using AWS_SHARED_CREDENTIALS_FILE environment variable: '${process.env.AWS_SHARED_CREDENTIALS_FILE}'. awsCredentialsFileName in configuration will be ignored.`);
60
+ }
61
+ const envVarValues = {
62
+ AWS_SDK_LOAD_CONFIG: process.env.AWS_SDK_LOAD_CONFIG,
63
+ AWS_SHARED_CREDENTIALS_FILE: process.env.AWS_SHARED_CREDENTIALS_FILE,
64
+ AWS_CONFIG_FILE: process.env.AWS_CONFIG_FILE,
65
+ };
66
+ if (userConfig.awsConfigFileName) {
67
+ // support loading from both `config` and `credentials` files, see https://github.com/goldstack/goldstack/issues/17#issuecomment-1044811805
68
+ process.env.AWS_SDK_LOAD_CONFIG = '1';
69
+ // filename property is ignored if AWS_SDK_LOAD_CONFIG is set; thus need to set AWS_SHARED_CREDENTIALS_FILE.
70
+ process.env.AWS_SHARED_CREDENTIALS_FILE =
71
+ userConfig.awsCredentialsFileName;
72
+ process.env.AWS_CONFIG_FILE = userConfig.awsConfigFileName;
73
+ }
74
+ let credentials;
75
+ let filename;
76
+ if (userConfig.awsConfigFileName) {
77
+ filename = undefined;
78
+ }
79
+ else if (!process.env.SHARE_CREDENTIALS_FILE) {
80
+ filename = userConfig.awsCredentialsFileName;
81
+ }
82
+ if (userConfig.credentialsSource !== 'process') {
83
+ credentials = new aws_sdk_1.default.SharedIniFileCredentials({
84
+ profile: userConfig.profile,
85
+ filename: filename,
86
+ });
87
+ }
88
+ else {
89
+ credentials = new aws_sdk_1.default.ProcessCredentials({
90
+ profile: userConfig.profile,
91
+ filename: filename,
92
+ });
93
+ await credentials.refreshPromise();
94
+ }
95
+ Object.entries(envVarValues).forEach(([key, value]) => {
96
+ if (process.env[key] === undefined) {
97
+ delete process.env[key];
98
+ }
99
+ else {
100
+ process.env[key] = value;
101
+ }
102
+ });
103
+ if (!credentials.accessKeyId) {
104
+ throw new Error('Cannot load profile ' +
105
+ userConfig.profile +
106
+ ' from AWS configuration for user ' +
107
+ user.name +
108
+ '. Please perform `aws login` for the profile using the AWS CLI.');
109
+ }
110
+ aws_sdk_1.default.config.credentials = credentials;
111
+ aws_sdk_1.default.config.update({ region: userConfig.awsDefaultRegion });
112
+ return credentials;
113
+ }
114
+ if (user.type === 'apiKey') {
115
+ const config = user.config;
116
+ if (!config.awsAccessKeyId || !config.awsSecretAccessKey) {
117
+ throw new Error(`AWS Access credentials not defined for user ${userName}. Define them in infra/aws/config.json.`);
118
+ }
119
+ const credentials = new aws_sdk_1.default.Credentials({
120
+ accessKeyId: config.awsAccessKeyId || '',
121
+ secretAccessKey: config.awsSecretAccessKey || '',
122
+ });
123
+ aws_sdk_1.default.config.credentials = credentials;
124
+ aws_sdk_1.default.config.update({ region: config.awsDefaultRegion });
125
+ return credentials;
126
+ }
127
+ if (user.type === 'environmentVariables') {
128
+ const userConfig = user.config;
129
+ const awsAccessKeyId = process.env[userConfig.awsAccessKeyIdVariableName];
130
+ if (!awsAccessKeyId) {
131
+ throw new Error(`Environment variable expected but not found: ${userConfig.awsAccessKeyIdVariableName}`);
132
+ }
133
+ const awsSecretAccessKey = process.env[userConfig.awsSecretAccessKeyVariableName];
134
+ if (!awsSecretAccessKey) {
135
+ throw new Error(`Environment variable expected but not found: ${userConfig.awsSecretAccessKeyVariableName}`);
136
+ }
137
+ const awsDefaultRegion = process.env[userConfig.awsDefaultRegionVariableName];
138
+ if (!awsDefaultRegion) {
139
+ throw new Error(`Environment variable expected but not found: ${userConfig.awsDefaultRegionVariableName}`);
140
+ }
141
+ const credentials = new aws_sdk_1.default.Credentials({
142
+ accessKeyId: awsAccessKeyId,
143
+ secretAccessKey: awsSecretAccessKey,
144
+ });
145
+ aws_sdk_1.default.config.credentials = credentials;
146
+ aws_sdk_1.default.config.update({ region: awsDefaultRegion });
147
+ return credentials;
148
+ }
149
+ throw new Error(`Unknown user config type ${user.type}`);
150
+ }
151
+ exports.getAWSUserFromGoldstackConfig = getAWSUserFromGoldstackConfig;
152
+ //# sourceMappingURL=awsUserUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"awsUserUtils.js","sourceRoot":"","sources":["../../src/awsUserUtils.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { AWSConfiguration, AWSUser, AWSRegion, AWSProfileConfig, AWSAPIKeyUserConfig, AWSAccessKeyId, AWSSecretAccessKey, AWSEnvironmentVariableUserConfig, Name } from './types/awsAccount';
1
+ import { AWSConfiguration, AWSUser, AWSProfileConfig, AWSAPIKeyUserConfig, AWSAccessKeyId, AWSSecretAccessKey, Name } from './types/awsAccount';
2
2
  import AWS from 'aws-sdk';
3
3
  import { AWSTerraformState, RemoteState } from './types/awsTerraformState';
4
+ import { AWSRegion, AWSEnvironmentVariableUserConfig } from './types/awsAccount';
4
5
  export type { AWSConfiguration, AWSUser, AWSRegion, AWSAccessKeyId, AWSSecretAccessKey, AWSProfileConfig as AWSLocalUserConfig, AWSAPIKeyUserConfig as AWSAPIKeyUser, AWSEnvironmentVariableUserConfig, AWSTerraformState, RemoteState, };
5
6
  import { AWSDeployment } from './types/awsDeployment';
6
7
  export type { AWSDeployment, AWSDeploymentRegion, AWSUserName, } from './types/awsDeployment';
@@ -13,6 +14,6 @@ export declare const writeConfig: (config: AWSConfiguration, path?: string | und
13
14
  export declare const createDefaultConfig: () => AWSConfiguration;
14
15
  /**
15
16
  * Obtains AWS user credentials from config file or environment variables.
16
- **/
17
+ */
17
18
  export declare const getAWSUser: (userName: string, configPath?: string | undefined) => Promise<AWS.Credentials>;
18
19
  //# 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,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"}
1
+ {"version":3,"file":"infraAws.d.ts","sourceRoot":"","sources":["../../src/infraAws.ts"],"names":[],"mappings":"AASA,OAAO,EACL,gBAAgB,EAChB,OAAO,EACP,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,IAAI,EACL,MAAM,oBAAoB,CAAC;AAI5B,OAAO,GAAG,MAAM,SAAS,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EACL,SAAS,EACT,gCAAgC,EACjC,MAAM,oBAAoB,CAAC;AAE5B,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;AAQtD,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;;GAEG;AACH,eAAO,MAAM,UAAU,aACX,MAAM,sCAEf,QAAQ,IAAI,WAAW,CAmBzB,CAAC"}
@@ -5,14 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
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
- const assert_1 = __importDefault(require("assert"));
9
8
  const utils_config_1 = require("@goldstack/utils-config");
10
9
  const utils_package_1 = require("@goldstack/utils-package");
11
10
  const utils_sh_1 = require("@goldstack/utils-sh");
12
11
  const accountConfigSchema_json_1 = __importDefault(require("./schemas/accountConfigSchema.json"));
13
12
  const deploymentConfigSchema_json_1 = __importDefault(require("./schemas/deploymentConfigSchema.json"));
14
13
  const awsTerraformStateSchema_json_1 = __importDefault(require("./schemas/awsTerraformStateSchema.json"));
15
- const aws_sdk_1 = __importDefault(require("aws-sdk"));
14
+ const awsUserUtils_1 = require("./awsUserUtils");
16
15
  const readDeploymentFromPackageConfig = (deploymentName, path) => {
17
16
  const packageConfig = (0, utils_package_1.readPackageConfig)(path);
18
17
  const deployment = packageConfig.deployments.find((d) => d.name === deploymentName);
@@ -91,102 +90,23 @@ const createDefaultConfig = () => {
91
90
  exports.createDefaultConfig = createDefaultConfig;
92
91
  /**
93
92
  * Obtains AWS user credentials from config file or environment variables.
94
- **/
93
+ */
95
94
  const getAWSUser = async (userName, configPath) => {
96
- // check if running in ECS
95
+ // Load from ECS environment if running in ECS
97
96
  if (process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI) {
98
- const ecsCredentials = new aws_sdk_1.default.ECSCredentials({
99
- httpOptions: { timeout: 5000 },
100
- maxRetries: 10, // retry 10 times
101
- });
102
- await ecsCredentials.getPromise();
103
- aws_sdk_1.default.config.credentials = ecsCredentials;
104
- if (!process.env.AWS_REGION) {
105
- throw new Error('AWS region environment variable ("AWS_REGION") not defined for ECS task.');
106
- }
107
- aws_sdk_1.default.config.update({ region: process.env.AWS_REGION });
108
- return ecsCredentials;
97
+ return await (0, awsUserUtils_1.getAWSUserFromContainerEnvironment)();
109
98
  }
110
- // always prefer gettting credentials from environment variables
99
+ // Load credentials from environment variables if available
111
100
  if (process.env.AWS_ACCESS_KEY_ID) {
112
- (0, assert_1.default)(process.env.AWS_ACCESS_KEY_ID, 'AWS_ACCESS_KEY_ID not defined.');
113
- (0, assert_1.default)(process.env.AWS_SECRET_ACCESS_KEY, 'AWS_SECRET_ACCESS_KEY not defined');
114
- const region = process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION;
115
- (0, assert_1.default)(region, 'Neither AWS_REGION nor AWS_DEFAULT_REGION are defined.');
116
- const credentials = new aws_sdk_1.default.EnvironmentCredentials('AWS');
117
- await credentials.getPromise();
118
- aws_sdk_1.default.config.credentials = credentials;
119
- aws_sdk_1.default.config.update({ region });
120
- return credentials;
101
+ return await (0, awsUserUtils_1.getAWSUserFromEnvironmentVariables)();
121
102
  }
122
- // try loading default user if no config file provided
103
+ // Try loading default local user if no config file provided
123
104
  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;
105
+ return await (0, awsUserUtils_1.getAWSUserFromDefaultLocalProfile)();
132
106
  }
107
+ // Load users as configured in Goldstack configuration
133
108
  const config = (0, exports.readConfig)(configPath);
134
- const user = config.users.find((user) => user.name === userName);
135
- if (!user) {
136
- throw new Error(`User '${userName}' does not exist in AWS configuration.`);
137
- }
138
- if (user.type === 'apiKey') {
139
- const config = user.config;
140
- if (!config.awsAccessKeyId || !config.awsSecretAccessKey) {
141
- throw new Error(`AWS Access credentials not defined for user ${userName}. Define them in infra/aws/config.json.`);
142
- }
143
- const credentials = new aws_sdk_1.default.Credentials({
144
- accessKeyId: config.awsAccessKeyId || '',
145
- secretAccessKey: config.awsSecretAccessKey || '',
146
- });
147
- aws_sdk_1.default.config.credentials = credentials;
148
- aws_sdk_1.default.config.update({ region: config.awsDefaultRegion });
149
- return credentials;
150
- }
151
- if (user.type === 'environmentVariables') {
152
- const userConfig = user.config;
153
- const awsAccessKeyId = process.env[userConfig.awsAccessKeyIdVariableName];
154
- if (!awsAccessKeyId) {
155
- throw new Error(`Environment variable expected but not found: ${userConfig.awsAccessKeyIdVariableName}`);
156
- }
157
- const awsSecretAccessKey = process.env[userConfig.awsSecretAccessKeyVariableName];
158
- if (!awsSecretAccessKey) {
159
- throw new Error(`Environment variable expected but not found: ${userConfig.awsSecretAccessKeyVariableName}`);
160
- }
161
- const awsDefaultRegion = process.env[userConfig.awsDefaultRegionVariableName];
162
- if (!awsDefaultRegion) {
163
- throw new Error(`Environment variable expected but not found: ${userConfig.awsDefaultRegionVariableName}`);
164
- }
165
- const credentials = new aws_sdk_1.default.Credentials({
166
- accessKeyId: awsAccessKeyId,
167
- secretAccessKey: awsSecretAccessKey,
168
- });
169
- aws_sdk_1.default.config.credentials = credentials;
170
- aws_sdk_1.default.config.update({ region: awsDefaultRegion });
171
- return credentials;
172
- }
173
- if (user.type === 'profile') {
174
- const userConfig = user.config;
175
- const credentials = new aws_sdk_1.default.SharedIniFileCredentials({
176
- profile: userConfig.profile,
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
- }
185
- aws_sdk_1.default.config.credentials = credentials;
186
- aws_sdk_1.default.config.update({ region: userConfig.awsDefaultRegion });
187
- return credentials;
188
- }
189
- throw new Error(`Unknown user config type ${user.type}`);
109
+ return await (0, awsUserUtils_1.getAWSUserFromGoldstackConfig)(config, userName);
190
110
  };
191
111
  exports.getAWSUser = getAWSUser;
192
112
  //# sourceMappingURL=infraAws.js.map
@@ -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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"}
@@ -6,8 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const infraAws_1 = require("./infraAws");
7
7
  const utils_sh_1 = require("@goldstack/utils-sh");
8
8
  const assert_1 = __importDefault(require("assert"));
9
+ const path_1 = __importDefault(require("path"));
9
10
  describe('AWS User config', () => {
10
- it('Should read AWS config from Goldstack config file', async () => {
11
+ it.skip('Should read AWS config from Goldstack config file', async () => {
11
12
  const awsConfig = `{
12
13
  "users": [
13
14
  {
@@ -44,7 +45,7 @@ describe('AWS User config', () => {
44
45
  const credentials = await (0, infraAws_1.getAWSUser)('default', './invalid');
45
46
  (0, assert_1.default)(credentials.accessKeyId);
46
47
  });
47
- it.skip('Should read from AWS config in user folder if credentials config provided', async () => {
48
+ it('Should read from AWS credentials file', async () => {
48
49
  const testDir = './goldstackLocal/tests/getAWSUser';
49
50
  const awsConfig = `{
50
51
  "users": [
@@ -52,24 +53,68 @@ describe('AWS User config', () => {
52
53
  "name": "dev",
53
54
  "type": "profile",
54
55
  "config": {
55
- "profile": "default",
56
- "awsDefaultRegion": "us-west-2"
56
+ "profile": "goldstack-dev",
57
+ "awsDefaultRegion": "us-west-2",
58
+ "awsCredentialsFileName": "${path_1.default
59
+ .resolve('./testData/awsCredentials')
60
+ .replace(/\\/g, '/')}"
57
61
  }
58
- },
62
+ }
63
+ ]
64
+ }`;
65
+ (0, utils_sh_1.mkdir)('-p', testDir);
66
+ (0, utils_sh_1.write)(awsConfig, testDir + '/config.json');
67
+ const credentialsDev = await (0, infraAws_1.getAWSUser)('dev', testDir + '/config.json');
68
+ expect(credentialsDev.secretAccessKey).toEqual('devsecret');
69
+ expect(credentialsDev.accessKeyId).toEqual('devkey');
70
+ });
71
+ it('Should load credentials using a credentials source defined in the credentials file', async () => {
72
+ const testDir = './goldstackLocal/tests/getAWSUser';
73
+ const awsConfig = `{
74
+ "users": [
59
75
  {
60
- "name": "prod",
76
+ "name": "process",
61
77
  "type": "profile",
62
78
  "config": {
63
- "profile": "prod",
64
- "awsDefaultRegion": "us-west-2"
79
+ "profile": "with-process",
80
+ "awsDefaultRegion": "us-west-2",
81
+ "credentialsSource": "process",
82
+ "awsCredentialsFileName": "${path_1.default
83
+ .resolve('./testData/awsCredentials')
84
+ .replace(/\\/g, '/')}"
85
+ }
86
+ }
87
+ ]
88
+ }`;
89
+ (0, utils_sh_1.mkdir)('-p', testDir);
90
+ (0, utils_sh_1.write)(awsConfig, testDir + '/config.json');
91
+ const credentialsProcess = await (0, infraAws_1.getAWSUser)('process', testDir + '/config.json');
92
+ expect(credentialsProcess.secretAccessKey).toEqual('processsecret');
93
+ expect(credentialsProcess.accessKeyId).toEqual('processkey');
94
+ });
95
+ it('Should load credentials using a credentials source defined in the config file', async () => {
96
+ const testDir = './goldstackLocal/tests/getAWSUser';
97
+ const awsConfig = `{
98
+ "users": [
99
+ {
100
+ "name": "process-from-config",
101
+ "type": "profile",
102
+ "config": {
103
+ "profile": "with-process",
104
+ "awsDefaultRegion": "us-west-2",
105
+ "credentialsSource": "process",
106
+ "awsConfigFileName": "${path_1.default
107
+ .resolve('./testData/awsConfig')
108
+ .replace(/\\/g, '/')}"
65
109
  }
66
110
  }
67
111
  ]
68
112
  }`;
69
113
  (0, utils_sh_1.mkdir)('-p', testDir);
70
114
  (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);
115
+ const credentialsProcessFromConfig = await (0, infraAws_1.getAWSUser)('process-from-config', testDir + '/config.json');
116
+ expect(credentialsProcessFromConfig.secretAccessKey).toEqual('processsecret');
117
+ expect(credentialsProcessFromConfig.accessKeyId).toEqual('processkey');
73
118
  });
74
119
  });
75
120
  //# sourceMappingURL=infraAws.spec.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"infraAws.spec.js","sourceRoot":"","sources":["../../src/infraAws.spec.ts"],"names":[],"mappings":"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"}
@@ -108,9 +108,21 @@
108
108
  "additionalProperties": false,
109
109
  "description": "User that is configured using the aws cli. Useful for development environments.",
110
110
  "properties": {
111
+ "awsConfigFileName": {
112
+ "description": "Path to the AWS configuration, e.g. `~/.aws/config`. If environment variable `AWS_CONFIG_FILE` is set, this is ignored.",
113
+ "type": "string"
114
+ },
115
+ "awsCredentialsFileName": {
116
+ "description": "Path to the AWS configuration, e.g. `~/.aws/credentials`. If environment variable `AWS_SHARED_CREDENTIALS_FILE` is set, this is ignored.",
117
+ "type": "string"
118
+ },
111
119
  "awsDefaultRegion": {
112
120
  "$ref": "#/definitions/AWSRegion"
113
121
  },
122
+ "credentialsSource": {
123
+ "$ref": "#/definitions/CredentialsSource",
124
+ "description": "Set to `process`, if credentials should be loaded by running a `credential-process` defined in the AWS credentials configuration. See https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html"
125
+ },
114
126
  "profile": {
115
127
  "$ref": "#/definitions/Profile"
116
128
  }
@@ -181,6 +193,10 @@
181
193
  }
182
194
  ]
183
195
  },
196
+ "CredentialsSource": {
197
+ "const": "process",
198
+ "type": "string"
199
+ },
184
200
  "Name": {
185
201
  "description": "Identifier for this user. No spaces allowed.",
186
202
  "pattern": "^[^\\s]*$",
@@ -62,6 +62,7 @@ export declare type AWSSecretAccessKey = string;
62
62
  * @pattern ^[^\s]*$
63
63
  */
64
64
  export declare type AWSRegion = AWSDeploymentRegion;
65
+ export declare type CredentialsSource = 'process';
65
66
  /**
66
67
  * User that is configured using the aws cli. Useful for development environments.
67
68
  *
@@ -70,6 +71,18 @@ export declare type AWSRegion = AWSDeploymentRegion;
70
71
  export interface AWSProfileConfig {
71
72
  profile: Profile;
72
73
  awsDefaultRegion: AWSRegion;
74
+ /**
75
+ * Path to the AWS configuration, e.g. `~/.aws/credentials`. If environment variable `AWS_SHARED_CREDENTIALS_FILE` is set, this is ignored.
76
+ */
77
+ awsCredentialsFileName?: string;
78
+ /**
79
+ * Path to the AWS configuration, e.g. `~/.aws/config`. If environment variable `AWS_CONFIG_FILE` is set, this is ignored.
80
+ */
81
+ awsConfigFileName?: string;
82
+ /**
83
+ * Set to `process`, if credentials should be loaded by running a `credential-process` defined in the AWS credentials configuration. See https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html
84
+ */
85
+ credentialsSource?: CredentialsSource;
73
86
  }
74
87
  /**
75
88
  * Obtain AWS user from environment variables. This will be useful for CI/CD.
@@ -1 +1 @@
1
- {"version":3,"file":"awsAccount.d.ts","sourceRoot":"","sources":["../../../src/types/awsAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,oBAAY,QAAQ,GAAG,OAAO,EAAE,CAAC;AAEjC;;;;;GAKG;AACH,oBAAY,IAAI,GAAG,MAAM,CAAC;AAE1B;;;;GAIG;AACH,oBAAY,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,sBAAsB,CAAC;AAEjE;;;;;GAKG;AACH,oBAAY,OAAO,GAAG,MAAM,CAAC;AAE7B;;;;;GAKG;AACH,oBAAY,0BAA0B,GAAG,MAAM,CAAC;AAChD;;;;;GAKG;AACH,oBAAY,8BAA8B,GAAG,MAAM,CAAC;AAEpD;;;;;GAKG;AACH,oBAAY,4BAA4B,GAAG,MAAM,CAAC;AAElD;;;;;GAKG;AACH,oBAAY,cAAc,GAAG,MAAM,CAAC;AAEpC;;;;;GAKG;AACH,oBAAY,kBAAkB,GAAG,MAAM,CAAC;AAExC;;;;;GAKG;AACH,oBAAY,SAAS,GAAG,mBAAmB,CAAC;AAE5C;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,SAAS,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,gCAAgC;IAC/C,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,8BAA8B,EAAE,8BAA8B,CAAC;IAC/D,4BAA4B,EAAE,4BAA4B,CAAC;CAC5D;AACD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,gBAAgB,EAAE,SAAS,CAAC;CAC7B;AAED,oBAAY,aAAa,GACrB,gBAAgB,GAChB,gCAAgC,GAChC,mBAAmB,CAAC;AAExB;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,aAAa,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,QAAQ,CAAC;CACjB"}
1
+ {"version":3,"file":"awsAccount.d.ts","sourceRoot":"","sources":["../../../src/types/awsAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,oBAAY,QAAQ,GAAG,OAAO,EAAE,CAAC;AAEjC;;;;;GAKG;AACH,oBAAY,IAAI,GAAG,MAAM,CAAC;AAE1B;;;;GAIG;AACH,oBAAY,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,sBAAsB,CAAC;AAEjE;;;;;GAKG;AACH,oBAAY,OAAO,GAAG,MAAM,CAAC;AAE7B;;;;;GAKG;AACH,oBAAY,0BAA0B,GAAG,MAAM,CAAC;AAChD;;;;;GAKG;AACH,oBAAY,8BAA8B,GAAG,MAAM,CAAC;AAEpD;;;;;GAKG;AACH,oBAAY,4BAA4B,GAAG,MAAM,CAAC;AAElD;;;;;GAKG;AACH,oBAAY,cAAc,GAAG,MAAM,CAAC;AAEpC;;;;;GAKG;AACH,oBAAY,kBAAkB,GAAG,MAAM,CAAC;AAExC;;;;;GAKG;AACH,oBAAY,SAAS,GAAG,mBAAmB,CAAC;AAE5C,oBAAY,iBAAiB,GAAG,SAAS,CAAC;AAE1C;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,SAAS,CAAC;IAE5B;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED;;;;GAIG;AACH,MAAM,WAAW,gCAAgC;IAC/C,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,8BAA8B,EAAE,8BAA8B,CAAC;IAC/D,4BAA4B,EAAE,4BAA4B,CAAC;CAC5D;AACD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,gBAAgB,EAAE,SAAS,CAAC;CAC7B;AAED,oBAAY,aAAa,GACrB,gBAAgB,GAChB,gCAAgC,GAChC,mBAAmB,CAAC;AAExB;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,aAAa,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,QAAQ,CAAC;CACjB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@goldstack/infra-aws",
3
- "version": "0.3.31",
4
- "description": "Utilities to work with AWS infrastructrue via the cli.",
3
+ "version": "0.3.35",
4
+ "description": "Utilities to work with AWS infrastructure via the cli.",
5
5
  "keywords": [
6
6
  "goldstack",
7
7
  "utility",
@@ -39,17 +39,17 @@
39
39
  "version:apply:force": "yarn version $@ && yarn version apply"
40
40
  },
41
41
  "dependencies": {
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.26",
46
- "@goldstack/utils-sh": "0.4.22",
42
+ "@goldstack/infra": "0.3.28",
43
+ "@goldstack/utils-config": "0.3.25",
44
+ "@goldstack/utils-log": "0.2.10",
45
+ "@goldstack/utils-package": "0.3.30",
46
+ "@goldstack/utils-sh": "0.4.24",
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.29",
52
+ "@goldstack/utils-git": "0.1.30",
53
53
  "@types/jest": "^27.0.2",
54
54
  "@types/node": "^16.11.0",
55
55
  "jest": "^26.6.3",