@wraps.dev/cli 3.8.0 → 3.9.1
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/cli.js
CHANGED
|
@@ -37233,7 +37233,6 @@ Run ${pc17.cyan("wraps email init")} to deploy infrastructure first.
|
|
|
37233
37233
|
const smsConfig = metadata.services.sms?.config;
|
|
37234
37234
|
const policy = buildConsolePolicyDocument(emailConfig, smsConfig);
|
|
37235
37235
|
const sendingEnabled = !emailConfig || emailConfig.sendingEnabled !== false;
|
|
37236
|
-
const eventTracking = emailConfig?.eventTracking;
|
|
37237
37236
|
const emailArchiving = emailConfig?.emailArchiving;
|
|
37238
37237
|
const smsEnabled = !!smsConfig;
|
|
37239
37238
|
const smsSendingEnabled = smsConfig && smsConfig.sendingEnabled !== false;
|
|
@@ -37347,9 +37346,6 @@ ${pc17.bold("Permissions:")}`);
|
|
|
37347
37346
|
console.log(
|
|
37348
37347
|
` ${pc17.green("\u2713")} DynamoDB read access (including DescribeTable)`
|
|
37349
37348
|
);
|
|
37350
|
-
if (eventTracking?.enabled) {
|
|
37351
|
-
console.log(` ${pc17.green("\u2713")} EventBridge and SQS access`);
|
|
37352
|
-
}
|
|
37353
37349
|
if (emailArchiving?.enabled) {
|
|
37354
37350
|
console.log(` ${pc17.green("\u2713")} Mail Manager Archive access`);
|
|
37355
37351
|
}
|
|
@@ -37392,6 +37388,11 @@ function buildConsolePolicyDocument(emailConfig, smsConfig) {
|
|
|
37392
37388
|
// SES v2 API for listing/getting email identities (domains)
|
|
37393
37389
|
"ses:ListEmailIdentities",
|
|
37394
37390
|
"ses:GetEmailIdentity",
|
|
37391
|
+
// Write, deliberately. verifyOwnEmailIdentity in
|
|
37392
|
+
// apps/web/src/actions/ses-onboarding.ts creates the operator's own
|
|
37393
|
+
// address as an SES identity so a sandboxed account can complete a
|
|
37394
|
+
// real first send. This is the ONLY identity write the role grants.
|
|
37395
|
+
"ses:CreateEmailIdentity",
|
|
37395
37396
|
// SES v2 API for configuration set scanning (needed by dashboard).
|
|
37396
37397
|
// List is what makes Get reachable — Get takes a name only List can find.
|
|
37397
37398
|
"ses:ListConfigurationSets",
|
|
@@ -37406,7 +37407,7 @@ function buildConsolePolicyDocument(emailConfig, smsConfig) {
|
|
|
37406
37407
|
});
|
|
37407
37408
|
statements.push({
|
|
37408
37409
|
Effect: "Allow",
|
|
37409
|
-
Action: ["s3:
|
|
37410
|
+
Action: ["s3:ListBucket"],
|
|
37410
37411
|
Resource: "arn:aws:s3:::wraps-inbound-*"
|
|
37411
37412
|
});
|
|
37412
37413
|
statements.push({
|
|
@@ -37442,6 +37443,18 @@ function buildConsolePolicyDocument(emailConfig, smsConfig) {
|
|
|
37442
37443
|
Resource: "*"
|
|
37443
37444
|
});
|
|
37444
37445
|
}
|
|
37446
|
+
const suppressionList = emailConfig?.suppressionList;
|
|
37447
|
+
if (suppressionList?.enabled !== false) {
|
|
37448
|
+
statements.push({
|
|
37449
|
+
Effect: "Allow",
|
|
37450
|
+
Action: [
|
|
37451
|
+
"ses:ListSuppressedDestinations",
|
|
37452
|
+
"ses:GetSuppressedDestination",
|
|
37453
|
+
"ses:DeleteSuppressedDestination"
|
|
37454
|
+
],
|
|
37455
|
+
Resource: "*"
|
|
37456
|
+
});
|
|
37457
|
+
}
|
|
37445
37458
|
statements.push({
|
|
37446
37459
|
Effect: "Allow",
|
|
37447
37460
|
Action: [
|
|
@@ -37456,26 +37469,6 @@ function buildConsolePolicyDocument(emailConfig, smsConfig) {
|
|
|
37456
37469
|
"arn:aws:dynamodb:*:*:table/wraps-email-*/index/*"
|
|
37457
37470
|
]
|
|
37458
37471
|
});
|
|
37459
|
-
const eventTracking = emailConfig?.eventTracking;
|
|
37460
|
-
if (eventTracking?.enabled) {
|
|
37461
|
-
statements.push({
|
|
37462
|
-
Effect: "Allow",
|
|
37463
|
-
Action: ["events:PutEvents", "events:DescribeEventBus"],
|
|
37464
|
-
Resource: "arn:aws:events:*:*:event-bus/wraps-email-*"
|
|
37465
|
-
});
|
|
37466
|
-
}
|
|
37467
|
-
if (eventTracking?.enabled) {
|
|
37468
|
-
statements.push({
|
|
37469
|
-
Effect: "Allow",
|
|
37470
|
-
Action: [
|
|
37471
|
-
"sqs:SendMessage",
|
|
37472
|
-
"sqs:ReceiveMessage",
|
|
37473
|
-
"sqs:DeleteMessage",
|
|
37474
|
-
"sqs:GetQueueAttributes"
|
|
37475
|
-
],
|
|
37476
|
-
Resource: "arn:aws:sqs:*:*:wraps-email-*"
|
|
37477
|
-
});
|
|
37478
|
-
}
|
|
37479
37472
|
const emailArchiving = emailConfig?.emailArchiving;
|
|
37480
37473
|
if (emailArchiving?.enabled) {
|
|
37481
37474
|
statements.push({
|
|
@@ -37497,12 +37490,7 @@ function buildConsolePolicyDocument(emailConfig, smsConfig) {
|
|
|
37497
37490
|
if (inbound?.enabled) {
|
|
37498
37491
|
statements.push({
|
|
37499
37492
|
Effect: "Allow",
|
|
37500
|
-
Action: [
|
|
37501
|
-
"s3:HeadBucket",
|
|
37502
|
-
"s3:ListBucket",
|
|
37503
|
-
"s3:GetObject",
|
|
37504
|
-
"s3:GetObjectTagging"
|
|
37505
|
-
],
|
|
37493
|
+
Action: ["s3:ListBucket", "s3:GetObject", "s3:GetObjectTagging"],
|
|
37506
37494
|
Resource: [
|
|
37507
37495
|
"arn:aws:s3:::wraps-inbound-*",
|
|
37508
37496
|
"arn:aws:s3:::wraps-inbound-*/*"
|