@brunwig/mup-aws-beanstalk 2.0.5 → 2.2.2

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/lib/validate.js CHANGED
@@ -4,7 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = default_1;
7
+ exports.verifyAwsAccount = verifyAwsAccount;
7
8
  const joi_1 = __importDefault(require("joi"));
9
+ const client_sts_1 = require("@aws-sdk/client-sts");
10
+ const client_iam_1 = require("@aws-sdk/client-iam");
11
+ const client_organizations_1 = require("@aws-sdk/client-organizations");
12
+ const client_account_1 = require("@aws-sdk/client-account");
8
13
  const schema = joi_1.default.object().keys({
9
14
  name: joi_1.default.string().min(1).required(),
10
15
  path: joi_1.default.string().min(1).required(),
@@ -24,8 +29,9 @@ const schema = joi_1.default.object().keys({
24
29
  docker: joi_1.default.object(),
25
30
  env: joi_1.default.object(),
26
31
  auth: joi_1.default.object().keys({
27
- id: joi_1.default.string().required(),
28
- secret: joi_1.default.string().required()
32
+ id: joi_1.default.string(),
33
+ secret: joi_1.default.string(),
34
+ profile: joi_1.default.string()
29
35
  }).required(),
30
36
  sslDomains: joi_1.default.array().items(joi_1.default.string()),
31
37
  forceSSL: joi_1.default.bool(),
@@ -49,9 +55,10 @@ const schema = joi_1.default.object().keys({
49
55
  privateKey: joi_1.default.string().required(),
50
56
  publicKey: joi_1.default.string().required()
51
57
  },
52
- awsPlatformBranchName: joi_1.default.string().min(1).required()
58
+ awsPlatformBranchName: joi_1.default.string().min(1).required(),
59
+ awsAccountName: joi_1.default.string().min(1).required()
53
60
  });
54
- function default_1(config, utils) {
61
+ async function default_1(config, utils) {
55
62
  let details = [];
56
63
  details = utils.combineErrorDetails(details, schema.validate(config.app, utils.VALIDATE_OPTIONS));
57
64
  if (config.app && config.app.name && config.app.name.length < 4) {
@@ -60,6 +67,152 @@ function default_1(config, utils) {
60
67
  path: 'name'
61
68
  });
62
69
  }
70
+ // Validate that either profile or credentials (id and secret) are provided
71
+ if (config.app && config.app.auth) {
72
+ const hasProfile = config.app.auth.profile && config.app.auth.profile.length > 0;
73
+ const hasCredentials = config.app.auth.id &&
74
+ config.app.auth.id.length > 0 &&
75
+ config.app.auth.secret &&
76
+ config.app.auth.secret.length > 0;
77
+ if (!hasProfile && !hasCredentials) {
78
+ details.push({
79
+ message: 'Either auth.profile or auth credentials (id and secret) must be provided',
80
+ path: 'auth'
81
+ });
82
+ }
83
+ // Ensure both id and secret are provided together if one is provided
84
+ if ((config.app.auth.id && !config.app.auth.secret) ||
85
+ (!config.app.auth.id && config.app.auth.secret)) {
86
+ details.push({
87
+ message: 'Both auth.id and auth.secret must be provided together',
88
+ path: 'auth'
89
+ });
90
+ }
91
+ }
63
92
  return utils.addLocation(details, 'app');
64
93
  }
94
+ async function verifyAwsAccount(config) {
95
+ var _a, _b, _c;
96
+ if (!config.app || config.app.type !== 'aws-beanstalk') {
97
+ return;
98
+ }
99
+ const hasProfile = ((_a = config.app.auth) === null || _a === void 0 ? void 0 : _a.profile) && config.app.auth.profile.length > 0;
100
+ const hasCredentials = ((_b = config.app.auth) === null || _b === void 0 ? void 0 : _b.id) &&
101
+ config.app.auth.id.length > 0 &&
102
+ ((_c = config.app.auth) === null || _c === void 0 ? void 0 : _c.secret) &&
103
+ config.app.auth.secret.length > 0;
104
+ if (hasProfile || hasCredentials) {
105
+ await printAwsAccountInfo(config);
106
+ }
107
+ }
108
+ async function printAwsAccountInfo(config) {
109
+ var _a, _b, _c;
110
+ const commonOptions = {
111
+ credentials: config.app.auth.profile ? undefined : {
112
+ accessKeyId: config.app.auth.id,
113
+ secretAccessKey: config.app.auth.secret,
114
+ },
115
+ region: config.app.region || 'us-east-1'
116
+ };
117
+ // Set AWS_PROFILE environment variable if profile is specified
118
+ if (config.app.auth.profile) {
119
+ process.env.AWS_PROFILE = config.app.auth.profile;
120
+ }
121
+ const sts = new client_sts_1.STS(commonOptions);
122
+ const iam = new client_iam_1.IAM(commonOptions);
123
+ const organizations = new client_organizations_1.Organizations(commonOptions);
124
+ const account = new client_account_1.Account(commonOptions);
125
+ // Get caller identity (account ID, user ARN, etc.)
126
+ const identity = await sts.getCallerIdentity({});
127
+ const accountId = identity.Account;
128
+ const expectedAccountName = config.app.awsAccountName;
129
+ let actualAccountName;
130
+ let accountCreatedDate;
131
+ let accountEmail;
132
+ let accountAlias;
133
+ let organizationJoinedDate;
134
+ // Try to get account information using the Account Management API (best option)
135
+ try {
136
+ const accountInfo = await account.send(new client_account_1.GetAccountInformationCommand({}));
137
+ if (accountInfo.AccountName) {
138
+ actualAccountName = accountInfo.AccountName;
139
+ }
140
+ if (accountInfo.AccountCreatedDate) {
141
+ accountCreatedDate = accountInfo.AccountCreatedDate;
142
+ }
143
+ }
144
+ catch (error) {
145
+ // Try Organizations API as fallback
146
+ try {
147
+ const accountInfo = await organizations.send(new client_organizations_1.DescribeAccountCommand({
148
+ AccountId: accountId
149
+ }));
150
+ if ((_a = accountInfo.Account) === null || _a === void 0 ? void 0 : _a.Name) {
151
+ actualAccountName = accountInfo.Account.Name;
152
+ }
153
+ if ((_b = accountInfo.Account) === null || _b === void 0 ? void 0 : _b.Email) {
154
+ accountEmail = accountInfo.Account.Email;
155
+ }
156
+ if ((_c = accountInfo.Account) === null || _c === void 0 ? void 0 : _c.JoinedTimestamp) {
157
+ organizationJoinedDate = accountInfo.Account.JoinedTimestamp.toISOString();
158
+ }
159
+ }
160
+ catch (orgError) {
161
+ // Could not get account name from either API
162
+ }
163
+ }
164
+ // Try to get account alias
165
+ try {
166
+ const aliases = await iam.listAccountAliases({});
167
+ if (aliases.AccountAliases && aliases.AccountAliases.length > 0) {
168
+ accountAlias = aliases.AccountAliases[0];
169
+ }
170
+ }
171
+ catch (error) {
172
+ // Ignore alias errors
173
+ }
174
+ // Check if account name matches
175
+ const accountNameMatches = actualAccountName === expectedAccountName;
176
+ if (accountNameMatches) {
177
+ // Account name matches - print minimal info
178
+ console.log('\n✅ AWS Account Verification:');
179
+ console.log(` Account Name: ${actualAccountName} (matches expected)`);
180
+ console.log('');
181
+ }
182
+ else {
183
+ // Account name does NOT match - print full info and halt
184
+ console.log('\n❌ AWS Account Verification FAILED:');
185
+ console.log(` Expected Account Name: ${expectedAccountName}`);
186
+ console.log(` Actual Account Name: ${actualAccountName || '(unable to retrieve)'}`);
187
+ console.log('');
188
+ console.log(' Full Account Information:');
189
+ console.log(` Account ID: ${accountId}`);
190
+ console.log(` User ARN: ${identity.Arn}`);
191
+ console.log(` User ID: ${identity.UserId}`);
192
+ if (accountCreatedDate) {
193
+ const dateStr = accountCreatedDate instanceof Date
194
+ ? accountCreatedDate.toISOString()
195
+ : accountCreatedDate;
196
+ console.log(` Account Created: ${dateStr}`);
197
+ }
198
+ if (accountEmail) {
199
+ console.log(` Account Email: ${accountEmail}`);
200
+ }
201
+ if (organizationJoinedDate) {
202
+ console.log(` Joined Organization: ${organizationJoinedDate}`);
203
+ }
204
+ if (accountAlias) {
205
+ console.log(` Account Alias: ${accountAlias}`);
206
+ }
207
+ else {
208
+ console.log(` Account Alias: (none set)`);
209
+ }
210
+ console.log('');
211
+ console.log('⛔ Deployment halted due to account name mismatch.');
212
+ console.log(' Please verify you are deploying to the correct AWS account.');
213
+ console.log('');
214
+ // Throw error to halt processing
215
+ throw new Error(`AWS Account name mismatch: Expected "${expectedAccountName}" but got "${actualAccountName || 'unknown'}"`);
216
+ }
217
+ }
65
218
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brunwig/mup-aws-beanstalk",
3
- "version": "2.0.5",
3
+ "version": "2.2.2",
4
4
  "type": "commonjs",
5
5
  "description": "Deploy apps to AWS Elastic Beanstalk using Meteor Up",
6
6
  "main": "index.js",
@@ -51,6 +51,7 @@
51
51
  "typescript": "^5.2.2"
52
52
  },
53
53
  "dependencies": {
54
+ "@aws-sdk/client-account": "^3.981.0",
54
55
  "@aws-sdk/client-acm": "3.348.0",
55
56
  "@aws-sdk/client-auto-scaling": "3.350.0",
56
57
  "@aws-sdk/client-cloudtrail": "3.348.0",
@@ -60,6 +61,7 @@
60
61
  "@aws-sdk/client-ec2-instance-connect": "3.348.0",
61
62
  "@aws-sdk/client-elastic-beanstalk": "3.348.0",
62
63
  "@aws-sdk/client-iam": "3.348.0",
64
+ "@aws-sdk/client-organizations": "^3.348.0",
63
65
  "@aws-sdk/client-s3": "3.348.0",
64
66
  "@aws-sdk/client-ssm": "3.348.0",
65
67
  "@aws-sdk/client-sts": "3.348.0",
package/readme.md CHANGED
@@ -13,6 +13,7 @@ Features:
13
13
  - Zero downtime deploys
14
14
  - Automatically uses the correct node version
15
15
  - Worker environments
16
+ - AWS Profile support for easier credential management
16
17
  - All AWS specific functions used are documented here: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/ElasticBeanstalk.html#createPlatformVersion-property
17
18
  [Getting Started Guide](./docs/getting-started.md)
18
19