@webiny/pulumi-aws 6.0.0-alpha.0 → 6.0.0-alpha.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/apps/admin/createAdminPulumiApp.d.ts +3 -2
- package/apps/admin/createAdminPulumiApp.js +1 -0
- package/apps/admin/createAdminPulumiApp.js.map +1 -1
- package/apps/api/ApiApwScheduler.d.ts +1 -1
- package/apps/api/ApiApwScheduler.js.map +1 -1
- package/apps/api/ApiBackgroundTask.d.ts +1 -1
- package/apps/api/ApiBackgroundTask.js.map +1 -1
- package/apps/api/ApiCloudfront.d.ts +1 -1
- package/apps/api/ApiCloudfront.js.map +1 -1
- package/apps/api/ApiFileManager.d.ts +7 -1
- package/apps/api/ApiFileManager.js +6 -0
- package/apps/api/ApiFileManager.js.map +1 -1
- package/apps/api/ApiGateway.d.ts +2 -2
- package/apps/api/ApiGateway.js.map +1 -1
- package/apps/api/ApiGraphql.d.ts +1 -1
- package/apps/api/ApiGraphql.js.map +1 -1
- package/apps/api/ApiMigration.d.ts +1 -1
- package/apps/api/ApiMigration.js.map +1 -1
- package/apps/api/ApiOutput.d.ts +11 -1
- package/apps/api/ApiOutput.js +11 -1
- package/apps/api/ApiOutput.js.map +1 -1
- package/apps/api/ApiPageBuilder.d.ts +1 -1
- package/apps/api/ApiPageBuilder.js.map +1 -1
- package/apps/api/ApiScheduler.d.ts +8 -0
- package/apps/api/ApiScheduler.js +105 -0
- package/apps/api/ApiScheduler.js.map +1 -0
- package/apps/api/ApiWebsocket.d.ts +1 -1
- package/apps/api/ApiWebsocket.js.map +1 -1
- package/apps/api/backgroundTask/definition.d.ts +2 -2
- package/apps/api/backgroundTask/definition.js.map +1 -1
- package/apps/api/backgroundTask/policy.d.ts +2 -2
- package/apps/api/backgroundTask/policy.js.map +1 -1
- package/apps/api/backgroundTask/role.d.ts +2 -2
- package/apps/api/backgroundTask/role.js.map +1 -1
- package/apps/api/backgroundTask/types.d.ts +1 -1
- package/apps/api/backgroundTask/types.js.map +1 -1
- package/apps/api/createApiPulumiApp.d.ts +19 -13
- package/apps/api/createApiPulumiApp.js +50 -19
- package/apps/api/createApiPulumiApp.js.map +1 -1
- package/apps/awsUtils.d.ts +2 -2
- package/apps/awsUtils.js.map +1 -1
- package/apps/blueGreen/createBlueGreenPulumiApp.d.ts +7 -1
- package/apps/blueGreen/createBlueGreenPulumiApp.js +2 -2
- package/apps/blueGreen/createBlueGreenPulumiApp.js.map +1 -1
- package/apps/blueGreen/domains/attachDomainsToOutput.d.ts +1 -1
- package/apps/blueGreen/domains/attachDomainsToOutput.js.map +1 -1
- package/apps/blueGreen/types.d.ts +4 -1
- package/apps/blueGreen/types.js.map +1 -1
- package/apps/common/CoreOutput.d.ts +2 -1
- package/apps/common/CoreOutput.js +1 -0
- package/apps/common/CoreOutput.js.map +1 -1
- package/apps/common/VpcConfig.d.ts +1 -1
- package/apps/common/VpcConfig.js.map +1 -1
- package/apps/core/CoreCognito.d.ts +1 -1
- package/apps/core/CoreCognito.js.map +1 -1
- package/apps/core/CoreDynamo.d.ts +1 -1
- package/apps/core/CoreDynamo.js.map +1 -1
- package/apps/core/CoreElasticSearch.d.ts +1 -1
- package/apps/core/CoreElasticSearch.js +7 -1
- package/apps/core/CoreElasticSearch.js.map +1 -1
- package/apps/core/CoreEventBus.js.map +1 -1
- package/apps/core/CoreFileManager.d.ts +1 -1
- package/apps/core/CoreFileManager.js.map +1 -1
- package/apps/core/CoreOpenSearch.d.ts +1 -1
- package/apps/core/CoreOpenSearch.js +7 -1
- package/apps/core/CoreOpenSearch.js.map +1 -1
- package/apps/core/CoreVpc.d.ts +1 -1
- package/apps/core/CoreVpc.js.map +1 -1
- package/apps/core/LogDynamo.d.ts +1 -1
- package/apps/core/LogDynamo.js.map +1 -1
- package/apps/core/WatchCommand.js.map +1 -1
- package/apps/core/cognitoIdentityProviders/amazon.d.ts +3 -3
- package/apps/core/cognitoIdentityProviders/amazon.js.map +1 -1
- package/apps/core/cognitoIdentityProviders/apple.d.ts +3 -3
- package/apps/core/cognitoIdentityProviders/apple.js.map +1 -1
- package/apps/core/cognitoIdentityProviders/configure.d.ts +3 -3
- package/apps/core/cognitoIdentityProviders/configure.js.map +1 -1
- package/apps/core/cognitoIdentityProviders/facebook.d.ts +3 -3
- package/apps/core/cognitoIdentityProviders/facebook.js.map +1 -1
- package/apps/core/cognitoIdentityProviders/getIdpConfig.d.ts +2 -2
- package/apps/core/cognitoIdentityProviders/getIdpConfig.js.map +1 -1
- package/apps/core/cognitoIdentityProviders/google.d.ts +3 -3
- package/apps/core/cognitoIdentityProviders/google.js.map +1 -1
- package/apps/core/cognitoIdentityProviders/oidc.d.ts +3 -3
- package/apps/core/cognitoIdentityProviders/oidc.js.map +1 -1
- package/apps/core/createCorePulumiApp.d.ts +1 -1
- package/apps/core/createCorePulumiApp.js +2 -1
- package/apps/core/createCorePulumiApp.js.map +1 -1
- package/apps/createAppBucket.d.ts +1 -1
- package/apps/createAppBucket.js.map +1 -1
- package/apps/customDomain.d.ts +3 -3
- package/apps/customDomain.js.map +1 -1
- package/apps/lambdaUtils.d.ts +3 -2
- package/apps/lambdaUtils.js +21 -3
- package/apps/lambdaUtils.js.map +1 -1
- package/apps/react/createReactPulumiApp.d.ts +2 -2
- package/apps/react/createReactPulumiApp.js.map +1 -1
- package/apps/syncSystem/SyncSystemDynamo.d.ts +1 -1
- package/apps/syncSystem/SyncSystemDynamo.js.map +1 -1
- package/apps/syncSystem/SyncSystemDynamoDb.d.ts +3 -0
- package/apps/syncSystem/SyncSystemDynamoDb.js +55 -0
- package/apps/syncSystem/SyncSystemDynamoDb.js.map +1 -0
- package/apps/syncSystem/SyncSystemEventBus.d.ts +6 -0
- package/apps/syncSystem/SyncSystemEventBus.js +84 -0
- package/apps/syncSystem/SyncSystemEventBus.js.map +1 -0
- package/apps/syncSystem/SyncSystemLambda.d.ts +1 -1
- package/apps/syncSystem/SyncSystemLambda.js.map +1 -1
- package/apps/syncSystem/SyncSystemOutput.d.ts +3 -0
- package/apps/syncSystem/SyncSystemOutput.js +26 -0
- package/apps/syncSystem/SyncSystemOutput.js.map +1 -0
- package/apps/syncSystem/SyncSystemResolverLambda.d.ts +8 -0
- package/apps/syncSystem/SyncSystemResolverLambda.js +78 -0
- package/apps/syncSystem/SyncSystemResolverLambda.js.map +1 -0
- package/apps/syncSystem/SyncSystemSQS.d.ts +3 -4
- package/apps/syncSystem/SyncSystemSQS.js +33 -12
- package/apps/syncSystem/SyncSystemSQS.js.map +1 -1
- package/apps/syncSystem/SyncSystemWorkerLambda.d.ts +7 -0
- package/apps/syncSystem/SyncSystemWorkerLambda.js +57 -0
- package/apps/syncSystem/SyncSystemWorkerLambda.js.map +1 -0
- package/apps/syncSystem/api/addServiceManifest.d.ts +8 -0
- package/apps/syncSystem/api/addServiceManifest.js +25 -0
- package/apps/syncSystem/api/addServiceManifest.js.map +1 -0
- package/apps/syncSystem/api/attachCognitoPermissions.d.ts +14 -0
- package/apps/syncSystem/api/attachCognitoPermissions.js +67 -0
- package/apps/syncSystem/api/attachCognitoPermissions.js.map +1 -0
- package/apps/syncSystem/api/attachDynamoDbPermissions.d.ts +13 -0
- package/apps/syncSystem/api/attachDynamoDbPermissions.js +53 -0
- package/apps/syncSystem/api/attachDynamoDbPermissions.js.map +1 -0
- package/apps/syncSystem/api/attachEventBusPermissions.d.ts +18 -0
- package/apps/syncSystem/api/attachEventBusPermissions.js +66 -0
- package/apps/syncSystem/api/attachEventBusPermissions.js.map +1 -0
- package/apps/syncSystem/api/attachS3Permissions.d.ts +14 -0
- package/apps/syncSystem/api/attachS3Permissions.js +59 -0
- package/apps/syncSystem/api/attachS3Permissions.js.map +1 -0
- package/apps/syncSystem/api/index.d.ts +9 -0
- package/apps/syncSystem/api/index.js +65 -0
- package/apps/syncSystem/api/index.js.map +1 -0
- package/apps/syncSystem/constants.d.ts +1 -0
- package/apps/syncSystem/constants.js +9 -0
- package/apps/syncSystem/constants.js.map +1 -0
- package/apps/syncSystem/createSyncResourceName.d.ts +4 -0
- package/apps/syncSystem/createSyncResourceName.js +17 -0
- package/apps/syncSystem/createSyncResourceName.js.map +1 -0
- package/apps/syncSystem/createSyncSystemPulumiApp.d.ts +19 -10
- package/apps/syncSystem/createSyncSystemPulumiApp.js +107 -34
- package/apps/syncSystem/createSyncSystemPulumiApp.js.map +1 -1
- package/apps/syncSystem/customApp.d.ts +6 -0
- package/apps/syncSystem/customApp.js +26 -0
- package/apps/syncSystem/customApp.js.map +1 -0
- package/apps/syncSystem/getSyncSystemOutput.d.ts +6 -0
- package/apps/syncSystem/getSyncSystemOutput.js +28 -0
- package/apps/syncSystem/getSyncSystemOutput.js.map +1 -0
- package/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.d.ts +7 -0
- package/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.js +55 -0
- package/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.js.map +1 -0
- package/apps/syncSystem/types.d.ts +55 -0
- package/apps/syncSystem/types.js +7 -0
- package/apps/syncSystem/types.js.map +1 -0
- package/apps/tenantRouter.d.ts +1 -1
- package/apps/tenantRouter.js.map +1 -1
- package/apps/website/WebsitePrerendering.d.ts +1 -1
- package/apps/website/WebsitePrerendering.js.map +1 -1
- package/apps/website/createWebsitePulumiApp.d.ts +2 -2
- package/apps/website/createWebsitePulumiApp.js.map +1 -1
- package/enterprise/api/handleGuardDutyEvents.d.ts +1 -1
- package/enterprise/api/handleGuardDutyEvents.js.map +1 -1
- package/enterprise/createApiPulumiApp.d.ts +13 -2
- package/enterprise/createApiPulumiApp.js.map +1 -1
- package/enterprise/createCorePulumiApp.d.ts +2 -2
- package/enterprise/createCorePulumiApp.js.map +1 -1
- package/enterprise/createSyncSystemPulumiApp.d.ts +13 -8
- package/enterprise/createSyncSystemPulumiApp.js +1 -1
- package/enterprise/createSyncSystemPulumiApp.js.map +1 -1
- package/enterprise/createWebsitePulumiApp.d.ts +2 -2
- package/enterprise/createWebsitePulumiApp.js.map +1 -1
- package/package.json +12 -12
- package/utils/addDomainsUrlsOutputs.d.ts +2 -2
- package/utils/addDomainsUrlsOutputs.js.map +1 -1
- package/utils/addServiceManifestTableItem.d.ts +1 -1
- package/utils/addServiceManifestTableItem.js.map +1 -1
- package/utils/createAssetArchive.d.ts +2 -0
- package/utils/createAssetArchive.js +16 -0
- package/utils/createAssetArchive.js.map +1 -0
- package/utils/getPresignedPost.d.ts +1 -1
- package/utils/getPresignedPost.js.map +1 -1
- package/utils/lambdaEnvVariables.d.ts +1 -1
- package/utils/lambdaEnvVariables.js.map +1 -1
- package/utils/uploadFolderToS3.d.ts +1 -1
- package/utils/uploadFolderToS3.js.map +1 -1
- package/utils/withServiceManifest.d.ts +2 -2
- package/utils/withServiceManifest.js.map +1 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.attachCognitoPermissions = void 0;
|
|
8
|
+
var aws = _interopRequireWildcard(require("@pulumi/aws"));
|
|
9
|
+
var _createSyncResourceName = require("../createSyncResourceName.js");
|
|
10
|
+
const attachCognitoPermissions = params => {
|
|
11
|
+
const {
|
|
12
|
+
app,
|
|
13
|
+
syncSystem,
|
|
14
|
+
core
|
|
15
|
+
} = params;
|
|
16
|
+
/**
|
|
17
|
+
* TODO there must be a way to skip this if Cognito is not used in the Webiny deployment.
|
|
18
|
+
*/
|
|
19
|
+
if (!core.cognitoUserPoolArn) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const {
|
|
23
|
+
resolverLambdaRoleName,
|
|
24
|
+
workerLambdaRoleName
|
|
25
|
+
} = syncSystem;
|
|
26
|
+
const resolverLambdaToS3ResourceName = (0, _createSyncResourceName.createSyncResourceName)(`resolver-lambda-to-cognito`);
|
|
27
|
+
const workerLambdaToS3ResourceName = (0, _createSyncResourceName.createSyncResourceName)(`worker-lambda-to-cognito`);
|
|
28
|
+
const cognitoPolicy = app.addResource(aws.iam.Policy, {
|
|
29
|
+
name: `${resolverLambdaToS3ResourceName}-policy`,
|
|
30
|
+
config: {
|
|
31
|
+
description: "This policy enables access from Sync System Resolver and Worker Lambda to Webiny Cognito.",
|
|
32
|
+
policy: {
|
|
33
|
+
Version: "2012-10-17",
|
|
34
|
+
Statement: [{
|
|
35
|
+
Sid: "PermissionForSyncLambdaToCognito",
|
|
36
|
+
Effect: "Allow",
|
|
37
|
+
Action: ["cognito-idp:*"],
|
|
38
|
+
Resource: core.cognitoUserPoolArn.apply(arn => {
|
|
39
|
+
return [arn, `${arn}/*`];
|
|
40
|
+
})
|
|
41
|
+
}]
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
const resolverLambdaS3PolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {
|
|
46
|
+
name: `${resolverLambdaToS3ResourceName}-policy-attachment`,
|
|
47
|
+
config: {
|
|
48
|
+
role: resolverLambdaRoleName,
|
|
49
|
+
policyArn: cognitoPolicy.output.arn
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
const workerLambdaS3PolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {
|
|
53
|
+
name: `${workerLambdaToS3ResourceName}-policy-attachment`,
|
|
54
|
+
config: {
|
|
55
|
+
role: workerLambdaRoleName,
|
|
56
|
+
policyArn: cognitoPolicy.output.arn
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
cognitoPolicy,
|
|
61
|
+
workerLambdaS3PolicyAttachment,
|
|
62
|
+
resolverLambdaS3PolicyAttachment
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
exports.attachCognitoPermissions = attachCognitoPermissions;
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=attachCognitoPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["aws","_interopRequireWildcard","require","_createSyncResourceName","attachCognitoPermissions","params","app","syncSystem","core","cognitoUserPoolArn","resolverLambdaRoleName","workerLambdaRoleName","resolverLambdaToS3ResourceName","createSyncResourceName","workerLambdaToS3ResourceName","cognitoPolicy","addResource","iam","Policy","name","config","description","policy","Version","Statement","Sid","Effect","Action","Resource","apply","arn","resolverLambdaS3PolicyAttachment","RolePolicyAttachment","role","policyArn","output","workerLambdaS3PolicyAttachment","exports"],"sources":["attachCognitoPermissions.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport type { PulumiApp } from \"@webiny/pulumi\";\nimport type { WithServiceManifest } from \"~/utils/withServiceManifest.js\";\nimport type { IGetSyncSystemOutputResult } from \"~/apps/syncSystem/types.js\";\nimport type { CoreOutput } from \"~/apps/index.js\";\nimport { createSyncResourceName } from \"~/apps/syncSystem/createSyncResourceName.js\";\n\nexport interface IAttachCognitoPermissionsParams {\n app: PulumiApp & WithServiceManifest;\n syncSystem: IGetSyncSystemOutputResult;\n core: CoreOutput;\n}\n\nexport const attachCognitoPermissions = (params: IAttachCognitoPermissionsParams) => {\n const { app, syncSystem, core } = params;\n /**\n * TODO there must be a way to skip this if Cognito is not used in the Webiny deployment.\n */\n if (!core.cognitoUserPoolArn) {\n return null;\n }\n\n const { resolverLambdaRoleName, workerLambdaRoleName } = syncSystem;\n\n const resolverLambdaToS3ResourceName = createSyncResourceName(`resolver-lambda-to-cognito`);\n const workerLambdaToS3ResourceName = createSyncResourceName(`worker-lambda-to-cognito`);\n\n const cognitoPolicy = app.addResource(aws.iam.Policy, {\n name: `${resolverLambdaToS3ResourceName}-policy`,\n config: {\n description:\n \"This policy enables access from Sync System Resolver and Worker Lambda to Webiny Cognito.\",\n policy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Sid: \"PermissionForSyncLambdaToCognito\",\n Effect: \"Allow\",\n Action: [\"cognito-idp:*\"],\n Resource: core.cognitoUserPoolArn.apply(arn => {\n return [arn, `${arn}/*`];\n })\n }\n ]\n }\n }\n });\n\n const resolverLambdaS3PolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${resolverLambdaToS3ResourceName}-policy-attachment`,\n config: {\n role: resolverLambdaRoleName,\n policyArn: cognitoPolicy.output.arn\n }\n });\n\n const workerLambdaS3PolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${workerLambdaToS3ResourceName}-policy-attachment`,\n config: {\n role: workerLambdaRoleName,\n policyArn: cognitoPolicy.output.arn\n }\n });\n\n return {\n cognitoPolicy,\n workerLambdaS3PolicyAttachment,\n resolverLambdaS3PolicyAttachment\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,GAAA,GAAAC,uBAAA,CAAAC,OAAA;AAKA,IAAAC,uBAAA,GAAAD,OAAA;AAQO,MAAME,wBAAwB,GAAIC,MAAuC,IAAK;EACjF,MAAM;IAAEC,GAAG;IAAEC,UAAU;IAAEC;EAAK,CAAC,GAAGH,MAAM;EACxC;AACJ;AACA;EACI,IAAI,CAACG,IAAI,CAACC,kBAAkB,EAAE;IAC1B,OAAO,IAAI;EACf;EAEA,MAAM;IAAEC,sBAAsB;IAAEC;EAAqB,CAAC,GAAGJ,UAAU;EAEnE,MAAMK,8BAA8B,GAAG,IAAAC,8CAAsB,EAAC,4BAA4B,CAAC;EAC3F,MAAMC,4BAA4B,GAAG,IAAAD,8CAAsB,EAAC,0BAA0B,CAAC;EAEvF,MAAME,aAAa,GAAGT,GAAG,CAACU,WAAW,CAAChB,GAAG,CAACiB,GAAG,CAACC,MAAM,EAAE;IAClDC,IAAI,EAAE,GAAGP,8BAA8B,SAAS;IAChDQ,MAAM,EAAE;MACJC,WAAW,EACP,2FAA2F;MAC/FC,MAAM,EAAE;QACJC,OAAO,EAAE,YAAY;QACrBC,SAAS,EAAE,CACP;UACIC,GAAG,EAAE,kCAAkC;UACvCC,MAAM,EAAE,OAAO;UACfC,MAAM,EAAE,CAAC,eAAe,CAAC;UACzBC,QAAQ,EAAEpB,IAAI,CAACC,kBAAkB,CAACoB,KAAK,CAACC,GAAG,IAAI;YAC3C,OAAO,CAACA,GAAG,EAAE,GAAGA,GAAG,IAAI,CAAC;UAC5B,CAAC;QACL,CAAC;MAET;IACJ;EACJ,CAAC,CAAC;EAEF,MAAMC,gCAAgC,GAAGzB,GAAG,CAACU,WAAW,CAAChB,GAAG,CAACiB,GAAG,CAACe,oBAAoB,EAAE;IACnFb,IAAI,EAAE,GAAGP,8BAA8B,oBAAoB;IAC3DQ,MAAM,EAAE;MACJa,IAAI,EAAEvB,sBAAsB;MAC5BwB,SAAS,EAAEnB,aAAa,CAACoB,MAAM,CAACL;IACpC;EACJ,CAAC,CAAC;EAEF,MAAMM,8BAA8B,GAAG9B,GAAG,CAACU,WAAW,CAAChB,GAAG,CAACiB,GAAG,CAACe,oBAAoB,EAAE;IACjFb,IAAI,EAAE,GAAGL,4BAA4B,oBAAoB;IACzDM,MAAM,EAAE;MACJa,IAAI,EAAEtB,oBAAoB;MAC1BuB,SAAS,EAAEnB,aAAa,CAACoB,MAAM,CAACL;IACpC;EACJ,CAAC,CAAC;EAEF,OAAO;IACHf,aAAa;IACbqB,8BAA8B;IAC9BL;EACJ,CAAC;AACL,CAAC;AAACM,OAAA,CAAAjC,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { PulumiApp } from "@webiny/pulumi";
|
|
2
|
+
import type { IGetSyncSystemOutputResult } from "../types.js";
|
|
3
|
+
import type { CoreOutput } from "../../common/CoreOutput.js";
|
|
4
|
+
import type { WithServiceManifest } from "../../../utils/withServiceManifest.js";
|
|
5
|
+
export interface IAttachDynamoDbPermissionsParams {
|
|
6
|
+
app: PulumiApp & WithServiceManifest;
|
|
7
|
+
syncSystem: IGetSyncSystemOutputResult;
|
|
8
|
+
core: CoreOutput;
|
|
9
|
+
}
|
|
10
|
+
export declare const attachDynamoDbPermissions: (params: IAttachDynamoDbPermissionsParams) => {
|
|
11
|
+
dynamoDbPolicy: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/iam/policy").Policy>;
|
|
12
|
+
lambdaRolePolicyAttachment: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/iam/rolePolicyAttachment").RolePolicyAttachment>;
|
|
13
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.attachDynamoDbPermissions = void 0;
|
|
8
|
+
var aws = _interopRequireWildcard(require("@pulumi/aws"));
|
|
9
|
+
var _createSyncResourceName = require("../createSyncResourceName.js");
|
|
10
|
+
/**
|
|
11
|
+
* We need to attach Sync System Lambda policy to access DynamoDB in the Webiny system.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
const attachDynamoDbPermissions = params => {
|
|
15
|
+
const {
|
|
16
|
+
app,
|
|
17
|
+
syncSystem,
|
|
18
|
+
core
|
|
19
|
+
} = params;
|
|
20
|
+
const {
|
|
21
|
+
resolverLambdaRoleName
|
|
22
|
+
} = syncSystem;
|
|
23
|
+
const lambdaToDynamoDbResourceName = (0, _createSyncResourceName.createSyncResourceName)(`resolver-lambda-to-dynamodb`);
|
|
24
|
+
const dynamoDbPolicy = app.addResource(aws.iam.Policy, {
|
|
25
|
+
name: `${lambdaToDynamoDbResourceName}-policy`,
|
|
26
|
+
config: {
|
|
27
|
+
description: "This policy enables access from Sync System Lambda to Webiny DynamoDB.",
|
|
28
|
+
policy: {
|
|
29
|
+
Version: "2012-10-17",
|
|
30
|
+
Statement: [{
|
|
31
|
+
Sid: "PermissionForSyncLambdaToDynamoDb",
|
|
32
|
+
Effect: "Allow",
|
|
33
|
+
Action: ["dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:ConditionCheckItem", "dynamodb:CreateBackup", "dynamodb:CreateTable", "dynamodb:CreateTableReplica", "dynamodb:DeleteBackup", "dynamodb:DeleteItem", "dynamodb:DeleteTable", "dynamodb:DeleteTableReplica", "dynamodb:DescribeBackup", "dynamodb:DescribeContinuousBackups", "dynamodb:DescribeContributorInsights", "dynamodb:DescribeExport", "dynamodb:DescribeKinesisStreamingDestination", "dynamodb:DescribeLimits", "dynamodb:DescribeReservedCapacity", "dynamodb:DescribeReservedCapacityOfferings", "dynamodb:DescribeStream", "dynamodb:DescribeTable", "dynamodb:DescribeTableReplicaAutoScaling", "dynamodb:DescribeTimeToLive", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:ExportTableToPointInTime", "dynamodb:GetItem", "dynamodb:GetRecords", "dynamodb:GetShardIterator", "dynamodb:ListBackups", "dynamodb:ListContributorInsights", "dynamodb:ListExports", "dynamodb:ListStreams", "dynamodb:ListTables", "dynamodb:ListTagsOfResource", "dynamodb:PartiQLDelete", "dynamodb:PartiQLInsert", "dynamodb:PartiQLSelect", "dynamodb:PartiQLUpdate", "dynamodb:PurchaseReservedCapacityOfferings", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:RestoreTableFromBackup", "dynamodb:RestoreTableToPointInTime", "dynamodb:Scan", "dynamodb:UpdateContinuousBackups", "dynamodb:UpdateContributorInsights", "dynamodb:UpdateItem", "dynamodb:UpdateTable", "dynamodb:UpdateTableReplicaAutoScaling", "dynamodb:UpdateTimeToLive"],
|
|
34
|
+
Resource: [core.primaryDynamodbTableArn.apply(arn => arn), core.primaryDynamodbTableArn.apply(arn => `${arn}/*`)]
|
|
35
|
+
}]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
const lambdaRolePolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {
|
|
40
|
+
name: `${lambdaToDynamoDbResourceName}-role-policy-attachment`,
|
|
41
|
+
config: {
|
|
42
|
+
role: resolverLambdaRoleName,
|
|
43
|
+
policyArn: dynamoDbPolicy.output.arn
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
return {
|
|
47
|
+
dynamoDbPolicy,
|
|
48
|
+
lambdaRolePolicyAttachment
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
exports.attachDynamoDbPermissions = attachDynamoDbPermissions;
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=attachDynamoDbPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["aws","_interopRequireWildcard","require","_createSyncResourceName","attachDynamoDbPermissions","params","app","syncSystem","core","resolverLambdaRoleName","lambdaToDynamoDbResourceName","createSyncResourceName","dynamoDbPolicy","addResource","iam","Policy","name","config","description","policy","Version","Statement","Sid","Effect","Action","Resource","primaryDynamodbTableArn","apply","arn","lambdaRolePolicyAttachment","RolePolicyAttachment","role","policyArn","output","exports"],"sources":["attachDynamoDbPermissions.ts"],"sourcesContent":["/**\n * We need to attach Sync System Lambda policy to access DynamoDB in the Webiny system.\n */\nimport * as aws from \"@pulumi/aws\";\nimport type { PulumiApp } from \"@webiny/pulumi\";\nimport type { IGetSyncSystemOutputResult } from \"~/apps/syncSystem/types.js\";\nimport { createSyncResourceName } from \"~/apps/syncSystem/createSyncResourceName.js\";\nimport type { CoreOutput } from \"~/apps/common/CoreOutput.js\";\nimport type { WithServiceManifest } from \"~/utils/withServiceManifest.js\";\n\nexport interface IAttachDynamoDbPermissionsParams {\n app: PulumiApp & WithServiceManifest;\n syncSystem: IGetSyncSystemOutputResult;\n core: CoreOutput;\n}\n\nexport const attachDynamoDbPermissions = (params: IAttachDynamoDbPermissionsParams) => {\n const { app, syncSystem, core } = params;\n\n const { resolverLambdaRoleName } = syncSystem;\n\n const lambdaToDynamoDbResourceName = createSyncResourceName(`resolver-lambda-to-dynamodb`);\n\n const dynamoDbPolicy = app.addResource(aws.iam.Policy, {\n name: `${lambdaToDynamoDbResourceName}-policy`,\n config: {\n description: \"This policy enables access from Sync System Lambda to Webiny DynamoDB.\",\n policy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Sid: \"PermissionForSyncLambdaToDynamoDb\",\n Effect: \"Allow\",\n Action: [\n \"dynamodb:BatchGetItem\",\n \"dynamodb:BatchWriteItem\",\n \"dynamodb:ConditionCheckItem\",\n \"dynamodb:CreateBackup\",\n \"dynamodb:CreateTable\",\n \"dynamodb:CreateTableReplica\",\n \"dynamodb:DeleteBackup\",\n \"dynamodb:DeleteItem\",\n \"dynamodb:DeleteTable\",\n \"dynamodb:DeleteTableReplica\",\n \"dynamodb:DescribeBackup\",\n \"dynamodb:DescribeContinuousBackups\",\n \"dynamodb:DescribeContributorInsights\",\n \"dynamodb:DescribeExport\",\n \"dynamodb:DescribeKinesisStreamingDestination\",\n \"dynamodb:DescribeLimits\",\n \"dynamodb:DescribeReservedCapacity\",\n \"dynamodb:DescribeReservedCapacityOfferings\",\n \"dynamodb:DescribeStream\",\n \"dynamodb:DescribeTable\",\n \"dynamodb:DescribeTableReplicaAutoScaling\",\n \"dynamodb:DescribeTimeToLive\",\n \"dynamodb:DisableKinesisStreamingDestination\",\n \"dynamodb:EnableKinesisStreamingDestination\",\n \"dynamodb:ExportTableToPointInTime\",\n \"dynamodb:GetItem\",\n \"dynamodb:GetRecords\",\n \"dynamodb:GetShardIterator\",\n \"dynamodb:ListBackups\",\n \"dynamodb:ListContributorInsights\",\n \"dynamodb:ListExports\",\n \"dynamodb:ListStreams\",\n \"dynamodb:ListTables\",\n \"dynamodb:ListTagsOfResource\",\n \"dynamodb:PartiQLDelete\",\n \"dynamodb:PartiQLInsert\",\n \"dynamodb:PartiQLSelect\",\n \"dynamodb:PartiQLUpdate\",\n \"dynamodb:PurchaseReservedCapacityOfferings\",\n \"dynamodb:PutItem\",\n \"dynamodb:Query\",\n \"dynamodb:RestoreTableFromBackup\",\n \"dynamodb:RestoreTableToPointInTime\",\n \"dynamodb:Scan\",\n \"dynamodb:UpdateContinuousBackups\",\n \"dynamodb:UpdateContributorInsights\",\n \"dynamodb:UpdateItem\",\n \"dynamodb:UpdateTable\",\n \"dynamodb:UpdateTableReplicaAutoScaling\",\n \"dynamodb:UpdateTimeToLive\"\n ],\n Resource: [\n core.primaryDynamodbTableArn.apply(arn => arn),\n core.primaryDynamodbTableArn.apply(arn => `${arn}/*`)\n ]\n }\n ]\n }\n }\n });\n\n const lambdaRolePolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${lambdaToDynamoDbResourceName}-role-policy-attachment`,\n config: {\n role: resolverLambdaRoleName,\n policyArn: dynamoDbPolicy.output.arn\n }\n });\n\n return {\n dynamoDbPolicy,\n lambdaRolePolicyAttachment\n };\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,GAAA,GAAAC,uBAAA,CAAAC,OAAA;AAGA,IAAAC,uBAAA,GAAAD,OAAA;AANA;AACA;AACA;;AAcO,MAAME,yBAAyB,GAAIC,MAAwC,IAAK;EACnF,MAAM;IAAEC,GAAG;IAAEC,UAAU;IAAEC;EAAK,CAAC,GAAGH,MAAM;EAExC,MAAM;IAAEI;EAAuB,CAAC,GAAGF,UAAU;EAE7C,MAAMG,4BAA4B,GAAG,IAAAC,8CAAsB,EAAC,6BAA6B,CAAC;EAE1F,MAAMC,cAAc,GAAGN,GAAG,CAACO,WAAW,CAACb,GAAG,CAACc,GAAG,CAACC,MAAM,EAAE;IACnDC,IAAI,EAAE,GAAGN,4BAA4B,SAAS;IAC9CO,MAAM,EAAE;MACJC,WAAW,EAAE,wEAAwE;MACrFC,MAAM,EAAE;QACJC,OAAO,EAAE,YAAY;QACrBC,SAAS,EAAE,CACP;UACIC,GAAG,EAAE,mCAAmC;UACxCC,MAAM,EAAE,OAAO;UACfC,MAAM,EAAE,CACJ,uBAAuB,EACvB,yBAAyB,EACzB,6BAA6B,EAC7B,uBAAuB,EACvB,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,6BAA6B,EAC7B,yBAAyB,EACzB,oCAAoC,EACpC,sCAAsC,EACtC,yBAAyB,EACzB,8CAA8C,EAC9C,yBAAyB,EACzB,mCAAmC,EACnC,4CAA4C,EAC5C,yBAAyB,EACzB,wBAAwB,EACxB,0CAA0C,EAC1C,6BAA6B,EAC7B,6CAA6C,EAC7C,4CAA4C,EAC5C,mCAAmC,EACnC,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EACtB,kCAAkC,EAClC,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,4CAA4C,EAC5C,kBAAkB,EAClB,gBAAgB,EAChB,iCAAiC,EACjC,oCAAoC,EACpC,eAAe,EACf,kCAAkC,EAClC,oCAAoC,EACpC,qBAAqB,EACrB,sBAAsB,EACtB,wCAAwC,EACxC,2BAA2B,CAC9B;UACDC,QAAQ,EAAE,CACNjB,IAAI,CAACkB,uBAAuB,CAACC,KAAK,CAACC,GAAG,IAAIA,GAAG,CAAC,EAC9CpB,IAAI,CAACkB,uBAAuB,CAACC,KAAK,CAACC,GAAG,IAAI,GAAGA,GAAG,IAAI,CAAC;QAE7D,CAAC;MAET;IACJ;EACJ,CAAC,CAAC;EAEF,MAAMC,0BAA0B,GAAGvB,GAAG,CAACO,WAAW,CAACb,GAAG,CAACc,GAAG,CAACgB,oBAAoB,EAAE;IAC7Ed,IAAI,EAAE,GAAGN,4BAA4B,yBAAyB;IAC9DO,MAAM,EAAE;MACJc,IAAI,EAAEtB,sBAAsB;MAC5BuB,SAAS,EAAEpB,cAAc,CAACqB,MAAM,CAACL;IACrC;EACJ,CAAC,CAAC;EAEF,OAAO;IACHhB,cAAc;IACdiB;EACJ,CAAC;AACL,CAAC;AAACK,OAAA,CAAA9B,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { PulumiApp } from "@webiny/pulumi/types";
|
|
2
|
+
import type { IGetSyncSystemOutputResult } from "../types";
|
|
3
|
+
import type { WithServiceManifest } from "../../../utils/withServiceManifest.js";
|
|
4
|
+
export interface IAttachEventBusPermissionsParam {
|
|
5
|
+
app: PulumiApp & WithServiceManifest;
|
|
6
|
+
syncSystem: IGetSyncSystemOutputResult;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* We need to attach the policy to:
|
|
10
|
+
* * GraphQL Lambda Role
|
|
11
|
+
* * File Manager Manage Lambda Role
|
|
12
|
+
* TODO determine if any other are required
|
|
13
|
+
*/
|
|
14
|
+
export declare const attachEventBusPermissions: (params: IAttachEventBusPermissionsParam) => {
|
|
15
|
+
eventBridgePolicy: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/iam/policy").Policy>;
|
|
16
|
+
graphQlPolicyAttachment: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/iam/rolePolicyAttachment").RolePolicyAttachment>;
|
|
17
|
+
fileManagerManagePolicyAttachment: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/iam/rolePolicyAttachment").RolePolicyAttachment>;
|
|
18
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.attachEventBusPermissions = void 0;
|
|
8
|
+
var aws = _interopRequireWildcard(require("@pulumi/aws"));
|
|
9
|
+
var _createSyncResourceName = require("../createSyncResourceName");
|
|
10
|
+
var _ApiGraphql = require("../../api/ApiGraphql.js");
|
|
11
|
+
var _ApiFileManager = require("../../api/ApiFileManager.js");
|
|
12
|
+
/**
|
|
13
|
+
* We need to attach the policy to:
|
|
14
|
+
* * GraphQL Lambda Role
|
|
15
|
+
* * File Manager Manage Lambda Role
|
|
16
|
+
* TODO determine if any other are required
|
|
17
|
+
*/
|
|
18
|
+
const attachEventBusPermissions = params => {
|
|
19
|
+
const {
|
|
20
|
+
app,
|
|
21
|
+
syncSystem
|
|
22
|
+
} = params;
|
|
23
|
+
const {
|
|
24
|
+
eventBusArn
|
|
25
|
+
} = syncSystem;
|
|
26
|
+
const graphql = app.getModule(_ApiGraphql.ApiGraphql);
|
|
27
|
+
const fileManager = app.getModule(_ApiFileManager.ApiFileManager);
|
|
28
|
+
const lambdaToEventBridgeResourceName = (0, _createSyncResourceName.createSyncResourceName)(`lambda-to-event-bridge`);
|
|
29
|
+
const eventBridgePolicy = app.addResource(aws.iam.Policy, {
|
|
30
|
+
name: `${lambdaToEventBridgeResourceName}-policy`,
|
|
31
|
+
config: {
|
|
32
|
+
description: "This policy enables access from Webiny Lambdas to Sync System EventBridge.",
|
|
33
|
+
policy: {
|
|
34
|
+
Version: "2012-10-17",
|
|
35
|
+
Statement: [{
|
|
36
|
+
Sid: "PermissionForSyncLambdaToEventBridge",
|
|
37
|
+
Effect: "Allow",
|
|
38
|
+
Action: "events:PutEvents",
|
|
39
|
+
Resource: [eventBusArn]
|
|
40
|
+
}]
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
const graphQlPolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {
|
|
45
|
+
name: `${lambdaToEventBridgeResourceName}-graphql-role-policy-attachment`,
|
|
46
|
+
config: {
|
|
47
|
+
role: graphql.role.output.name,
|
|
48
|
+
policyArn: eventBridgePolicy.output.arn
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
const fileManagerManagePolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {
|
|
52
|
+
name: `${lambdaToEventBridgeResourceName}-fm-role-policy-attachment`,
|
|
53
|
+
config: {
|
|
54
|
+
role: fileManager.roles.manage.output.name,
|
|
55
|
+
policyArn: eventBridgePolicy.output.arn
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
return {
|
|
59
|
+
eventBridgePolicy,
|
|
60
|
+
graphQlPolicyAttachment,
|
|
61
|
+
fileManagerManagePolicyAttachment
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
exports.attachEventBusPermissions = attachEventBusPermissions;
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=attachEventBusPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["aws","_interopRequireWildcard","require","_createSyncResourceName","_ApiGraphql","_ApiFileManager","attachEventBusPermissions","params","app","syncSystem","eventBusArn","graphql","getModule","ApiGraphql","fileManager","ApiFileManager","lambdaToEventBridgeResourceName","createSyncResourceName","eventBridgePolicy","addResource","iam","Policy","name","config","description","policy","Version","Statement","Sid","Effect","Action","Resource","graphQlPolicyAttachment","RolePolicyAttachment","role","output","policyArn","arn","fileManagerManagePolicyAttachment","roles","manage","exports"],"sources":["attachEventBusPermissions.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport type { PulumiApp } from \"@webiny/pulumi/types\";\nimport type { IGetSyncSystemOutputResult } from \"../types\";\nimport { createSyncResourceName } from \"../createSyncResourceName\";\nimport { ApiGraphql } from \"~/apps/api/ApiGraphql.js\";\nimport { ApiFileManager } from \"~/apps/api/ApiFileManager.js\";\nimport type { WithServiceManifest } from \"~/utils/withServiceManifest.js\";\n\nexport interface IAttachEventBusPermissionsParam {\n app: PulumiApp & WithServiceManifest;\n syncSystem: IGetSyncSystemOutputResult;\n}\n\n/**\n * We need to attach the policy to:\n * * GraphQL Lambda Role\n * * File Manager Manage Lambda Role\n * TODO determine if any other are required\n */\nexport const attachEventBusPermissions = (params: IAttachEventBusPermissionsParam) => {\n const { app, syncSystem } = params;\n\n const { eventBusArn } = syncSystem;\n\n const graphql = app.getModule(ApiGraphql);\n const fileManager = app.getModule(ApiFileManager);\n\n const lambdaToEventBridgeResourceName = createSyncResourceName(`lambda-to-event-bridge`);\n const eventBridgePolicy = app.addResource(aws.iam.Policy, {\n name: `${lambdaToEventBridgeResourceName}-policy`,\n config: {\n description:\n \"This policy enables access from Webiny Lambdas to Sync System EventBridge.\",\n policy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Sid: \"PermissionForSyncLambdaToEventBridge\",\n Effect: \"Allow\",\n Action: \"events:PutEvents\",\n Resource: [eventBusArn]\n }\n ]\n }\n }\n });\n\n const graphQlPolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${lambdaToEventBridgeResourceName}-graphql-role-policy-attachment`,\n config: {\n role: graphql.role.output.name,\n policyArn: eventBridgePolicy.output.arn\n }\n });\n const fileManagerManagePolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${lambdaToEventBridgeResourceName}-fm-role-policy-attachment`,\n config: {\n role: fileManager.roles.manage.output.name,\n policyArn: eventBridgePolicy.output.arn\n }\n });\n\n return {\n eventBridgePolicy,\n graphQlPolicyAttachment,\n fileManagerManagePolicyAttachment\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,GAAA,GAAAC,uBAAA,CAAAC,OAAA;AAGA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,yBAAyB,GAAIC,MAAuC,IAAK;EAClF,MAAM;IAAEC,GAAG;IAAEC;EAAW,CAAC,GAAGF,MAAM;EAElC,MAAM;IAAEG;EAAY,CAAC,GAAGD,UAAU;EAElC,MAAME,OAAO,GAAGH,GAAG,CAACI,SAAS,CAACC,sBAAU,CAAC;EACzC,MAAMC,WAAW,GAAGN,GAAG,CAACI,SAAS,CAACG,8BAAc,CAAC;EAEjD,MAAMC,+BAA+B,GAAG,IAAAC,8CAAsB,EAAC,wBAAwB,CAAC;EACxF,MAAMC,iBAAiB,GAAGV,GAAG,CAACW,WAAW,CAACnB,GAAG,CAACoB,GAAG,CAACC,MAAM,EAAE;IACtDC,IAAI,EAAE,GAAGN,+BAA+B,SAAS;IACjDO,MAAM,EAAE;MACJC,WAAW,EACP,4EAA4E;MAChFC,MAAM,EAAE;QACJC,OAAO,EAAE,YAAY;QACrBC,SAAS,EAAE,CACP;UACIC,GAAG,EAAE,sCAAsC;UAC3CC,MAAM,EAAE,OAAO;UACfC,MAAM,EAAE,kBAAkB;UAC1BC,QAAQ,EAAE,CAACrB,WAAW;QAC1B,CAAC;MAET;IACJ;EACJ,CAAC,CAAC;EAEF,MAAMsB,uBAAuB,GAAGxB,GAAG,CAACW,WAAW,CAACnB,GAAG,CAACoB,GAAG,CAACa,oBAAoB,EAAE;IAC1EX,IAAI,EAAE,GAAGN,+BAA+B,iCAAiC;IACzEO,MAAM,EAAE;MACJW,IAAI,EAAEvB,OAAO,CAACuB,IAAI,CAACC,MAAM,CAACb,IAAI;MAC9Bc,SAAS,EAAElB,iBAAiB,CAACiB,MAAM,CAACE;IACxC;EACJ,CAAC,CAAC;EACF,MAAMC,iCAAiC,GAAG9B,GAAG,CAACW,WAAW,CAACnB,GAAG,CAACoB,GAAG,CAACa,oBAAoB,EAAE;IACpFX,IAAI,EAAE,GAAGN,+BAA+B,4BAA4B;IACpEO,MAAM,EAAE;MACJW,IAAI,EAAEpB,WAAW,CAACyB,KAAK,CAACC,MAAM,CAACL,MAAM,CAACb,IAAI;MAC1Cc,SAAS,EAAElB,iBAAiB,CAACiB,MAAM,CAACE;IACxC;EACJ,CAAC,CAAC;EAEF,OAAO;IACHnB,iBAAiB;IACjBc,uBAAuB;IACvBM;EACJ,CAAC;AACL,CAAC;AAACG,OAAA,CAAAnC,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { PulumiApp } from "@webiny/pulumi";
|
|
2
|
+
import type { IGetSyncSystemOutputResult } from "../types.js";
|
|
3
|
+
import type { CoreOutput } from "../../common/CoreOutput.js";
|
|
4
|
+
import type { WithServiceManifest } from "../../../utils/withServiceManifest.js";
|
|
5
|
+
export interface IAttachS3PermissionsParams {
|
|
6
|
+
app: PulumiApp & WithServiceManifest;
|
|
7
|
+
syncSystem: IGetSyncSystemOutputResult;
|
|
8
|
+
core: CoreOutput;
|
|
9
|
+
}
|
|
10
|
+
export declare const attachS3Permissions: (params: IAttachS3PermissionsParams) => {
|
|
11
|
+
s3Policy: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/iam/policy").Policy>;
|
|
12
|
+
workerLambdaS3PolicyAttachment: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/iam/rolePolicyAttachment").RolePolicyAttachment>;
|
|
13
|
+
resolverLambdaS3PolicyAttachment: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/iam/rolePolicyAttachment").RolePolicyAttachment>;
|
|
14
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.attachS3Permissions = void 0;
|
|
8
|
+
var aws = _interopRequireWildcard(require("@pulumi/aws"));
|
|
9
|
+
var _createSyncResourceName = require("../createSyncResourceName.js");
|
|
10
|
+
const attachS3Permissions = params => {
|
|
11
|
+
const {
|
|
12
|
+
app,
|
|
13
|
+
syncSystem,
|
|
14
|
+
core
|
|
15
|
+
} = params;
|
|
16
|
+
const {
|
|
17
|
+
resolverLambdaRoleName,
|
|
18
|
+
workerLambdaRoleName
|
|
19
|
+
} = syncSystem;
|
|
20
|
+
const resolverLambdaToS3ResourceName = (0, _createSyncResourceName.createSyncResourceName)(`resolver-lambda-to-s3-fm`);
|
|
21
|
+
const workerLambdaToS3ResourceName = (0, _createSyncResourceName.createSyncResourceName)(`worker-lambda-to-s3-fm`);
|
|
22
|
+
const s3Policy = app.addResource(aws.iam.Policy, {
|
|
23
|
+
name: `${resolverLambdaToS3ResourceName}-policy`,
|
|
24
|
+
config: {
|
|
25
|
+
description: "This policy enables access from Sync System Resolver and Worker Lambda to Webiny S3.",
|
|
26
|
+
policy: {
|
|
27
|
+
Version: "2012-10-17",
|
|
28
|
+
Statement: [{
|
|
29
|
+
Sid: "PermissionForSyncLambdaToS3",
|
|
30
|
+
Effect: "Allow",
|
|
31
|
+
Action: ["s3:DeleteObject", "s3:PutObject", "s3:GetObject", "s3:ListBucket"],
|
|
32
|
+
Resource: [core.fileManagerBucketArn.apply(arn => arn), core.fileManagerBucketArn.apply(arn => `${arn}/*`)]
|
|
33
|
+
}]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
const resolverLambdaS3PolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {
|
|
38
|
+
name: `${resolverLambdaToS3ResourceName}-policy-attachment`,
|
|
39
|
+
config: {
|
|
40
|
+
role: resolverLambdaRoleName,
|
|
41
|
+
policyArn: s3Policy.output.arn
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
const workerLambdaS3PolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {
|
|
45
|
+
name: `${workerLambdaToS3ResourceName}-policy-attachment`,
|
|
46
|
+
config: {
|
|
47
|
+
role: workerLambdaRoleName,
|
|
48
|
+
policyArn: s3Policy.output.arn
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return {
|
|
52
|
+
s3Policy,
|
|
53
|
+
workerLambdaS3PolicyAttachment,
|
|
54
|
+
resolverLambdaS3PolicyAttachment
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
exports.attachS3Permissions = attachS3Permissions;
|
|
58
|
+
|
|
59
|
+
//# sourceMappingURL=attachS3Permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["aws","_interopRequireWildcard","require","_createSyncResourceName","attachS3Permissions","params","app","syncSystem","core","resolverLambdaRoleName","workerLambdaRoleName","resolverLambdaToS3ResourceName","createSyncResourceName","workerLambdaToS3ResourceName","s3Policy","addResource","iam","Policy","name","config","description","policy","Version","Statement","Sid","Effect","Action","Resource","fileManagerBucketArn","apply","arn","resolverLambdaS3PolicyAttachment","RolePolicyAttachment","role","policyArn","output","workerLambdaS3PolicyAttachment","exports"],"sources":["attachS3Permissions.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport type { PulumiApp } from \"@webiny/pulumi\";\nimport type { IGetSyncSystemOutputResult } from \"~/apps/syncSystem/types.js\";\nimport type { CoreOutput } from \"~/apps/common/CoreOutput.js\";\nimport { createSyncResourceName } from \"~/apps/syncSystem/createSyncResourceName.js\";\nimport type { WithServiceManifest } from \"~/utils/withServiceManifest.js\";\n\nexport interface IAttachS3PermissionsParams {\n app: PulumiApp & WithServiceManifest;\n syncSystem: IGetSyncSystemOutputResult;\n core: CoreOutput;\n}\n\nexport const attachS3Permissions = (params: IAttachS3PermissionsParams) => {\n const { app, syncSystem, core } = params;\n\n const { resolverLambdaRoleName, workerLambdaRoleName } = syncSystem;\n\n const resolverLambdaToS3ResourceName = createSyncResourceName(`resolver-lambda-to-s3-fm`);\n const workerLambdaToS3ResourceName = createSyncResourceName(`worker-lambda-to-s3-fm`);\n\n const s3Policy = app.addResource(aws.iam.Policy, {\n name: `${resolverLambdaToS3ResourceName}-policy`,\n config: {\n description:\n \"This policy enables access from Sync System Resolver and Worker Lambda to Webiny S3.\",\n policy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Sid: \"PermissionForSyncLambdaToS3\",\n Effect: \"Allow\",\n Action: [\n \"s3:DeleteObject\",\n \"s3:PutObject\",\n \"s3:GetObject\",\n \"s3:ListBucket\"\n ],\n Resource: [\n core.fileManagerBucketArn.apply(arn => arn),\n core.fileManagerBucketArn.apply(arn => `${arn}/*`)\n ]\n }\n ]\n }\n }\n });\n\n const resolverLambdaS3PolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${resolverLambdaToS3ResourceName}-policy-attachment`,\n config: {\n role: resolverLambdaRoleName,\n policyArn: s3Policy.output.arn\n }\n });\n\n const workerLambdaS3PolicyAttachment = app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${workerLambdaToS3ResourceName}-policy-attachment`,\n config: {\n role: workerLambdaRoleName,\n policyArn: s3Policy.output.arn\n }\n });\n\n return {\n s3Policy,\n workerLambdaS3PolicyAttachment,\n resolverLambdaS3PolicyAttachment\n };\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,GAAA,GAAAC,uBAAA,CAAAC,OAAA;AAIA,IAAAC,uBAAA,GAAAD,OAAA;AASO,MAAME,mBAAmB,GAAIC,MAAkC,IAAK;EACvE,MAAM;IAAEC,GAAG;IAAEC,UAAU;IAAEC;EAAK,CAAC,GAAGH,MAAM;EAExC,MAAM;IAAEI,sBAAsB;IAAEC;EAAqB,CAAC,GAAGH,UAAU;EAEnE,MAAMI,8BAA8B,GAAG,IAAAC,8CAAsB,EAAC,0BAA0B,CAAC;EACzF,MAAMC,4BAA4B,GAAG,IAAAD,8CAAsB,EAAC,wBAAwB,CAAC;EAErF,MAAME,QAAQ,GAAGR,GAAG,CAACS,WAAW,CAACf,GAAG,CAACgB,GAAG,CAACC,MAAM,EAAE;IAC7CC,IAAI,EAAE,GAAGP,8BAA8B,SAAS;IAChDQ,MAAM,EAAE;MACJC,WAAW,EACP,sFAAsF;MAC1FC,MAAM,EAAE;QACJC,OAAO,EAAE,YAAY;QACrBC,SAAS,EAAE,CACP;UACIC,GAAG,EAAE,6BAA6B;UAClCC,MAAM,EAAE,OAAO;UACfC,MAAM,EAAE,CACJ,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,CAClB;UACDC,QAAQ,EAAE,CACNnB,IAAI,CAACoB,oBAAoB,CAACC,KAAK,CAACC,GAAG,IAAIA,GAAG,CAAC,EAC3CtB,IAAI,CAACoB,oBAAoB,CAACC,KAAK,CAACC,GAAG,IAAI,GAAGA,GAAG,IAAI,CAAC;QAE1D,CAAC;MAET;IACJ;EACJ,CAAC,CAAC;EAEF,MAAMC,gCAAgC,GAAGzB,GAAG,CAACS,WAAW,CAACf,GAAG,CAACgB,GAAG,CAACgB,oBAAoB,EAAE;IACnFd,IAAI,EAAE,GAAGP,8BAA8B,oBAAoB;IAC3DQ,MAAM,EAAE;MACJc,IAAI,EAAExB,sBAAsB;MAC5ByB,SAAS,EAAEpB,QAAQ,CAACqB,MAAM,CAACL;IAC/B;EACJ,CAAC,CAAC;EAEF,MAAMM,8BAA8B,GAAG9B,GAAG,CAACS,WAAW,CAACf,GAAG,CAACgB,GAAG,CAACgB,oBAAoB,EAAE;IACjFd,IAAI,EAAE,GAAGL,4BAA4B,oBAAoB;IACzDM,MAAM,EAAE;MACJc,IAAI,EAAEvB,oBAAoB;MAC1BwB,SAAS,EAAEpB,QAAQ,CAACqB,MAAM,CAACL;IAC/B;EACJ,CAAC,CAAC;EAEF,OAAO;IACHhB,QAAQ;IACRsB,8BAA8B;IAC9BL;EACJ,CAAC;AACL,CAAC;AAACM,OAAA,CAAAjC,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PulumiApp } from "@webiny/pulumi/types";
|
|
2
|
+
import type { CoreOutput } from "../../common/CoreOutput.js";
|
|
3
|
+
import type { WithServiceManifest } from "../../../utils/withServiceManifest.js";
|
|
4
|
+
export interface IAttachSyncSystemParams {
|
|
5
|
+
app: PulumiApp & WithServiceManifest;
|
|
6
|
+
env: string;
|
|
7
|
+
core: CoreOutput;
|
|
8
|
+
}
|
|
9
|
+
export declare const attachSyncSystem: (params: IAttachSyncSystemParams) => void;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.attachSyncSystem = void 0;
|
|
7
|
+
var _getSyncSystemOutput = require("../getSyncSystemOutput.js");
|
|
8
|
+
var _attachEventBusPermissions = require("./attachEventBusPermissions.js");
|
|
9
|
+
var _attachDynamoDbPermissions = require("./attachDynamoDbPermissions.js");
|
|
10
|
+
var _attachS3Permissions = require("./attachS3Permissions.js");
|
|
11
|
+
var _addServiceManifest = require("./addServiceManifest.js");
|
|
12
|
+
var _attachCognitoPermissions = require("./attachCognitoPermissions.js");
|
|
13
|
+
const attachSyncSystem = params => {
|
|
14
|
+
const {
|
|
15
|
+
app,
|
|
16
|
+
core,
|
|
17
|
+
env
|
|
18
|
+
} = params;
|
|
19
|
+
const syncSystem = (0, _getSyncSystemOutput.getSyncSystemOutput)({
|
|
20
|
+
env
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Possibly no sync system deployed - no need to do anything at that point.
|
|
24
|
+
* At this point, if sync system was deployed, and it is not anymore, all resources after this check will disappear.
|
|
25
|
+
*/
|
|
26
|
+
if (!syncSystem) {
|
|
27
|
+
console.log(`No Sync System deployed in env "${env}". Skipping...`);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Permissions for Webiny system to access Sync System resources.
|
|
32
|
+
*/
|
|
33
|
+
(0, _attachEventBusPermissions.attachEventBusPermissions)({
|
|
34
|
+
app,
|
|
35
|
+
syncSystem
|
|
36
|
+
});
|
|
37
|
+
/**
|
|
38
|
+
* Permissions for Sync System to access Webiny system resources.
|
|
39
|
+
*/
|
|
40
|
+
(0, _attachCognitoPermissions.attachCognitoPermissions)({
|
|
41
|
+
app,
|
|
42
|
+
syncSystem,
|
|
43
|
+
core
|
|
44
|
+
});
|
|
45
|
+
(0, _attachDynamoDbPermissions.attachDynamoDbPermissions)({
|
|
46
|
+
app,
|
|
47
|
+
syncSystem,
|
|
48
|
+
core
|
|
49
|
+
});
|
|
50
|
+
(0, _attachS3Permissions.attachS3Permissions)({
|
|
51
|
+
app,
|
|
52
|
+
syncSystem,
|
|
53
|
+
core
|
|
54
|
+
});
|
|
55
|
+
/**
|
|
56
|
+
* Add the Service Manifest item to the Webiny system.
|
|
57
|
+
*/
|
|
58
|
+
(0, _addServiceManifest.addServiceManifest)({
|
|
59
|
+
app,
|
|
60
|
+
syncSystem
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
exports.attachSyncSystem = attachSyncSystem;
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_getSyncSystemOutput","require","_attachEventBusPermissions","_attachDynamoDbPermissions","_attachS3Permissions","_addServiceManifest","_attachCognitoPermissions","attachSyncSystem","params","app","core","env","syncSystem","getSyncSystemOutput","console","log","attachEventBusPermissions","attachCognitoPermissions","attachDynamoDbPermissions","attachS3Permissions","addServiceManifest","exports"],"sources":["index.ts"],"sourcesContent":["import { getSyncSystemOutput } from \"~/apps/syncSystem/getSyncSystemOutput.js\";\nimport { attachEventBusPermissions } from \"./attachEventBusPermissions.js\";\nimport { attachDynamoDbPermissions } from \"~/apps/syncSystem/api/attachDynamoDbPermissions.js\";\nimport { attachS3Permissions } from \"~/apps/syncSystem/api/attachS3Permissions.js\";\nimport { addServiceManifest } from \"~/apps/syncSystem/api/addServiceManifest.js\";\nimport type { PulumiApp } from \"@webiny/pulumi/types\";\nimport type { CoreOutput } from \"~/apps/common/CoreOutput.js\";\nimport type { WithServiceManifest } from \"~/utils/withServiceManifest.js\";\nimport { attachCognitoPermissions } from \"~/apps/syncSystem/api/attachCognitoPermissions.js\";\n\nexport interface IAttachSyncSystemParams {\n app: PulumiApp & WithServiceManifest;\n env: string;\n core: CoreOutput;\n}\n\nexport const attachSyncSystem = (params: IAttachSyncSystemParams) => {\n const { app, core, env } = params;\n\n const syncSystem = getSyncSystemOutput({\n env\n });\n /**\n * Possibly no sync system deployed - no need to do anything at that point.\n * At this point, if sync system was deployed, and it is not anymore, all resources after this check will disappear.\n */\n if (!syncSystem) {\n console.log(`No Sync System deployed in env \"${env}\". Skipping...`);\n return;\n }\n /**\n * Permissions for Webiny system to access Sync System resources.\n */\n attachEventBusPermissions({\n app,\n syncSystem\n });\n /**\n * Permissions for Sync System to access Webiny system resources.\n */\n attachCognitoPermissions({\n app,\n syncSystem,\n core\n });\n attachDynamoDbPermissions({\n app,\n syncSystem,\n core\n });\n attachS3Permissions({\n app,\n syncSystem,\n core\n });\n /**\n * Add the Service Manifest item to the Webiny system.\n */\n addServiceManifest({\n app,\n syncSystem\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AACA,IAAAE,0BAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AAIA,IAAAK,yBAAA,GAAAL,OAAA;AAQO,MAAMM,gBAAgB,GAAIC,MAA+B,IAAK;EACjE,MAAM;IAAEC,GAAG;IAAEC,IAAI;IAAEC;EAAI,CAAC,GAAGH,MAAM;EAEjC,MAAMI,UAAU,GAAG,IAAAC,wCAAmB,EAAC;IACnCF;EACJ,CAAC,CAAC;EACF;AACJ;AACA;AACA;EACI,IAAI,CAACC,UAAU,EAAE;IACbE,OAAO,CAACC,GAAG,CAAC,mCAAmCJ,GAAG,gBAAgB,CAAC;IACnE;EACJ;EACA;AACJ;AACA;EACI,IAAAK,oDAAyB,EAAC;IACtBP,GAAG;IACHG;EACJ,CAAC,CAAC;EACF;AACJ;AACA;EACI,IAAAK,kDAAwB,EAAC;IACrBR,GAAG;IACHG,UAAU;IACVF;EACJ,CAAC,CAAC;EACF,IAAAQ,oDAAyB,EAAC;IACtBT,GAAG;IACHG,UAAU;IACVF;EACJ,CAAC,CAAC;EACF,IAAAS,wCAAmB,EAAC;IAChBV,GAAG;IACHG,UAAU;IACVF;EACJ,CAAC,CAAC;EACF;AACJ;AACA;EACI,IAAAU,sCAAkB,EAAC;IACfX,GAAG;IACHG;EACJ,CAAC,CAAC;AACN,CAAC;AAACS,OAAA,CAAAd,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const APPS_SYNC_SYSTEM_PATH = "apps/sync";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["APPS_SYNC_SYSTEM_PATH","exports"],"sources":["constants.ts"],"sourcesContent":["export const APPS_SYNC_SYSTEM_PATH = \"apps/sync\";\n"],"mappings":";;;;;;AAAO,MAAMA,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.createSyncResourceName = void 0;
|
|
8
|
+
var _kebabCase = _interopRequireDefault(require("lodash/kebabCase"));
|
|
9
|
+
/**
|
|
10
|
+
* Need to have standardized resource names.
|
|
11
|
+
*/
|
|
12
|
+
const createSyncResourceName = name => {
|
|
13
|
+
return `sync-system-${(0, _kebabCase.default)(name)}`;
|
|
14
|
+
};
|
|
15
|
+
exports.createSyncResourceName = createSyncResourceName;
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=createSyncResourceName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_kebabCase","_interopRequireDefault","require","createSyncResourceName","name","kebabCase","exports"],"sources":["createSyncResourceName.ts"],"sourcesContent":["import kebabCase from \"lodash/kebabCase\";\n\n/**\n * Need to have standardized resource names.\n */\nexport const createSyncResourceName = (name: string) => {\n return `sync-system-${kebabCase(name)}`;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA;AACA;AACA;AACO,MAAMC,sBAAsB,GAAIC,IAAY,IAAK;EACpD,OAAO,eAAe,IAAAC,kBAAS,EAACD,IAAI,CAAC,EAAE;AAC3C,CAAC;AAACE,OAAA,CAAAH,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
2
|
+
import type { PulumiAppParam } from "@webiny/pulumi";
|
|
2
3
|
export type SyncSystemPulumiApp = ReturnType<typeof createSyncSystemPulumiApp>;
|
|
3
4
|
export interface ElasticsearchConfig {
|
|
4
5
|
domainName: string;
|
|
@@ -47,17 +48,25 @@ export interface CreateSyncSystemPulumiAppParams {
|
|
|
47
48
|
*/
|
|
48
49
|
productionEnvironments?: PulumiAppParam<string[]>;
|
|
49
50
|
}
|
|
50
|
-
export declare function createSyncSystemPulumiApp(projectAppParams
|
|
51
|
+
export declare function createSyncSystemPulumiApp(projectAppParams: CreateSyncSystemPulumiAppParams): import("@webiny/pulumi").PulumiApp<{
|
|
52
|
+
sqs: pulumi.Output<import("@pulumi/aws/sqs/queue.js").Queue>;
|
|
53
|
+
dynamoDb: pulumi.Output<import("@pulumi/aws/dynamodb/table.js").Table>;
|
|
54
|
+
eventBus: pulumi.Output<import("@pulumi/aws/cloudwatch/eventBus.js").EventBus>;
|
|
55
|
+
eventBusRule: pulumi.Output<import("@pulumi/aws/cloudwatch/eventRule.js").EventRule>;
|
|
56
|
+
eventBusTarget: pulumi.Output<import("@pulumi/aws/cloudwatch/eventTarget.js").EventTarget>;
|
|
57
|
+
eventBusPolicy: pulumi.Output<import("@pulumi/aws/sqs/queuePolicy.js").QueuePolicy>;
|
|
51
58
|
/**
|
|
52
|
-
*
|
|
59
|
+
* Worker Lambda - used to resolve actions triggered by the resolver Lambda.
|
|
53
60
|
*/
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
+
workerLambda: pulumi.Output<import("@pulumi/aws/lambda/function.js").Function>;
|
|
62
|
+
workerLambdaRole: pulumi.Output<import("@pulumi/aws/iam/role.js").Role>;
|
|
63
|
+
/**
|
|
64
|
+
* Resolver Lambda - gets hit by SQS and resolves the data.
|
|
65
|
+
*/
|
|
66
|
+
resolverLambda: pulumi.Output<import("@pulumi/aws/lambda/function.js").Function>;
|
|
67
|
+
resolverLambdaRole: pulumi.Output<import("@pulumi/aws/iam/role.js").Role>;
|
|
68
|
+
resolverLambdaPolicy: pulumi.Output<import("@pulumi/aws/iam/policy.js").Policy>;
|
|
69
|
+
resolverLambdaEventSourceMapping: pulumi.Output<import("@pulumi/aws/lambda/eventSourceMapping.js").EventSourceMapping>;
|
|
61
70
|
/**
|
|
62
71
|
* Systems we are connecting together.
|
|
63
72
|
*/
|