@goldstack/infra-aws 0.3.30 → 0.3.34
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/awsUserUtils.d.ts +10 -0
- package/dist/src/awsUserUtils.d.ts.map +1 -0
- package/dist/src/awsUserUtils.js +152 -0
- package/dist/src/awsUserUtils.js.map +1 -0
- package/dist/src/infraAws.d.ts +18 -17
- package/dist/src/infraAws.d.ts.map +1 -1
- package/dist/src/infraAws.js +111 -191
- package/dist/src/infraAws.js.map +1 -1
- package/dist/src/infraAws.spec.d.ts +1 -1
- package/dist/src/infraAws.spec.js +85 -40
- package/dist/src/infraAws.spec.js.map +1 -1
- package/dist/src/schemas/accountConfigSchema.json +223 -207
- package/dist/src/schemas/awsTerraformStateSchema.json +57 -57
- package/dist/src/schemas/deploymentConfigSchema.json +73 -73
- package/dist/src/types/awsAccount.d.ts +125 -112
- package/dist/src/types/awsAccount.d.ts.map +1 -1
- package/dist/src/types/awsAccount.js +2 -2
- package/dist/src/types/awsDeployment.d.ts +17 -17
- package/dist/src/types/awsDeployment.js +2 -2
- package/dist/src/types/awsTerraformState.d.ts +24 -24
- package/dist/src/types/awsTerraformState.js +2 -2
- package/package.json +7 -7
|
@@ -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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"}
|
package/dist/src/infraAws.d.ts
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import { AWSConfiguration, AWSUser,
|
|
2
|
-
import AWS from 'aws-sdk';
|
|
3
|
-
import { AWSTerraformState, RemoteState } from './types/awsTerraformState';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export
|
|
8
|
-
export declare const
|
|
9
|
-
export declare const
|
|
10
|
-
export declare const
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const
|
|
13
|
-
export declare const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
import { AWSConfiguration, AWSUser, AWSProfileConfig, AWSAPIKeyUserConfig, AWSAccessKeyId, AWSSecretAccessKey, Name } from './types/awsAccount';
|
|
2
|
+
import AWS from 'aws-sdk';
|
|
3
|
+
import { AWSTerraformState, RemoteState } from './types/awsTerraformState';
|
|
4
|
+
import { AWSRegion, AWSEnvironmentVariableUserConfig } from './types/awsAccount';
|
|
5
|
+
export type { AWSConfiguration, AWSUser, AWSRegion, AWSAccessKeyId, AWSSecretAccessKey, AWSProfileConfig as AWSLocalUserConfig, AWSAPIKeyUserConfig as AWSAPIKeyUser, AWSEnvironmentVariableUserConfig, AWSTerraformState, RemoteState, };
|
|
6
|
+
import { AWSDeployment } from './types/awsDeployment';
|
|
7
|
+
export type { AWSDeployment, AWSDeploymentRegion, AWSUserName, } from './types/awsDeployment';
|
|
8
|
+
export declare const readDeploymentFromPackageConfig: (deploymentName: string, path?: string | undefined) => AWSDeployment;
|
|
9
|
+
export declare const assertTerraformConfig: (user: Name, path?: string | undefined) => AWSTerraformState;
|
|
10
|
+
export declare const writeTerraformConfig: (config: AWSTerraformState, path?: string | undefined) => void;
|
|
11
|
+
export declare const hasConfig: (path?: string | undefined) => boolean;
|
|
12
|
+
export declare const readConfig: (path?: string | undefined) => AWSConfiguration;
|
|
13
|
+
export declare const writeConfig: (config: AWSConfiguration, path?: string | undefined) => void;
|
|
14
|
+
export declare const createDefaultConfig: () => AWSConfiguration;
|
|
15
|
+
/**
|
|
16
|
+
* Obtains AWS user credentials from config file or environment variables.
|
|
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":"
|
|
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"}
|
package/dist/src/infraAws.js
CHANGED
|
@@ -1,192 +1,112 @@
|
|
|
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.getAWSUser = exports.createDefaultConfig = exports.writeConfig = exports.readConfig = exports.hasConfig = exports.writeTerraformConfig = exports.assertTerraformConfig = exports.readDeploymentFromPackageConfig = void 0;
|
|
7
|
-
const fs_1 = __importDefault(require("fs"));
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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;
|
|
121
|
-
}
|
|
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);
|
|
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}`);
|
|
190
|
-
};
|
|
191
|
-
exports.getAWSUser = getAWSUser;
|
|
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.getAWSUser = exports.createDefaultConfig = exports.writeConfig = exports.readConfig = exports.hasConfig = exports.writeTerraformConfig = exports.assertTerraformConfig = exports.readDeploymentFromPackageConfig = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const utils_config_1 = require("@goldstack/utils-config");
|
|
9
|
+
const utils_package_1 = require("@goldstack/utils-package");
|
|
10
|
+
const utils_sh_1 = require("@goldstack/utils-sh");
|
|
11
|
+
const accountConfigSchema_json_1 = __importDefault(require("./schemas/accountConfigSchema.json"));
|
|
12
|
+
const deploymentConfigSchema_json_1 = __importDefault(require("./schemas/deploymentConfigSchema.json"));
|
|
13
|
+
const awsTerraformStateSchema_json_1 = __importDefault(require("./schemas/awsTerraformStateSchema.json"));
|
|
14
|
+
const awsUserUtils_1 = require("./awsUserUtils");
|
|
15
|
+
const readDeploymentFromPackageConfig = (deploymentName, path) => {
|
|
16
|
+
const packageConfig = (0, utils_package_1.readPackageConfig)(path);
|
|
17
|
+
const deployment = packageConfig.deployments.find((d) => d.name === deploymentName);
|
|
18
|
+
if (!deployment) {
|
|
19
|
+
throw new Error('Cannot find deployment with name: ' + deploymentName);
|
|
20
|
+
}
|
|
21
|
+
(0, utils_config_1.validateConfig)(deployment, deploymentConfigSchema_json_1.default, {
|
|
22
|
+
errorMessage: `Invalid AWS deployment ${deploymentName}`,
|
|
23
|
+
});
|
|
24
|
+
return deployment;
|
|
25
|
+
};
|
|
26
|
+
exports.readDeploymentFromPackageConfig = readDeploymentFromPackageConfig;
|
|
27
|
+
const assertTerraformConfig = (user, path) => {
|
|
28
|
+
if (!path) {
|
|
29
|
+
path = (0, utils_config_1.getAwsTerraformConfigPath)('./../../');
|
|
30
|
+
}
|
|
31
|
+
let res;
|
|
32
|
+
if (fs_1.default.existsSync(path)) {
|
|
33
|
+
res = (0, utils_config_1.parseConfig)((0, utils_sh_1.read)(path), awsTerraformStateSchema_json_1.default, {
|
|
34
|
+
errorMessage: `Cannot load AWS Terraform configuration from ${path}`,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
res = {
|
|
39
|
+
remoteState: [],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
if (!res.remoteState.find((el) => el.user == user)) {
|
|
43
|
+
res.remoteState.push({
|
|
44
|
+
user: user,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return res;
|
|
48
|
+
};
|
|
49
|
+
exports.assertTerraformConfig = assertTerraformConfig;
|
|
50
|
+
const writeTerraformConfig = (config, path) => {
|
|
51
|
+
if (!path) {
|
|
52
|
+
path = (0, utils_config_1.getAwsTerraformConfigPath)('./../../');
|
|
53
|
+
}
|
|
54
|
+
(0, utils_sh_1.write)(JSON.stringify(config, null, 2), path);
|
|
55
|
+
};
|
|
56
|
+
exports.writeTerraformConfig = writeTerraformConfig;
|
|
57
|
+
const hasConfig = (path) => {
|
|
58
|
+
if (!path) {
|
|
59
|
+
path = (0, utils_config_1.getAwsConfigPath)('./../../');
|
|
60
|
+
}
|
|
61
|
+
// otherwise check default config file location
|
|
62
|
+
return fs_1.default.existsSync(path);
|
|
63
|
+
};
|
|
64
|
+
exports.hasConfig = hasConfig;
|
|
65
|
+
const readConfig = (path) => {
|
|
66
|
+
if (!path) {
|
|
67
|
+
path = (0, utils_config_1.getAwsConfigPath)('./../../');
|
|
68
|
+
}
|
|
69
|
+
// otherwise check default config file location
|
|
70
|
+
if (!fs_1.default.existsSync(path)) {
|
|
71
|
+
throw new Error(`AWS configuration file does not exist: ${path}.`);
|
|
72
|
+
}
|
|
73
|
+
return (0, utils_config_1.parseConfig)((0, utils_sh_1.read)(path), accountConfigSchema_json_1.default, {
|
|
74
|
+
errorMessage: `Cannot load AWS configuration from ${path}`,
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
exports.readConfig = readConfig;
|
|
78
|
+
const writeConfig = (config, path) => {
|
|
79
|
+
if (!path) {
|
|
80
|
+
path = (0, utils_config_1.getAwsConfigPath)('./../../');
|
|
81
|
+
}
|
|
82
|
+
(0, utils_sh_1.write)(JSON.stringify(config, null, 2), path);
|
|
83
|
+
};
|
|
84
|
+
exports.writeConfig = writeConfig;
|
|
85
|
+
const createDefaultConfig = () => {
|
|
86
|
+
return {
|
|
87
|
+
users: [],
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
exports.createDefaultConfig = createDefaultConfig;
|
|
91
|
+
/**
|
|
92
|
+
* Obtains AWS user credentials from config file or environment variables.
|
|
93
|
+
*/
|
|
94
|
+
const getAWSUser = async (userName, configPath) => {
|
|
95
|
+
// Load from ECS environment if running in ECS
|
|
96
|
+
if (process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI) {
|
|
97
|
+
return await (0, awsUserUtils_1.getAWSUserFromContainerEnvironment)();
|
|
98
|
+
}
|
|
99
|
+
// Load credentials from environment variables if available
|
|
100
|
+
if (process.env.AWS_ACCESS_KEY_ID) {
|
|
101
|
+
return await (0, awsUserUtils_1.getAWSUserFromEnvironmentVariables)();
|
|
102
|
+
}
|
|
103
|
+
// Try loading default local user if no config file provided
|
|
104
|
+
if (!(0, exports.hasConfig)(configPath)) {
|
|
105
|
+
return await (0, awsUserUtils_1.getAWSUserFromDefaultLocalProfile)();
|
|
106
|
+
}
|
|
107
|
+
// Load users as configured in Goldstack configuration
|
|
108
|
+
const config = (0, exports.readConfig)(configPath);
|
|
109
|
+
return await (0, awsUserUtils_1.getAWSUserFromGoldstackConfig)(config, userName);
|
|
110
|
+
};
|
|
111
|
+
exports.getAWSUser = getAWSUser;
|
|
192
112
|
//# sourceMappingURL=infraAws.js.map
|
package/dist/src/infraAws.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infraAws.js","sourceRoot":"","sources":["../../src/infraAws.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,
|
|
1
|
+
{"version":3,"file":"infraAws.js","sourceRoot":"","sources":["../../src/infraAws.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=infraAws.spec.d.ts.map
|