@webiny/project-aws 6.0.0-rc.1 → 6.0.0-rc.3

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.
Files changed (61) hide show
  1. package/_templates/extensions/ApiLambdaFunction/package.json +9 -0
  2. package/_templates/extensions/ApiLambdaFunction/tsconfig.json +7 -0
  3. package/_templates/extensions/ApiLambdaFunction/webiny.config.ts +8 -0
  4. package/admin.d.ts +2 -2
  5. package/admin.js +1 -1
  6. package/admin.js.map +1 -1
  7. package/api.d.ts +2 -2
  8. package/api.js +2 -2
  9. package/api.js.map +1 -1
  10. package/apps/createAdminApp.d.ts +2 -0
  11. package/exports/extensions.d.ts +0 -1
  12. package/exports/extensions.js +0 -1
  13. package/exports/extensions.js.map +1 -1
  14. package/extensions/ApiLambdaFunction.d.ts +11 -0
  15. package/extensions/ApiLambdaFunction.js +68 -0
  16. package/extensions/ApiLambdaFunction.js.map +1 -0
  17. package/extensions/OpenSearch.js +3 -4
  18. package/extensions/OpenSearch.js.map +1 -1
  19. package/extensions/ProjectAws/definitions.js +1 -3
  20. package/extensions/ProjectAws/definitions.js.map +1 -1
  21. package/extensions/ProjectAws.js +5 -2
  22. package/extensions/ProjectAws.js.map +1 -1
  23. package/extensions/definitions.d.ts +3 -0
  24. package/extensions/definitions.js +6 -0
  25. package/extensions/definitions.js.map +1 -0
  26. package/extensions/index.d.ts +1 -0
  27. package/extensions/index.js +1 -0
  28. package/extensions/index.js.map +1 -1
  29. package/index.d.ts +0 -1
  30. package/index.js +0 -1
  31. package/index.js.map +1 -1
  32. package/infra.d.ts +10 -0
  33. package/infra.js +5 -2
  34. package/infra.js.map +1 -1
  35. package/package.json +12 -15
  36. package/project.d.ts +91 -0
  37. package/project.js +4 -3
  38. package/project.js.map +1 -1
  39. package/pulumi/apps/admin/createAdminPulumiApp.d.ts +2 -0
  40. package/pulumi/apps/api/ApiCloudfront.js +1 -1
  41. package/pulumi/apps/api/ApiCloudfront.js.map +1 -1
  42. package/pulumi/apps/api/createApiPulumiApp.js +2 -3
  43. package/pulumi/apps/api/createApiPulumiApp.js.map +1 -1
  44. package/pulumi/apps/core/CoreAuditLogsDynamo.js +67 -19
  45. package/pulumi/apps/core/CoreAuditLogsDynamo.js.map +1 -1
  46. package/pulumi/apps/core/CoreDynamo.js +18 -5
  47. package/pulumi/apps/core/CoreDynamo.js.map +1 -1
  48. package/pulumi/apps/core/CoreFileManager.d.ts +3 -0
  49. package/pulumi/apps/core/CoreFileManager.js +35 -7
  50. package/pulumi/apps/core/CoreFileManager.js.map +1 -1
  51. package/pulumi/apps/core/LogDynamo.js +39 -11
  52. package/pulumi/apps/core/LogDynamo.js.map +1 -1
  53. package/pulumi/apps/core/createCorePulumiApp.js +2 -3
  54. package/pulumi/apps/core/createCorePulumiApp.js.map +1 -1
  55. package/pulumi/apps/createAppBucket.d.ts +4 -0
  56. package/pulumi/apps/createAppBucket.js +42 -2
  57. package/pulumi/apps/createAppBucket.js.map +1 -1
  58. package/pulumi/apps/react/createReactPulumiApp.d.ts +2 -0
  59. package/security.d.ts +0 -356
  60. package/security.js +0 -53
  61. package/security.js.map +0 -1
package/project.d.ts CHANGED
@@ -45,4 +45,95 @@ export declare const Project: {
45
45
  password: string;
46
46
  };
47
47
  }>>;
48
+ FeatureFlags: import("@webiny/project/defineExtension/defineExtension.js").ExtensionComponent<import("zod").ZodObject<{
49
+ features: import("zod").ZodObject<{
50
+ multiTenancy: import("zod").ZodOptional<import("zod").ZodBoolean>;
51
+ advancedPublishingWorkflow: import("zod").ZodOptional<import("zod").ZodBoolean>;
52
+ advancedAccessControlLayer: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodBoolean, import("zod").ZodObject<{
53
+ teams: import("zod").ZodOptional<import("zod").ZodBoolean>;
54
+ privateFiles: import("zod").ZodOptional<import("zod").ZodBoolean>;
55
+ folderLevelPermissions: import("zod").ZodOptional<import("zod").ZodBoolean>;
56
+ hcmsFieldPermissions: import("zod").ZodOptional<import("zod").ZodBoolean>;
57
+ }, "strip", import("zod").ZodTypeAny, {
58
+ teams?: boolean | undefined;
59
+ privateFiles?: boolean | undefined;
60
+ folderLevelPermissions?: boolean | undefined;
61
+ hcmsFieldPermissions?: boolean | undefined;
62
+ }, {
63
+ teams?: boolean | undefined;
64
+ privateFiles?: boolean | undefined;
65
+ folderLevelPermissions?: boolean | undefined;
66
+ hcmsFieldPermissions?: boolean | undefined;
67
+ }>]>>;
68
+ auditLogs: import("zod").ZodOptional<import("zod").ZodBoolean>;
69
+ recordLocking: import("zod").ZodOptional<import("zod").ZodBoolean>;
70
+ fileManager: import("zod").ZodOptional<import("zod").ZodObject<{
71
+ threatDetection: import("zod").ZodOptional<import("zod").ZodBoolean>;
72
+ }, "strip", import("zod").ZodTypeAny, {
73
+ threatDetection?: boolean | undefined;
74
+ }, {
75
+ threatDetection?: boolean | undefined;
76
+ }>>;
77
+ }, "strip", import("zod").ZodTypeAny, {
78
+ multiTenancy?: boolean | undefined;
79
+ advancedPublishingWorkflow?: boolean | undefined;
80
+ advancedAccessControlLayer?: boolean | {
81
+ teams?: boolean | undefined;
82
+ privateFiles?: boolean | undefined;
83
+ folderLevelPermissions?: boolean | undefined;
84
+ hcmsFieldPermissions?: boolean | undefined;
85
+ } | undefined;
86
+ auditLogs?: boolean | undefined;
87
+ recordLocking?: boolean | undefined;
88
+ fileManager?: {
89
+ threatDetection?: boolean | undefined;
90
+ } | undefined;
91
+ }, {
92
+ multiTenancy?: boolean | undefined;
93
+ advancedPublishingWorkflow?: boolean | undefined;
94
+ advancedAccessControlLayer?: boolean | {
95
+ teams?: boolean | undefined;
96
+ privateFiles?: boolean | undefined;
97
+ folderLevelPermissions?: boolean | undefined;
98
+ hcmsFieldPermissions?: boolean | undefined;
99
+ } | undefined;
100
+ auditLogs?: boolean | undefined;
101
+ recordLocking?: boolean | undefined;
102
+ fileManager?: {
103
+ threatDetection?: boolean | undefined;
104
+ } | undefined;
105
+ }>;
106
+ }, "strip", import("zod").ZodTypeAny, {
107
+ features: {
108
+ multiTenancy?: boolean | undefined;
109
+ advancedPublishingWorkflow?: boolean | undefined;
110
+ advancedAccessControlLayer?: boolean | {
111
+ teams?: boolean | undefined;
112
+ privateFiles?: boolean | undefined;
113
+ folderLevelPermissions?: boolean | undefined;
114
+ hcmsFieldPermissions?: boolean | undefined;
115
+ } | undefined;
116
+ auditLogs?: boolean | undefined;
117
+ recordLocking?: boolean | undefined;
118
+ fileManager?: {
119
+ threatDetection?: boolean | undefined;
120
+ } | undefined;
121
+ };
122
+ }, {
123
+ features: {
124
+ multiTenancy?: boolean | undefined;
125
+ advancedPublishingWorkflow?: boolean | undefined;
126
+ advancedAccessControlLayer?: boolean | {
127
+ teams?: boolean | undefined;
128
+ privateFiles?: boolean | undefined;
129
+ folderLevelPermissions?: boolean | undefined;
130
+ hcmsFieldPermissions?: boolean | undefined;
131
+ } | undefined;
132
+ auditLogs?: boolean | undefined;
133
+ recordLocking?: boolean | undefined;
134
+ fileManager?: {
135
+ threatDetection?: boolean | undefined;
136
+ } | undefined;
137
+ };
138
+ }>>;
48
139
  };
package/project.js CHANGED
@@ -1,9 +1,10 @@
1
- import { ProjectId, Telemetry } from "@webiny/project/extensions/index.js";
1
+ import { ProjectId, Telemetry, FeatureFlags } from "@webiny/project/extensions/index.js";
2
2
  import { AutoInstall } from "./extensions/index.js";
3
3
  export const Project = {
4
4
  Id: ProjectId,
5
- Telemetry: Telemetry,
6
- AutoInstall: AutoInstall
5
+ Telemetry,
6
+ AutoInstall,
7
+ FeatureFlags
7
8
  };
8
9
 
9
10
  //# sourceMappingURL=project.js.map
package/project.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["ProjectId","Telemetry","AutoInstall","Project","Id"],"sources":["project.ts"],"sourcesContent":["import { ProjectId, Telemetry } from \"@webiny/project/extensions/index.js\";\nimport { AutoInstall } from \"./extensions/index.js\";\n\nexport const Project = {\n Id: ProjectId,\n Telemetry: Telemetry,\n AutoInstall: AutoInstall\n};\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,SAAS,QAAQ,qCAAqC;AAC1E,SAASC,WAAW;AAEpB,OAAO,MAAMC,OAAO,GAAG;EACnBC,EAAE,EAAEJ,SAAS;EACbC,SAAS,EAAEA,SAAS;EACpBC,WAAW,EAAEA;AACjB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["ProjectId","Telemetry","FeatureFlags","AutoInstall","Project","Id"],"sources":["project.ts"],"sourcesContent":["import { ProjectId, Telemetry, FeatureFlags } from \"@webiny/project/extensions/index.js\";\nimport { AutoInstall } from \"./extensions/index.js\";\n\nexport const Project = {\n Id: ProjectId,\n Telemetry,\n AutoInstall,\n FeatureFlags\n};\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,SAAS,EAAEC,YAAY,QAAQ,qCAAqC;AACxF,SAASC,WAAW;AAEpB,OAAO,MAAMC,OAAO,GAAG;EACnBC,EAAE,EAAEL,SAAS;EACbC,SAAS;EACTE,WAAW;EACXD;AACJ,CAAC","ignoreList":[]}
@@ -3,6 +3,8 @@ export type AdminPulumiApp = ReturnType<typeof createReactPulumiApp>;
3
3
  export declare const createAdminPulumiApp: () => Promise<import("@webiny/pulumi/types").PulumiApp<{
4
4
  cloudfront: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/cloudfront/distribution").Distribution>;
5
5
  bucket: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/s3/bucket").Bucket>;
6
+ bucketOwnershipControls: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/s3/bucketOwnershipControls").BucketOwnershipControls>;
7
+ bucketAcl: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/s3/bucketAcl").BucketAcl>;
6
8
  originIdentity: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/cloudfront/originAccessIdentity").OriginAccessIdentity>;
7
9
  origin: import("@pulumi/aws/types/input").cloudfront.DistributionOrigin;
8
10
  bucketPublicAccessBlock: import("@webiny/pulumi/PulumiAppResource").PulumiAppResource<typeof import("@pulumi/aws/s3/bucketPublicAccessBlock").BucketPublicAccessBlock>;
@@ -9,7 +9,7 @@ export const ApiCloudfront = createAppModule({
9
9
  forward: "whitelist",
10
10
  whitelistedNames: ["wby-id-token"]
11
11
  };
12
- const forwardHeaders = ["Origin", "Authorization", "Accept", "Accept-Language", "X-Tenant"];
12
+ const forwardHeaders = ["Origin", "Authorization", "Accept", "Accept-Language", "X-Tenant", "X-Webiny-Sdk"];
13
13
  return app.addResource(aws.cloudfront.Distribution, {
14
14
  name: "api-cloudfront",
15
15
  config: {
@@ -1 +1 @@
1
- {"version":3,"names":["aws","createAppModule","ApiGateway","ApiCloudfront","name","config","app","gateway","getModule","cookies","forward","whitelistedNames","forwardHeaders","addResource","cloudfront","Distribution","httpVersion","waitForDeployment","isIpv6Enabled","enabled","defaultCacheBehavior","compress","allowedMethods","cachedMethods","forwardedValues","headers","queryString","minTtl","defaultTtl","maxTtl","targetOriginId","api","output","viewerProtocolPolicy","orderedCacheBehaviors","pathPattern","origins","domainName","stage","invokeUrl","apply","url","URL","hostname","originPath","pathname","originId","customOriginConfig","httpPort","httpsPort","originProtocolPolicy","originSslProtocols","restrictions","geoRestriction","restrictionType","viewerCertificate","cloudfrontDefaultCertificate","opts","ignoreChanges"],"sources":["ApiCloudfront.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport type { PulumiApp, PulumiAppModule } from \"@webiny/pulumi\";\nimport { createAppModule } from \"@webiny/pulumi\";\n\nimport { ApiGateway } from \"./ApiGateway.js\";\n\nexport type ApiCloudfront = PulumiAppModule<typeof ApiCloudfront>;\n\nexport const ApiCloudfront = createAppModule({\n name: \"ApiCloudfront\",\n config(app: PulumiApp) {\n const gateway = app.getModule(ApiGateway);\n\n const cookies = {\n forward: \"whitelist\",\n whitelistedNames: [\"wby-id-token\"]\n };\n\n const forwardHeaders = [\"Origin\", \"Authorization\", \"Accept\", \"Accept-Language\", \"X-Tenant\"];\n\n return app.addResource(aws.cloudfront.Distribution, {\n name: \"api-cloudfront\",\n config: {\n httpVersion: \"http2and3\",\n waitForDeployment: false,\n isIpv6Enabled: true,\n enabled: true,\n defaultCacheBehavior: {\n compress: true,\n allowedMethods: [\"GET\", \"HEAD\", \"OPTIONS\", \"PUT\", \"POST\", \"PATCH\", \"DELETE\"],\n cachedMethods: [\"GET\", \"HEAD\", \"OPTIONS\"],\n forwardedValues: {\n cookies,\n headers: forwardHeaders,\n queryString: true\n },\n // MinTTL <= DefaultTTL <= MaxTTL\n minTtl: 0,\n defaultTtl: 0,\n maxTtl: 86400,\n targetOriginId: gateway.api.output.name,\n viewerProtocolPolicy: \"allow-all\"\n },\n orderedCacheBehaviors: [\n {\n compress: true,\n allowedMethods: [\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PUT\",\n \"POST\",\n \"PATCH\",\n \"DELETE\"\n ],\n cachedMethods: [\"GET\", \"HEAD\", \"OPTIONS\"],\n forwardedValues: {\n cookies: {\n forward: \"none\"\n },\n headers: forwardHeaders,\n queryString: true\n },\n pathPattern: \"/cms*\",\n viewerProtocolPolicy: \"allow-all\",\n targetOriginId: gateway.api.output.name\n },\n {\n compress: true,\n allowedMethods: [\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PUT\",\n \"POST\",\n \"PATCH\",\n \"DELETE\"\n ],\n cachedMethods: [\"GET\", \"HEAD\", \"OPTIONS\"],\n forwardedValues: {\n cookies: {\n forward: \"none\"\n },\n headers: forwardHeaders,\n queryString: true\n },\n pathPattern: \"/wb/*\",\n viewerProtocolPolicy: \"allow-all\",\n targetOriginId: gateway.api.output.name\n },\n {\n allowedMethods: [\"HEAD\", \"GET\", \"OPTIONS\"],\n cachedMethods: [\"HEAD\", \"GET\", \"OPTIONS\"],\n forwardedValues: {\n cookies: {\n forward: \"none\"\n },\n headers: forwardHeaders,\n queryString: true\n },\n // MinTTL <= DefaultTTL <= MaxTTL\n minTtl: 0,\n defaultTtl: 0,\n maxTtl: 2592000,\n pathPattern: \"/files/*\",\n viewerProtocolPolicy: \"allow-all\",\n targetOriginId: gateway.api.output.name\n },\n {\n allowedMethods: [\"HEAD\", \"GET\", \"OPTIONS\"],\n cachedMethods: [\"HEAD\", \"GET\", \"OPTIONS\"],\n forwardedValues: {\n cookies: cookies,\n headers: forwardHeaders,\n queryString: true\n },\n // MinTTL <= DefaultTTL <= MaxTTL\n minTtl: 0,\n defaultTtl: 0,\n maxTtl: 2592000,\n pathPattern: \"/private/*\",\n viewerProtocolPolicy: \"allow-all\",\n targetOriginId: gateway.api.output.name\n }\n ],\n origins: [\n {\n domainName: gateway.stage.output.invokeUrl.apply(\n (url: string) => new URL(url).hostname\n ),\n originPath: gateway.stage.output.invokeUrl.apply(\n (url: string) => new URL(url).pathname\n ),\n originId: gateway.api.output.name,\n customOriginConfig: {\n httpPort: 80,\n httpsPort: 443,\n originProtocolPolicy: \"https-only\",\n originSslProtocols: [\"TLSv1.2\"]\n }\n }\n ],\n restrictions: {\n geoRestriction: {\n restrictionType: \"none\"\n }\n },\n viewerCertificate: {\n cloudfrontDefaultCertificate: true\n }\n },\n opts: {\n // We are ignoring changes to the \"staging\" property. This is because of the following.\n // With the 5.41.0 release of Webiny, we also upgraded Pulumi to v6. This introduced a change\n // with how Cloudfront distributions are deployed, where Pulumi now also controls the new\n // `staging` property.\n // If not set, Pulumi will default it to `false`. Which is fine, but, the problem is\n // that, because this property did not exist before, it will always be considered as a change\n // upon deployment.\n // We might think this is fine, but, the problem is that a change in this property causes\n // a full replacement of the Cloudfront distribution, which is not acceptable. Especially\n // if a custom domain has already been associated with the distribution. This then would\n // require the user to disassociate the domain, wait for the distribution to be replaced,\n // and then re-associate the domain. This is not a good experience.\n ignoreChanges: [\"staging\"]\n }\n });\n }\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["aws","createAppModule","ApiGateway","ApiCloudfront","name","config","app","gateway","getModule","cookies","forward","whitelistedNames","forwardHeaders","addResource","cloudfront","Distribution","httpVersion","waitForDeployment","isIpv6Enabled","enabled","defaultCacheBehavior","compress","allowedMethods","cachedMethods","forwardedValues","headers","queryString","minTtl","defaultTtl","maxTtl","targetOriginId","api","output","viewerProtocolPolicy","orderedCacheBehaviors","pathPattern","origins","domainName","stage","invokeUrl","apply","url","URL","hostname","originPath","pathname","originId","customOriginConfig","httpPort","httpsPort","originProtocolPolicy","originSslProtocols","restrictions","geoRestriction","restrictionType","viewerCertificate","cloudfrontDefaultCertificate","opts","ignoreChanges"],"sources":["ApiCloudfront.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport type { PulumiApp, PulumiAppModule } from \"@webiny/pulumi\";\nimport { createAppModule } from \"@webiny/pulumi\";\n\nimport { ApiGateway } from \"./ApiGateway.js\";\n\nexport type ApiCloudfront = PulumiAppModule<typeof ApiCloudfront>;\n\nexport const ApiCloudfront = createAppModule({\n name: \"ApiCloudfront\",\n config(app: PulumiApp) {\n const gateway = app.getModule(ApiGateway);\n\n const cookies = {\n forward: \"whitelist\",\n whitelistedNames: [\"wby-id-token\"]\n };\n\n const forwardHeaders = [\n \"Origin\",\n \"Authorization\",\n \"Accept\",\n \"Accept-Language\",\n \"X-Tenant\",\n \"X-Webiny-Sdk\"\n ];\n\n return app.addResource(aws.cloudfront.Distribution, {\n name: \"api-cloudfront\",\n config: {\n httpVersion: \"http2and3\",\n waitForDeployment: false,\n isIpv6Enabled: true,\n enabled: true,\n defaultCacheBehavior: {\n compress: true,\n allowedMethods: [\"GET\", \"HEAD\", \"OPTIONS\", \"PUT\", \"POST\", \"PATCH\", \"DELETE\"],\n cachedMethods: [\"GET\", \"HEAD\", \"OPTIONS\"],\n forwardedValues: {\n cookies,\n headers: forwardHeaders,\n queryString: true\n },\n // MinTTL <= DefaultTTL <= MaxTTL\n minTtl: 0,\n defaultTtl: 0,\n maxTtl: 86400,\n targetOriginId: gateway.api.output.name,\n viewerProtocolPolicy: \"allow-all\"\n },\n orderedCacheBehaviors: [\n {\n compress: true,\n allowedMethods: [\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PUT\",\n \"POST\",\n \"PATCH\",\n \"DELETE\"\n ],\n cachedMethods: [\"GET\", \"HEAD\", \"OPTIONS\"],\n forwardedValues: {\n cookies: {\n forward: \"none\"\n },\n headers: forwardHeaders,\n queryString: true\n },\n pathPattern: \"/cms*\",\n viewerProtocolPolicy: \"allow-all\",\n targetOriginId: gateway.api.output.name\n },\n {\n compress: true,\n allowedMethods: [\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PUT\",\n \"POST\",\n \"PATCH\",\n \"DELETE\"\n ],\n cachedMethods: [\"GET\", \"HEAD\", \"OPTIONS\"],\n forwardedValues: {\n cookies: {\n forward: \"none\"\n },\n headers: forwardHeaders,\n queryString: true\n },\n pathPattern: \"/wb/*\",\n viewerProtocolPolicy: \"allow-all\",\n targetOriginId: gateway.api.output.name\n },\n {\n allowedMethods: [\"HEAD\", \"GET\", \"OPTIONS\"],\n cachedMethods: [\"HEAD\", \"GET\", \"OPTIONS\"],\n forwardedValues: {\n cookies: {\n forward: \"none\"\n },\n headers: forwardHeaders,\n queryString: true\n },\n // MinTTL <= DefaultTTL <= MaxTTL\n minTtl: 0,\n defaultTtl: 0,\n maxTtl: 2592000,\n pathPattern: \"/files/*\",\n viewerProtocolPolicy: \"allow-all\",\n targetOriginId: gateway.api.output.name\n },\n {\n allowedMethods: [\"HEAD\", \"GET\", \"OPTIONS\"],\n cachedMethods: [\"HEAD\", \"GET\", \"OPTIONS\"],\n forwardedValues: {\n cookies: cookies,\n headers: forwardHeaders,\n queryString: true\n },\n // MinTTL <= DefaultTTL <= MaxTTL\n minTtl: 0,\n defaultTtl: 0,\n maxTtl: 2592000,\n pathPattern: \"/private/*\",\n viewerProtocolPolicy: \"allow-all\",\n targetOriginId: gateway.api.output.name\n }\n ],\n origins: [\n {\n domainName: gateway.stage.output.invokeUrl.apply(\n (url: string) => new URL(url).hostname\n ),\n originPath: gateway.stage.output.invokeUrl.apply(\n (url: string) => new URL(url).pathname\n ),\n originId: gateway.api.output.name,\n customOriginConfig: {\n httpPort: 80,\n httpsPort: 443,\n originProtocolPolicy: \"https-only\",\n originSslProtocols: [\"TLSv1.2\"]\n }\n }\n ],\n restrictions: {\n geoRestriction: {\n restrictionType: \"none\"\n }\n },\n viewerCertificate: {\n cloudfrontDefaultCertificate: true\n }\n },\n opts: {\n // We are ignoring changes to the \"staging\" property. This is because of the following.\n // With the 5.41.0 release of Webiny, we also upgraded Pulumi to v6. This introduced a change\n // with how Cloudfront distributions are deployed, where Pulumi now also controls the new\n // `staging` property.\n // If not set, Pulumi will default it to `false`. Which is fine, but, the problem is\n // that, because this property did not exist before, it will always be considered as a change\n // upon deployment.\n // We might think this is fine, but, the problem is that a change in this property causes\n // a full replacement of the Cloudfront distribution, which is not acceptable. Especially\n // if a custom domain has already been associated with the distribution. This then would\n // require the user to disassociate the domain, wait for the distribution to be replaced,\n // and then re-associate the domain. This is not a good experience.\n ignoreChanges: [\"staging\"]\n }\n });\n }\n});\n"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,6 @@ import { ApiScheduler } from "./ApiScheduler.js";
9
9
  import { getProjectSdk } from "@webiny/project";
10
10
  import { getVpcConfigFromExtension } from "../extensions/getVpcConfigFromExtension.js";
11
11
  import { getOsConfigFromExtension } from "../extensions/getOsConfigFromExtension.js";
12
- import { License } from "@webiny/wcp";
13
12
  import { handleGuardDutyEvents } from "./handleGuardDutyEvents.js";
14
13
  import { ApiPulumi } from "@webiny/project/abstractions/index.js";
15
14
  export const createApiPulumiApp = () => {
@@ -50,9 +49,9 @@ export const createApiPulumiApp = () => {
50
49
 
51
50
  // <-------------------- Enterprise start -------------------->
52
51
  app.addHandler(async () => {
53
- const license = await License.fromEnvironment();
52
+ const featureFlags = await sdk.getFeatureFlags();
54
53
  const usingAdvancedVpcParams = vpcExtensionsConfig && typeof vpcExtensionsConfig !== "boolean";
55
- if (license.canUseFileManagerThreatDetection()) {
54
+ if (featureFlags.isFileManagerThreatDetectionEnabled()) {
56
55
  handleGuardDutyEvents(app);
57
56
  }
58
57
 
@@ -1 +1 @@
1
- {"version":3,"names":["aws","createPulumiApp","isResourceOfType","ApiBackgroundTask","ApiCloudfront","ApiFileManager","ApiGateway","ApiGraphql","ApiMigration","ApiWebsocket","CoreOutput","VpcConfig","addDomainsUrlsOutputs","withCommonLambdaEnvVariables","withServiceManifest","getEnvVariableAwsRegion","applyAwsResourceTags","getAwsAccountId","ApiScheduler","getProjectSdk","getVpcConfigFromExtension","getOsConfigFromExtension","License","handleGuardDutyEvents","ApiPulumi","createApiPulumiApp","baseApp","name","path","program","app","sdk","projectConfig","getProjectConfig","pulumiResourceNamePrefix","getPulumiResourceNamePrefix","vpcExtensionsConfig","openSearchExtensionConfig","searchEngineParams","params","domainName","process","env","AWS_OS_DOMAIN_NAME","indexPrefix","OPENSEARCH_INDEX_PREFIX","sharedIndexes","OPENSEARCH_SHARED_INDEXES","onResource","resource","startsWith","addHandler","license","fromEnvironment","usingAdvancedVpcParams","canUseFileManagerThreatDetection","addResource","useExistingVpc","lambdaFunctionsVpcConfig","Error","lambda","Function","canUseVpc","meta","config","vpcConfig","iam","Role","isLambdaFunctionRole","RolePolicyAttachment","role","output","policyArn","ManagedPolicy","AWSLambdaVPCAccessExecutionRole","pulumiHandlers","getContainer","resolve","execute","isProduction","core","addModule","vpcEnabled","enabled","graphql","COGNITO_REGION","COGNITO_USER_POOL_ID","cognitoUserPoolId","DB_TABLE","primaryDynamodbTableName","DB_TABLE_LOG","logDynamodbTableName","DB_TABLE_AUDIT_LOGS","auditLogsDynamodbTableName","DB_TABLE_OPENSEARCH","opensearchDynamodbTableName","OPENSEARCH_ENDPOINT","opensearchDomainEndpoint","S3_BUCKET","fileManagerBucketId","EVENT_BUS","eventBusArn","OKTA_ISSUER","websocket","fileManager","apiGateway","method","function","functions","arn","download","cloudfront","backgroundTask","migration","scheduler","addOutputs","awsAccountId","region","cognitoAppClientId","cognitoUserPoolPasswordPolicy","dynamoDbTable","auditLogsDynamoDbTable","migrationLambdaArn","graphqlLambdaName","graphqlLambdaRole","graphqlLambdaRoleName","backgroundTaskLambdaArn","backgroundTaskStepFunctionArn","stepFunction","fileManagerDownloadLambdaArn","websocketApiId","websocketApi","id","websocketApiUrl","schedulerLambdaInvokeRole","invokeRole","dynamoDbOpensearchTable","cloudfrontDistribution","map","distributionDomain","distributionUrl","usedDomain","usedUrl","addServiceManifest","manifest","bgTaskSfn","resources","distributionId","domain","apply","v","lambdaArn","roleArn"],"sources":["createApiPulumiApp.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport { createPulumiApp, isResourceOfType, type PulumiApp } from \"@webiny/pulumi\";\nimport {\n ApiBackgroundTask,\n ApiCloudfront,\n ApiFileManager,\n ApiGateway,\n ApiGraphql,\n ApiMigration,\n ApiWebsocket,\n CoreOutput,\n VpcConfig\n} from \"~/pulumi/apps/index.js\";\nimport {\n addDomainsUrlsOutputs,\n withCommonLambdaEnvVariables,\n withServiceManifest\n} from \"~/pulumi/utils/index.js\";\nimport { getEnvVariableAwsRegion } from \"~/pulumi/env/awsRegion.js\";\n// import { attachSyncSystem } from \"../syncSystem/api/index.js\";\nimport { applyAwsResourceTags, getAwsAccountId } from \"~/pulumi/apps/awsUtils.js\";\nimport type { WithServiceManifest } from \"~/pulumi/utils/withServiceManifest.js\";\nimport { ApiScheduler } from \"~/pulumi/apps/api/ApiScheduler.js\";\nimport { getProjectSdk } from \"@webiny/project\";\nimport { getVpcConfigFromExtension } from \"~/pulumi/apps/extensions/getVpcConfigFromExtension.js\";\nimport { getOsConfigFromExtension } from \"~/pulumi/apps/extensions/getOsConfigFromExtension.js\";\nimport { License } from \"@webiny/wcp\";\nimport { handleGuardDutyEvents } from \"./handleGuardDutyEvents.js\";\nimport { ApiPulumi } from \"@webiny/project/abstractions/index.js\";\n\nexport type ApiPulumiApp = ReturnType<typeof createApiPulumiApp>;\n\nexport const createApiPulumiApp = () => {\n const baseApp = createPulumiApp({\n name: \"api\",\n path: \"apps/api\",\n program: async (app: PulumiApp & WithServiceManifest) => {\n const sdk = await getProjectSdk();\n const projectConfig = await sdk.getProjectConfig();\n\n const pulumiResourceNamePrefix = await sdk.getPulumiResourceNamePrefix();\n const vpcExtensionsConfig = getVpcConfigFromExtension(projectConfig);\n const openSearchExtensionConfig = getOsConfigFromExtension(projectConfig);\n\n let searchEngineParams: typeof openSearchExtensionConfig | null = null;\n\n if (openSearchExtensionConfig) {\n searchEngineParams = openSearchExtensionConfig;\n }\n\n if (searchEngineParams) {\n const params = searchEngineParams;\n if (typeof params === \"object\") {\n if (params.domainName) {\n process.env.AWS_OS_DOMAIN_NAME = params.domainName;\n }\n\n if (params.indexPrefix) {\n process.env.OPENSEARCH_INDEX_PREFIX = params.indexPrefix;\n }\n\n if (params.sharedIndexes) {\n process.env.OPENSEARCH_SHARED_INDEXES = \"true\";\n }\n }\n }\n\n if (pulumiResourceNamePrefix) {\n app.onResource(resource => {\n if (!resource.name.startsWith(pulumiResourceNamePrefix)) {\n resource.name = `${pulumiResourceNamePrefix}${resource.name}`;\n }\n });\n }\n\n // <-------------------- Enterprise start -------------------->\n app.addHandler(async () => {\n const license = await License.fromEnvironment();\n\n const usingAdvancedVpcParams =\n vpcExtensionsConfig && typeof vpcExtensionsConfig !== \"boolean\";\n\n if (license.canUseFileManagerThreatDetection()) {\n handleGuardDutyEvents(app as ApiPulumiApp);\n }\n\n // Not using advanced VPC params? Then immediately exit.\n if (usingAdvancedVpcParams) {\n const { onResource, addResource } = app;\n const { useExistingVpc } = vpcExtensionsConfig;\n\n // 1. We first deal with \"existing VPC\" setup.\n if (useExistingVpc) {\n if (!useExistingVpc.lambdaFunctionsVpcConfig) {\n throw new Error(\n \"Cannot specify `useExistingVpc` parameter because the `lambdaFunctionsVpcConfig` parameter wasn't provided.\"\n );\n }\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.lambda.Function)) {\n const canUseVpc = resource.meta.canUseVpc !== false;\n if (canUseVpc) {\n resource.config.vpcConfig(\n useExistingVpc!.lambdaFunctionsVpcConfig\n );\n }\n }\n\n if (isResourceOfType(resource, aws.iam.Role)) {\n if (resource.meta.isLambdaFunctionRole) {\n addResource(aws.iam.RolePolicyAttachment, {\n name: `${resource.name}-vpc-access-execution-role`,\n config: {\n role: resource.output.name,\n policyArn:\n aws.iam.ManagedPolicy\n .AWSLambdaVPCAccessExecutionRole\n }\n });\n }\n }\n });\n }\n }\n });\n // <-------------------- Enterprise end -------------------->\n\n // Overrides must be applied via a handler, registered at the very start of the program.\n // By doing this, we're ensuring user's adjustments are not applied to late.\n const pulumiHandlers = sdk.getContainer().resolve(ApiPulumi);\n\n app.addHandler(() => {\n return pulumiHandlers.execute(app as unknown as ApiPulumiApp);\n });\n\n const isProduction = app.env.isProduction;\n\n // Register core output as a module available to all the other modules\n const core = app.addModule(CoreOutput);\n\n // Register VPC config module to be available to other modules.\n const vpcEnabled =\n vpcExtensionsConfig === true ||\n typeof vpcExtensionsConfig === \"object\" ||\n isProduction;\n\n app.addModule(VpcConfig, { enabled: vpcEnabled });\n\n const graphql = app.addModule(ApiGraphql, {\n env: {\n COGNITO_REGION: getEnvVariableAwsRegion(),\n COGNITO_USER_POOL_ID: core.cognitoUserPoolId,\n DB_TABLE: core.primaryDynamodbTableName,\n DB_TABLE_LOG: core.logDynamodbTableName,\n DB_TABLE_AUDIT_LOGS: core.auditLogsDynamodbTableName,\n DB_TABLE_OPENSEARCH: core.opensearchDynamodbTableName,\n OPENSEARCH_ENDPOINT: core.opensearchDomainEndpoint,\n\n // Not required. Useful for testing purposes / ephemeral environments.\n // https://www.webiny.com/docs/key-topics/ci-cd/testing/slow-ephemeral-environments\n OPENSEARCH_INDEX_PREFIX: process.env.OPENSEARCH_INDEX_PREFIX,\n OPENSEARCH_SHARED_INDEXES: process.env.OPENSEARCH_SHARED_INDEXES,\n\n S3_BUCKET: core.fileManagerBucketId,\n EVENT_BUS: core.eventBusArn,\n // TODO: move to okta plugin\n OKTA_ISSUER: process.env[\"OKTA_ISSUER\"]\n }\n });\n\n const websocket = app.addModule(ApiWebsocket);\n\n const fileManager = app.addModule(ApiFileManager, {\n env: {\n DB_TABLE: core.primaryDynamodbTableName,\n DB_TABLE_LOG: core.logDynamodbTableName,\n DB_TABLE_AUDIT_LOGS: core.auditLogsDynamodbTableName\n }\n });\n\n const apiGateway = app.addModule(ApiGateway, {\n \"graphql-post\": {\n path: \"/graphql\",\n method: \"POST\",\n function: graphql.functions.graphql.output.arn\n },\n \"graphql-options\": {\n path: \"/graphql\",\n method: \"OPTIONS\",\n function: graphql.functions.graphql.output.arn\n },\n \"files-any\": {\n path: \"/files/{path+}\",\n method: \"ANY\",\n function: fileManager.functions.download.output.arn\n },\n \"private-any\": {\n path: \"/private/{path+}\",\n method: \"ANY\",\n function: fileManager.functions.download.output.arn\n },\n \"cms-post\": {\n path: \"/cms/{key+}\",\n method: \"POST\",\n function: graphql.functions.graphql.output.arn\n },\n \"cms-options\": {\n path: \"/cms/{key+}\",\n method: \"OPTIONS\",\n function: graphql.functions.graphql.output.arn\n },\n \"redirects-get\": {\n path: \"/wb/redirects\",\n method: \"GET\",\n function: graphql.functions.graphql.output.arn\n },\n \"redirects-options\": {\n path: \"/wb/redirects\",\n method: \"OPTIONS\",\n function: graphql.functions.graphql.output.arn\n },\n \"files-catch-all\": {\n path: \"/{path+}\",\n method: \"ANY\",\n function: fileManager.functions.download.output.arn\n }\n });\n\n const cloudfront = app.addModule(ApiCloudfront);\n const backgroundTask = app.addModule(ApiBackgroundTask);\n const migration = app.addModule(ApiMigration);\n const scheduler = app.addModule(ApiScheduler);\n\n // const domains = app.getParam(projectAppParams.domains);\n // if (domains) {\n // applyCustomDomain(cloudfront, domains);\n // }\n\n app.addOutputs({\n awsAccountId: getAwsAccountId(app),\n region: aws.config.region,\n cognitoUserPoolId: core.cognitoUserPoolId,\n cognitoAppClientId: core.cognitoAppClientId,\n cognitoUserPoolPasswordPolicy: core.cognitoUserPoolPasswordPolicy,\n dynamoDbTable: core.primaryDynamodbTableName,\n auditLogsDynamoDbTable: core.auditLogsDynamodbTableName,\n migrationLambdaArn: migration.function.output.arn,\n graphqlLambdaName: graphql.functions.graphql.output.name,\n graphqlLambdaRole: graphql.role.output.arn,\n graphqlLambdaRoleName: graphql.role.output.name,\n backgroundTaskLambdaArn: backgroundTask.backgroundTask.output.arn,\n backgroundTaskStepFunctionArn: backgroundTask.stepFunction.output.arn,\n fileManagerDownloadLambdaArn: fileManager.functions.download.output.arn,\n websocketApiId: websocket.websocketApi.output.id,\n websocketApiUrl: websocket.websocketApiUrl,\n schedulerLambdaInvokeRole: scheduler.invokeRole.output.arn\n });\n\n // Only add `dynamoDbOpensearchTable` output if using search engine (ES/OS).\n if (searchEngineParams) {\n app.addOutputs({\n dynamoDbOpensearchTable: core.opensearchDynamodbTableName\n });\n }\n\n app.addHandler(() => {\n addDomainsUrlsOutputs({\n app,\n cloudfrontDistribution: cloudfront,\n map: {\n distributionDomain: \"cloudfrontApiDomain\",\n distributionUrl: \"cloudfrontApiUrl\",\n usedDomain: \"apiDomain\",\n usedUrl: \"apiUrl\"\n }\n });\n });\n // /**\n // * We need to attach the Sync System if it exists.\n // */\n // await attachSyncSystem({\n // app,\n // core,\n // env: app.params.run.env\n // });\n\n // Applies internal and user-defined AWS tags.\n await applyAwsResourceTags(\"api\");\n\n return {\n fileManager,\n graphql,\n apiGateway,\n websocket,\n cloudfront,\n migration,\n backgroundTask,\n scheduler\n };\n }\n });\n\n const app = withServiceManifest(withCommonLambdaEnvVariables(baseApp));\n\n app.addHandler(() => {\n app.addServiceManifest({\n name: \"api\",\n manifest: {\n bgTaskSfn: baseApp.resources.backgroundTask.stepFunction.output.arn,\n cloudfront: {\n distributionId: baseApp.resources.cloudfront.output.id,\n domain: baseApp.resources.cloudfront.output.domainName.apply(\n v => `https://${v}`\n )\n }\n }\n });\n\n app.addServiceManifest({\n name: \"scheduler\",\n manifest: {\n lambdaArn: baseApp.resources.graphql.functions.graphql.output.arn,\n roleArn: baseApp.resources.scheduler.invokeRole.output.arn\n }\n });\n });\n\n return app;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["aws","createPulumiApp","isResourceOfType","ApiBackgroundTask","ApiCloudfront","ApiFileManager","ApiGateway","ApiGraphql","ApiMigration","ApiWebsocket","CoreOutput","VpcConfig","addDomainsUrlsOutputs","withCommonLambdaEnvVariables","withServiceManifest","getEnvVariableAwsRegion","applyAwsResourceTags","getAwsAccountId","ApiScheduler","getProjectSdk","getVpcConfigFromExtension","getOsConfigFromExtension","handleGuardDutyEvents","ApiPulumi","createApiPulumiApp","baseApp","name","path","program","app","sdk","projectConfig","getProjectConfig","pulumiResourceNamePrefix","getPulumiResourceNamePrefix","vpcExtensionsConfig","openSearchExtensionConfig","searchEngineParams","params","domainName","process","env","AWS_OS_DOMAIN_NAME","indexPrefix","OPENSEARCH_INDEX_PREFIX","sharedIndexes","OPENSEARCH_SHARED_INDEXES","onResource","resource","startsWith","addHandler","featureFlags","getFeatureFlags","usingAdvancedVpcParams","isFileManagerThreatDetectionEnabled","addResource","useExistingVpc","lambdaFunctionsVpcConfig","Error","lambda","Function","canUseVpc","meta","config","vpcConfig","iam","Role","isLambdaFunctionRole","RolePolicyAttachment","role","output","policyArn","ManagedPolicy","AWSLambdaVPCAccessExecutionRole","pulumiHandlers","getContainer","resolve","execute","isProduction","core","addModule","vpcEnabled","enabled","graphql","COGNITO_REGION","COGNITO_USER_POOL_ID","cognitoUserPoolId","DB_TABLE","primaryDynamodbTableName","DB_TABLE_LOG","logDynamodbTableName","DB_TABLE_AUDIT_LOGS","auditLogsDynamodbTableName","DB_TABLE_OPENSEARCH","opensearchDynamodbTableName","OPENSEARCH_ENDPOINT","opensearchDomainEndpoint","S3_BUCKET","fileManagerBucketId","EVENT_BUS","eventBusArn","OKTA_ISSUER","websocket","fileManager","apiGateway","method","function","functions","arn","download","cloudfront","backgroundTask","migration","scheduler","addOutputs","awsAccountId","region","cognitoAppClientId","cognitoUserPoolPasswordPolicy","dynamoDbTable","auditLogsDynamoDbTable","migrationLambdaArn","graphqlLambdaName","graphqlLambdaRole","graphqlLambdaRoleName","backgroundTaskLambdaArn","backgroundTaskStepFunctionArn","stepFunction","fileManagerDownloadLambdaArn","websocketApiId","websocketApi","id","websocketApiUrl","schedulerLambdaInvokeRole","invokeRole","dynamoDbOpensearchTable","cloudfrontDistribution","map","distributionDomain","distributionUrl","usedDomain","usedUrl","addServiceManifest","manifest","bgTaskSfn","resources","distributionId","domain","apply","v","lambdaArn","roleArn"],"sources":["createApiPulumiApp.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport { createPulumiApp, isResourceOfType, type PulumiApp } from \"@webiny/pulumi\";\nimport {\n ApiBackgroundTask,\n ApiCloudfront,\n ApiFileManager,\n ApiGateway,\n ApiGraphql,\n ApiMigration,\n ApiWebsocket,\n CoreOutput,\n VpcConfig\n} from \"~/pulumi/apps/index.js\";\nimport {\n addDomainsUrlsOutputs,\n withCommonLambdaEnvVariables,\n withServiceManifest\n} from \"~/pulumi/utils/index.js\";\nimport { getEnvVariableAwsRegion } from \"~/pulumi/env/awsRegion.js\";\n// import { attachSyncSystem } from \"../syncSystem/api/index.js\";\nimport { applyAwsResourceTags, getAwsAccountId } from \"~/pulumi/apps/awsUtils.js\";\nimport type { WithServiceManifest } from \"~/pulumi/utils/withServiceManifest.js\";\nimport { ApiScheduler } from \"~/pulumi/apps/api/ApiScheduler.js\";\nimport { getProjectSdk } from \"@webiny/project\";\nimport { getVpcConfigFromExtension } from \"~/pulumi/apps/extensions/getVpcConfigFromExtension.js\";\nimport { getOsConfigFromExtension } from \"~/pulumi/apps/extensions/getOsConfigFromExtension.js\";\nimport { handleGuardDutyEvents } from \"./handleGuardDutyEvents.js\";\nimport { ApiPulumi } from \"@webiny/project/abstractions/index.js\";\n\nexport type ApiPulumiApp = ReturnType<typeof createApiPulumiApp>;\n\nexport const createApiPulumiApp = () => {\n const baseApp = createPulumiApp({\n name: \"api\",\n path: \"apps/api\",\n program: async (app: PulumiApp & WithServiceManifest) => {\n const sdk = await getProjectSdk();\n const projectConfig = await sdk.getProjectConfig();\n\n const pulumiResourceNamePrefix = await sdk.getPulumiResourceNamePrefix();\n const vpcExtensionsConfig = getVpcConfigFromExtension(projectConfig);\n const openSearchExtensionConfig = getOsConfigFromExtension(projectConfig);\n\n let searchEngineParams: typeof openSearchExtensionConfig | null = null;\n\n if (openSearchExtensionConfig) {\n searchEngineParams = openSearchExtensionConfig;\n }\n\n if (searchEngineParams) {\n const params = searchEngineParams;\n if (typeof params === \"object\") {\n if (params.domainName) {\n process.env.AWS_OS_DOMAIN_NAME = params.domainName;\n }\n\n if (params.indexPrefix) {\n process.env.OPENSEARCH_INDEX_PREFIX = params.indexPrefix;\n }\n\n if (params.sharedIndexes) {\n process.env.OPENSEARCH_SHARED_INDEXES = \"true\";\n }\n }\n }\n\n if (pulumiResourceNamePrefix) {\n app.onResource(resource => {\n if (!resource.name.startsWith(pulumiResourceNamePrefix)) {\n resource.name = `${pulumiResourceNamePrefix}${resource.name}`;\n }\n });\n }\n\n // <-------------------- Enterprise start -------------------->\n app.addHandler(async () => {\n const featureFlags = await sdk.getFeatureFlags();\n\n const usingAdvancedVpcParams =\n vpcExtensionsConfig && typeof vpcExtensionsConfig !== \"boolean\";\n\n if (featureFlags.isFileManagerThreatDetectionEnabled()) {\n handleGuardDutyEvents(app as ApiPulumiApp);\n }\n\n // Not using advanced VPC params? Then immediately exit.\n if (usingAdvancedVpcParams) {\n const { onResource, addResource } = app;\n const { useExistingVpc } = vpcExtensionsConfig;\n\n // 1. We first deal with \"existing VPC\" setup.\n if (useExistingVpc) {\n if (!useExistingVpc.lambdaFunctionsVpcConfig) {\n throw new Error(\n \"Cannot specify `useExistingVpc` parameter because the `lambdaFunctionsVpcConfig` parameter wasn't provided.\"\n );\n }\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.lambda.Function)) {\n const canUseVpc = resource.meta.canUseVpc !== false;\n if (canUseVpc) {\n resource.config.vpcConfig(\n useExistingVpc!.lambdaFunctionsVpcConfig\n );\n }\n }\n\n if (isResourceOfType(resource, aws.iam.Role)) {\n if (resource.meta.isLambdaFunctionRole) {\n addResource(aws.iam.RolePolicyAttachment, {\n name: `${resource.name}-vpc-access-execution-role`,\n config: {\n role: resource.output.name,\n policyArn:\n aws.iam.ManagedPolicy\n .AWSLambdaVPCAccessExecutionRole\n }\n });\n }\n }\n });\n }\n }\n });\n // <-------------------- Enterprise end -------------------->\n\n // Overrides must be applied via a handler, registered at the very start of the program.\n // By doing this, we're ensuring user's adjustments are not applied to late.\n const pulumiHandlers = sdk.getContainer().resolve(ApiPulumi);\n\n app.addHandler(() => {\n return pulumiHandlers.execute(app as unknown as ApiPulumiApp);\n });\n\n const isProduction = app.env.isProduction;\n\n // Register core output as a module available to all the other modules\n const core = app.addModule(CoreOutput);\n\n // Register VPC config module to be available to other modules.\n const vpcEnabled =\n vpcExtensionsConfig === true ||\n typeof vpcExtensionsConfig === \"object\" ||\n isProduction;\n\n app.addModule(VpcConfig, { enabled: vpcEnabled });\n\n const graphql = app.addModule(ApiGraphql, {\n env: {\n COGNITO_REGION: getEnvVariableAwsRegion(),\n COGNITO_USER_POOL_ID: core.cognitoUserPoolId,\n DB_TABLE: core.primaryDynamodbTableName,\n DB_TABLE_LOG: core.logDynamodbTableName,\n DB_TABLE_AUDIT_LOGS: core.auditLogsDynamodbTableName,\n DB_TABLE_OPENSEARCH: core.opensearchDynamodbTableName,\n OPENSEARCH_ENDPOINT: core.opensearchDomainEndpoint,\n\n // Not required. Useful for testing purposes / ephemeral environments.\n // https://www.webiny.com/docs/key-topics/ci-cd/testing/slow-ephemeral-environments\n OPENSEARCH_INDEX_PREFIX: process.env.OPENSEARCH_INDEX_PREFIX,\n OPENSEARCH_SHARED_INDEXES: process.env.OPENSEARCH_SHARED_INDEXES,\n\n S3_BUCKET: core.fileManagerBucketId,\n EVENT_BUS: core.eventBusArn,\n // TODO: move to okta plugin\n OKTA_ISSUER: process.env[\"OKTA_ISSUER\"]\n }\n });\n\n const websocket = app.addModule(ApiWebsocket);\n\n const fileManager = app.addModule(ApiFileManager, {\n env: {\n DB_TABLE: core.primaryDynamodbTableName,\n DB_TABLE_LOG: core.logDynamodbTableName,\n DB_TABLE_AUDIT_LOGS: core.auditLogsDynamodbTableName\n }\n });\n\n const apiGateway = app.addModule(ApiGateway, {\n \"graphql-post\": {\n path: \"/graphql\",\n method: \"POST\",\n function: graphql.functions.graphql.output.arn\n },\n \"graphql-options\": {\n path: \"/graphql\",\n method: \"OPTIONS\",\n function: graphql.functions.graphql.output.arn\n },\n \"files-any\": {\n path: \"/files/{path+}\",\n method: \"ANY\",\n function: fileManager.functions.download.output.arn\n },\n \"private-any\": {\n path: \"/private/{path+}\",\n method: \"ANY\",\n function: fileManager.functions.download.output.arn\n },\n \"cms-post\": {\n path: \"/cms/{key+}\",\n method: \"POST\",\n function: graphql.functions.graphql.output.arn\n },\n \"cms-options\": {\n path: \"/cms/{key+}\",\n method: \"OPTIONS\",\n function: graphql.functions.graphql.output.arn\n },\n \"redirects-get\": {\n path: \"/wb/redirects\",\n method: \"GET\",\n function: graphql.functions.graphql.output.arn\n },\n \"redirects-options\": {\n path: \"/wb/redirects\",\n method: \"OPTIONS\",\n function: graphql.functions.graphql.output.arn\n },\n \"files-catch-all\": {\n path: \"/{path+}\",\n method: \"ANY\",\n function: fileManager.functions.download.output.arn\n }\n });\n\n const cloudfront = app.addModule(ApiCloudfront);\n const backgroundTask = app.addModule(ApiBackgroundTask);\n const migration = app.addModule(ApiMigration);\n const scheduler = app.addModule(ApiScheduler);\n\n // const domains = app.getParam(projectAppParams.domains);\n // if (domains) {\n // applyCustomDomain(cloudfront, domains);\n // }\n\n app.addOutputs({\n awsAccountId: getAwsAccountId(app),\n region: aws.config.region,\n cognitoUserPoolId: core.cognitoUserPoolId,\n cognitoAppClientId: core.cognitoAppClientId,\n cognitoUserPoolPasswordPolicy: core.cognitoUserPoolPasswordPolicy,\n dynamoDbTable: core.primaryDynamodbTableName,\n auditLogsDynamoDbTable: core.auditLogsDynamodbTableName,\n migrationLambdaArn: migration.function.output.arn,\n graphqlLambdaName: graphql.functions.graphql.output.name,\n graphqlLambdaRole: graphql.role.output.arn,\n graphqlLambdaRoleName: graphql.role.output.name,\n backgroundTaskLambdaArn: backgroundTask.backgroundTask.output.arn,\n backgroundTaskStepFunctionArn: backgroundTask.stepFunction.output.arn,\n fileManagerDownloadLambdaArn: fileManager.functions.download.output.arn,\n websocketApiId: websocket.websocketApi.output.id,\n websocketApiUrl: websocket.websocketApiUrl,\n schedulerLambdaInvokeRole: scheduler.invokeRole.output.arn\n });\n\n // Only add `dynamoDbOpensearchTable` output if using search engine (ES/OS).\n if (searchEngineParams) {\n app.addOutputs({\n dynamoDbOpensearchTable: core.opensearchDynamodbTableName\n });\n }\n\n app.addHandler(() => {\n addDomainsUrlsOutputs({\n app,\n cloudfrontDistribution: cloudfront,\n map: {\n distributionDomain: \"cloudfrontApiDomain\",\n distributionUrl: \"cloudfrontApiUrl\",\n usedDomain: \"apiDomain\",\n usedUrl: \"apiUrl\"\n }\n });\n });\n // /**\n // * We need to attach the Sync System if it exists.\n // */\n // await attachSyncSystem({\n // app,\n // core,\n // env: app.params.run.env\n // });\n\n // Applies internal and user-defined AWS tags.\n await applyAwsResourceTags(\"api\");\n\n return {\n fileManager,\n graphql,\n apiGateway,\n websocket,\n cloudfront,\n migration,\n backgroundTask,\n scheduler\n };\n }\n });\n\n const app = withServiceManifest(withCommonLambdaEnvVariables(baseApp));\n\n app.addHandler(() => {\n app.addServiceManifest({\n name: \"api\",\n manifest: {\n bgTaskSfn: baseApp.resources.backgroundTask.stepFunction.output.arn,\n cloudfront: {\n distributionId: baseApp.resources.cloudfront.output.id,\n domain: baseApp.resources.cloudfront.output.domainName.apply(\n v => `https://${v}`\n )\n }\n }\n });\n\n app.addServiceManifest({\n name: \"scheduler\",\n manifest: {\n lambdaArn: baseApp.resources.graphql.functions.graphql.output.arn,\n roleArn: baseApp.resources.scheduler.invokeRole.output.arn\n }\n });\n });\n\n return app;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -75,52 +75,100 @@ export const CoreAuditLogsDynamo = createAppModule({
75
75
  rangeKey: "SK",
76
76
  globalSecondaryIndexes: [{
77
77
  name: "GSI_TENANT",
78
- hashKey: "GSI_TENANT",
78
+ keySchemas: [{
79
+ attributeName: "GSI_TENANT",
80
+ keyType: "HASH"
81
+ }],
79
82
  projectionType: "KEYS_ONLY"
80
83
  }, {
81
84
  name: "GSI1",
82
- hashKey: "GSI1_PK",
83
- rangeKey: "GSI1_SK",
85
+ keySchemas: [{
86
+ attributeName: "GSI1_PK",
87
+ keyType: "HASH"
88
+ }, {
89
+ attributeName: "GSI1_SK",
90
+ keyType: "RANGE"
91
+ }],
84
92
  projectionType: "KEYS_ONLY"
85
93
  }, {
86
94
  name: "GSI2",
87
- hashKey: "GSI2_PK",
88
- rangeKey: "GSI2_SK",
95
+ keySchemas: [{
96
+ attributeName: "GSI2_PK",
97
+ keyType: "HASH"
98
+ }, {
99
+ attributeName: "GSI2_SK",
100
+ keyType: "RANGE"
101
+ }],
89
102
  projectionType: "KEYS_ONLY"
90
103
  }, {
91
104
  name: "GSI3",
92
- hashKey: "GSI3_PK",
93
- rangeKey: "GSI3_SK",
105
+ keySchemas: [{
106
+ attributeName: "GSI3_PK",
107
+ keyType: "HASH"
108
+ }, {
109
+ attributeName: "GSI3_SK",
110
+ keyType: "RANGE"
111
+ }],
94
112
  projectionType: "KEYS_ONLY"
95
113
  }, {
96
114
  name: "GSI4",
97
- hashKey: "GSI4_PK",
98
- rangeKey: "GSI4_SK",
115
+ keySchemas: [{
116
+ attributeName: "GSI4_PK",
117
+ keyType: "HASH"
118
+ }, {
119
+ attributeName: "GSI4_SK",
120
+ keyType: "RANGE"
121
+ }],
99
122
  projectionType: "KEYS_ONLY"
100
123
  }, {
101
124
  name: "GSI5",
102
- hashKey: "GSI5_PK",
103
- rangeKey: "GSI5_SK",
125
+ keySchemas: [{
126
+ attributeName: "GSI5_PK",
127
+ keyType: "HASH"
128
+ }, {
129
+ attributeName: "GSI5_SK",
130
+ keyType: "RANGE"
131
+ }],
104
132
  projectionType: "KEYS_ONLY"
105
133
  }, {
106
134
  name: "GSI6",
107
- hashKey: "GSI6_PK",
108
- rangeKey: "GSI6_SK",
135
+ keySchemas: [{
136
+ attributeName: "GSI6_PK",
137
+ keyType: "HASH"
138
+ }, {
139
+ attributeName: "GSI6_SK",
140
+ keyType: "RANGE"
141
+ }],
109
142
  projectionType: "KEYS_ONLY"
110
143
  }, {
111
144
  name: "GSI7",
112
- hashKey: "GSI7_PK",
113
- rangeKey: "GSI7_SK",
145
+ keySchemas: [{
146
+ attributeName: "GSI7_PK",
147
+ keyType: "HASH"
148
+ }, {
149
+ attributeName: "GSI7_SK",
150
+ keyType: "RANGE"
151
+ }],
114
152
  projectionType: "KEYS_ONLY"
115
153
  }, {
116
154
  name: "GSI8",
117
- hashKey: "GSI8_PK",
118
- rangeKey: "GSI8_SK",
155
+ keySchemas: [{
156
+ attributeName: "GSI8_PK",
157
+ keyType: "HASH"
158
+ }, {
159
+ attributeName: "GSI8_SK",
160
+ keyType: "RANGE"
161
+ }],
119
162
  projectionType: "KEYS_ONLY"
120
163
  }, {
121
164
  name: "GSI9",
122
- hashKey: "GSI9_PK",
123
- rangeKey: "GSI9_SK",
165
+ keySchemas: [{
166
+ attributeName: "GSI9_PK",
167
+ keyType: "HASH"
168
+ }, {
169
+ attributeName: "GSI9_SK",
170
+ keyType: "RANGE"
171
+ }],
124
172
  projectionType: "KEYS_ONLY"
125
173
  }],
126
174
  ttl: {
@@ -1 +1 @@
1
- {"version":3,"names":["aws","createAppModule","CoreAuditLogsDynamo","name","config","app","params","addResource","dynamodb","Table","attributes","type","billingMode","hashKey","rangeKey","globalSecondaryIndexes","projectionType","ttl","attributeName","enabled","opts","protect"],"sources":["CoreAuditLogsDynamo.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport type { PulumiApp, PulumiAppModule } from \"@webiny/pulumi\";\nimport { createAppModule } from \"@webiny/pulumi\";\n\nexport type CoreAuditLogsDynamo = PulumiAppModule<typeof CoreAuditLogsDynamo>;\n\nexport const CoreAuditLogsDynamo = createAppModule({\n name: \"AuditLogsDynamoDb\",\n config(app: PulumiApp, params: { protect: boolean }) {\n return app.addResource(aws.dynamodb.Table, {\n name: \"webiny-audit-logs\",\n config: {\n attributes: [\n { name: \"PK\", type: \"S\" },\n { name: \"SK\", type: \"S\" },\n { name: \"GSI_TENANT\", type: \"S\" },\n { name: \"GSI1_PK\", type: \"S\" },\n { name: \"GSI1_SK\", type: \"N\" },\n { name: \"GSI2_PK\", type: \"S\" },\n { name: \"GSI2_SK\", type: \"N\" },\n { name: \"GSI3_PK\", type: \"S\" },\n { name: \"GSI3_SK\", type: \"N\" },\n { name: \"GSI4_PK\", type: \"S\" },\n { name: \"GSI4_SK\", type: \"N\" },\n { name: \"GSI5_PK\", type: \"S\" },\n { name: \"GSI5_SK\", type: \"N\" },\n { name: \"GSI6_PK\", type: \"S\" },\n { name: \"GSI6_SK\", type: \"N\" },\n { name: \"GSI7_PK\", type: \"S\" },\n { name: \"GSI7_SK\", type: \"N\" },\n { name: \"GSI8_PK\", type: \"S\" },\n { name: \"GSI8_SK\", type: \"N\" },\n { name: \"GSI9_PK\", type: \"S\" },\n { name: \"GSI9_SK\", type: \"N\" }\n ],\n billingMode: \"PAY_PER_REQUEST\",\n hashKey: \"PK\",\n rangeKey: \"SK\",\n globalSecondaryIndexes: [\n {\n name: \"GSI_TENANT\",\n hashKey: \"GSI_TENANT\",\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI1\",\n hashKey: \"GSI1_PK\",\n rangeKey: \"GSI1_SK\",\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI2\",\n hashKey: \"GSI2_PK\",\n rangeKey: \"GSI2_SK\",\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI3\",\n hashKey: \"GSI3_PK\",\n rangeKey: \"GSI3_SK\",\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI4\",\n hashKey: \"GSI4_PK\",\n rangeKey: \"GSI4_SK\",\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI5\",\n hashKey: \"GSI5_PK\",\n rangeKey: \"GSI5_SK\",\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI6\",\n hashKey: \"GSI6_PK\",\n rangeKey: \"GSI6_SK\",\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI7\",\n hashKey: \"GSI7_PK\",\n rangeKey: \"GSI7_SK\",\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI8\",\n hashKey: \"GSI8_PK\",\n rangeKey: \"GSI8_SK\",\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI9\",\n hashKey: \"GSI9_PK\",\n rangeKey: \"GSI9_SK\",\n projectionType: \"KEYS_ONLY\"\n }\n ],\n ttl: {\n attributeName: \"expiresAt\",\n enabled: true\n }\n },\n opts: {\n protect: params.protect\n }\n });\n }\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["aws","createAppModule","CoreAuditLogsDynamo","name","config","app","params","addResource","dynamodb","Table","attributes","type","billingMode","hashKey","rangeKey","globalSecondaryIndexes","keySchemas","attributeName","keyType","projectionType","ttl","enabled","opts","protect"],"sources":["CoreAuditLogsDynamo.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport type { PulumiApp, PulumiAppModule } from \"@webiny/pulumi\";\nimport { createAppModule } from \"@webiny/pulumi\";\n\nexport type CoreAuditLogsDynamo = PulumiAppModule<typeof CoreAuditLogsDynamo>;\n\nexport const CoreAuditLogsDynamo = createAppModule({\n name: \"AuditLogsDynamoDb\",\n config(app: PulumiApp, params: { protect: boolean }) {\n return app.addResource(aws.dynamodb.Table, {\n name: \"webiny-audit-logs\",\n config: {\n attributes: [\n { name: \"PK\", type: \"S\" },\n { name: \"SK\", type: \"S\" },\n { name: \"GSI_TENANT\", type: \"S\" },\n { name: \"GSI1_PK\", type: \"S\" },\n { name: \"GSI1_SK\", type: \"N\" },\n { name: \"GSI2_PK\", type: \"S\" },\n { name: \"GSI2_SK\", type: \"N\" },\n { name: \"GSI3_PK\", type: \"S\" },\n { name: \"GSI3_SK\", type: \"N\" },\n { name: \"GSI4_PK\", type: \"S\" },\n { name: \"GSI4_SK\", type: \"N\" },\n { name: \"GSI5_PK\", type: \"S\" },\n { name: \"GSI5_SK\", type: \"N\" },\n { name: \"GSI6_PK\", type: \"S\" },\n { name: \"GSI6_SK\", type: \"N\" },\n { name: \"GSI7_PK\", type: \"S\" },\n { name: \"GSI7_SK\", type: \"N\" },\n { name: \"GSI8_PK\", type: \"S\" },\n { name: \"GSI8_SK\", type: \"N\" },\n { name: \"GSI9_PK\", type: \"S\" },\n { name: \"GSI9_SK\", type: \"N\" }\n ],\n billingMode: \"PAY_PER_REQUEST\",\n hashKey: \"PK\",\n rangeKey: \"SK\",\n globalSecondaryIndexes: [\n {\n name: \"GSI_TENANT\",\n keySchemas: [\n {\n attributeName: \"GSI_TENANT\",\n keyType: \"HASH\"\n }\n ],\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI1\",\n keySchemas: [\n {\n attributeName: \"GSI1_PK\",\n keyType: \"HASH\"\n },\n {\n attributeName: \"GSI1_SK\",\n keyType: \"RANGE\"\n }\n ],\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI2\",\n keySchemas: [\n {\n attributeName: \"GSI2_PK\",\n keyType: \"HASH\"\n },\n {\n attributeName: \"GSI2_SK\",\n keyType: \"RANGE\"\n }\n ],\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI3\",\n keySchemas: [\n {\n attributeName: \"GSI3_PK\",\n keyType: \"HASH\"\n },\n {\n attributeName: \"GSI3_SK\",\n keyType: \"RANGE\"\n }\n ],\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI4\",\n keySchemas: [\n {\n attributeName: \"GSI4_PK\",\n keyType: \"HASH\"\n },\n {\n attributeName: \"GSI4_SK\",\n keyType: \"RANGE\"\n }\n ],\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI5\",\n keySchemas: [\n {\n attributeName: \"GSI5_PK\",\n keyType: \"HASH\"\n },\n {\n attributeName: \"GSI5_SK\",\n keyType: \"RANGE\"\n }\n ],\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI6\",\n keySchemas: [\n {\n attributeName: \"GSI6_PK\",\n keyType: \"HASH\"\n },\n {\n attributeName: \"GSI6_SK\",\n keyType: \"RANGE\"\n }\n ],\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI7\",\n keySchemas: [\n {\n attributeName: \"GSI7_PK\",\n keyType: \"HASH\"\n },\n {\n attributeName: \"GSI7_SK\",\n keyType: \"RANGE\"\n }\n ],\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI8\",\n keySchemas: [\n {\n attributeName: \"GSI8_PK\",\n keyType: \"HASH\"\n },\n {\n attributeName: \"GSI8_SK\",\n keyType: \"RANGE\"\n }\n ],\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI9\",\n keySchemas: [\n {\n attributeName: \"GSI9_PK\",\n keyType: \"HASH\"\n },\n {\n attributeName: \"GSI9_SK\",\n keyType: \"RANGE\"\n }\n ],\n projectionType: \"KEYS_ONLY\"\n }\n ],\n ttl: {\n attributeName: \"expiresAt\",\n enabled: true\n }\n },\n opts: {\n protect: params.protect\n }\n });\n }\n});\n"],"mappings":"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","ignoreList":[]}
@@ -33,17 +33,30 @@ export const CoreDynamo = createAppModule({
33
33
  rangeKey: "SK",
34
34
  globalSecondaryIndexes: [{
35
35
  name: "GSI_TENANT",
36
- hashKey: "GSI_TENANT",
36
+ keySchemas: [{
37
+ attributeName: "GSI_TENANT",
38
+ keyType: "HASH"
39
+ }],
37
40
  projectionType: "KEYS_ONLY"
38
41
  }, {
39
42
  name: "GSI1",
40
- hashKey: "GSI1_PK",
41
- rangeKey: "GSI1_SK",
43
+ keySchemas: [{
44
+ attributeName: "GSI1_PK",
45
+ keyType: "HASH"
46
+ }, {
47
+ attributeName: "GSI1_SK",
48
+ keyType: "RANGE"
49
+ }],
42
50
  projectionType: "ALL"
43
51
  }, {
44
52
  name: "GSI2",
45
- hashKey: "GSI2_PK",
46
- rangeKey: "GSI2_SK",
53
+ keySchemas: [{
54
+ attributeName: "GSI2_PK",
55
+ keyType: "HASH"
56
+ }, {
57
+ attributeName: "GSI2_SK",
58
+ keyType: "RANGE"
59
+ }],
47
60
  projectionType: "ALL"
48
61
  }],
49
62
  ttl: {
@@ -1 +1 @@
1
- {"version":3,"names":["aws","createAppModule","CoreDynamo","name","config","app","params","addResource","dynamodb","Table","attributes","type","billingMode","hashKey","rangeKey","globalSecondaryIndexes","projectionType","ttl","attributeName","enabled","opts","protect"],"sources":["CoreDynamo.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport { createAppModule, type PulumiApp, type PulumiAppModule } from \"@webiny/pulumi\";\n\nexport type CoreDynamo = PulumiAppModule<typeof CoreDynamo>;\n\nexport const CoreDynamo = createAppModule({\n name: \"DynamoDb\",\n config(app: PulumiApp, params: { protect: boolean }) {\n return app.addResource(aws.dynamodb.Table, {\n name: \"webiny\",\n config: {\n attributes: [\n { name: \"PK\", type: \"S\" },\n { name: \"SK\", type: \"S\" },\n { name: \"GSI_TENANT\", type: \"S\" },\n { name: \"GSI1_PK\", type: \"S\" },\n { name: \"GSI1_SK\", type: \"S\" },\n { name: \"GSI2_PK\", type: \"S\" },\n { name: \"GSI2_SK\", type: \"S\" }\n ],\n billingMode: \"PAY_PER_REQUEST\",\n hashKey: \"PK\",\n rangeKey: \"SK\",\n globalSecondaryIndexes: [\n {\n name: \"GSI_TENANT\",\n hashKey: \"GSI_TENANT\",\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI1\",\n hashKey: \"GSI1_PK\",\n rangeKey: \"GSI1_SK\",\n projectionType: \"ALL\"\n },\n {\n name: \"GSI2\",\n hashKey: \"GSI2_PK\",\n rangeKey: \"GSI2_SK\",\n projectionType: \"ALL\"\n }\n ],\n ttl: {\n attributeName: \"expiresAt\",\n enabled: true\n }\n },\n opts: {\n protect: params.protect\n }\n });\n }\n});\n"],"mappings":"AAAA,OAAO,KAAKA,GAAG,MAAM,aAAa;AAClC,SAASC,eAAe,QAA8C,gBAAgB;AAItF,OAAO,MAAMC,UAAU,GAAGD,eAAe,CAAC;EACtCE,IAAI,EAAE,UAAU;EAChBC,MAAMA,CAACC,GAAc,EAAEC,MAA4B,EAAE;IACjD,OAAOD,GAAG,CAACE,WAAW,CAACP,GAAG,CAACQ,QAAQ,CAACC,KAAK,EAAE;MACvCN,IAAI,EAAE,QAAQ;MACdC,MAAM,EAAE;QACJM,UAAU,EAAE,CACR;UAAEP,IAAI,EAAE,IAAI;UAAEQ,IAAI,EAAE;QAAI,CAAC,EACzB;UAAER,IAAI,EAAE,IAAI;UAAEQ,IAAI,EAAE;QAAI,CAAC,EACzB;UAAER,IAAI,EAAE,YAAY;UAAEQ,IAAI,EAAE;QAAI,CAAC,EACjC;UAAER,IAAI,EAAE,SAAS;UAAEQ,IAAI,EAAE;QAAI,CAAC,EAC9B;UAAER,IAAI,EAAE,SAAS;UAAEQ,IAAI,EAAE;QAAI,CAAC,EAC9B;UAAER,IAAI,EAAE,SAAS;UAAEQ,IAAI,EAAE;QAAI,CAAC,EAC9B;UAAER,IAAI,EAAE,SAAS;UAAEQ,IAAI,EAAE;QAAI,CAAC,CACjC;QACDC,WAAW,EAAE,iBAAiB;QAC9BC,OAAO,EAAE,IAAI;QACbC,QAAQ,EAAE,IAAI;QACdC,sBAAsB,EAAE,CACpB;UACIZ,IAAI,EAAE,YAAY;UAClBU,OAAO,EAAE,YAAY;UACrBG,cAAc,EAAE;QACpB,CAAC,EACD;UACIb,IAAI,EAAE,MAAM;UACZU,OAAO,EAAE,SAAS;UAClBC,QAAQ,EAAE,SAAS;UACnBE,cAAc,EAAE;QACpB,CAAC,EACD;UACIb,IAAI,EAAE,MAAM;UACZU,OAAO,EAAE,SAAS;UAClBC,QAAQ,EAAE,SAAS;UACnBE,cAAc,EAAE;QACpB,CAAC,CACJ;QACDC,GAAG,EAAE;UACDC,aAAa,EAAE,WAAW;UAC1BC,OAAO,EAAE;QACb;MACJ,CAAC;MACDC,IAAI,EAAE;QACFC,OAAO,EAAEf,MAAM,CAACe;MACpB;IACJ,CAAC,CAAC;EACN;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["aws","createAppModule","CoreDynamo","name","config","app","params","addResource","dynamodb","Table","attributes","type","billingMode","hashKey","rangeKey","globalSecondaryIndexes","keySchemas","attributeName","keyType","projectionType","ttl","enabled","opts","protect"],"sources":["CoreDynamo.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport { createAppModule, type PulumiApp, type PulumiAppModule } from \"@webiny/pulumi\";\n\nexport type CoreDynamo = PulumiAppModule<typeof CoreDynamo>;\n\nexport const CoreDynamo = createAppModule({\n name: \"DynamoDb\",\n config(app: PulumiApp, params: { protect: boolean }) {\n return app.addResource(aws.dynamodb.Table, {\n name: \"webiny\",\n config: {\n attributes: [\n { name: \"PK\", type: \"S\" },\n { name: \"SK\", type: \"S\" },\n { name: \"GSI_TENANT\", type: \"S\" },\n { name: \"GSI1_PK\", type: \"S\" },\n { name: \"GSI1_SK\", type: \"S\" },\n { name: \"GSI2_PK\", type: \"S\" },\n { name: \"GSI2_SK\", type: \"S\" }\n ],\n billingMode: \"PAY_PER_REQUEST\",\n hashKey: \"PK\",\n rangeKey: \"SK\",\n globalSecondaryIndexes: [\n {\n name: \"GSI_TENANT\",\n keySchemas: [\n {\n attributeName: \"GSI_TENANT\",\n keyType: \"HASH\"\n }\n ],\n projectionType: \"KEYS_ONLY\"\n },\n {\n name: \"GSI1\",\n keySchemas: [\n {\n attributeName: \"GSI1_PK\",\n keyType: \"HASH\"\n },\n {\n attributeName: \"GSI1_SK\",\n keyType: \"RANGE\"\n }\n ],\n projectionType: \"ALL\"\n },\n {\n name: \"GSI2\",\n keySchemas: [\n {\n attributeName: \"GSI2_PK\",\n keyType: \"HASH\"\n },\n {\n attributeName: \"GSI2_SK\",\n keyType: \"RANGE\"\n }\n ],\n projectionType: \"ALL\"\n }\n ],\n ttl: {\n attributeName: \"expiresAt\",\n enabled: true\n }\n },\n opts: {\n protect: params.protect\n }\n });\n }\n});\n"],"mappings":"AAAA,OAAO,KAAKA,GAAG,MAAM,aAAa;AAClC,SAASC,eAAe,QAA8C,gBAAgB;AAItF,OAAO,MAAMC,UAAU,GAAGD,eAAe,CAAC;EACtCE,IAAI,EAAE,UAAU;EAChBC,MAAMA,CAACC,GAAc,EAAEC,MAA4B,EAAE;IACjD,OAAOD,GAAG,CAACE,WAAW,CAACP,GAAG,CAACQ,QAAQ,CAACC,KAAK,EAAE;MACvCN,IAAI,EAAE,QAAQ;MACdC,MAAM,EAAE;QACJM,UAAU,EAAE,CACR;UAAEP,IAAI,EAAE,IAAI;UAAEQ,IAAI,EAAE;QAAI,CAAC,EACzB;UAAER,IAAI,EAAE,IAAI;UAAEQ,IAAI,EAAE;QAAI,CAAC,EACzB;UAAER,IAAI,EAAE,YAAY;UAAEQ,IAAI,EAAE;QAAI,CAAC,EACjC;UAAER,IAAI,EAAE,SAAS;UAAEQ,IAAI,EAAE;QAAI,CAAC,EAC9B;UAAER,IAAI,EAAE,SAAS;UAAEQ,IAAI,EAAE;QAAI,CAAC,EAC9B;UAAER,IAAI,EAAE,SAAS;UAAEQ,IAAI,EAAE;QAAI,CAAC,EAC9B;UAAER,IAAI,EAAE,SAAS;UAAEQ,IAAI,EAAE;QAAI,CAAC,CACjC;QACDC,WAAW,EAAE,iBAAiB;QAC9BC,OAAO,EAAE,IAAI;QACbC,QAAQ,EAAE,IAAI;QACdC,sBAAsB,EAAE,CACpB;UACIZ,IAAI,EAAE,YAAY;UAClBa,UAAU,EAAE,CACR;YACIC,aAAa,EAAE,YAAY;YAC3BC,OAAO,EAAE;UACb,CAAC,CACJ;UACDC,cAAc,EAAE;QACpB,CAAC,EACD;UACIhB,IAAI,EAAE,MAAM;UACZa,UAAU,EAAE,CACR;YACIC,aAAa,EAAE,SAAS;YACxBC,OAAO,EAAE;UACb,CAAC,EACD;YACID,aAAa,EAAE,SAAS;YACxBC,OAAO,EAAE;UACb,CAAC,CACJ;UACDC,cAAc,EAAE;QACpB,CAAC,EACD;UACIhB,IAAI,EAAE,MAAM;UACZa,UAAU,EAAE,CACR;YACIC,aAAa,EAAE,SAAS;YACxBC,OAAO,EAAE;UACb,CAAC,EACD;YACID,aAAa,EAAE,SAAS;YACxBC,OAAO,EAAE;UACb,CAAC,CACJ;UACDC,cAAc,EAAE;QACpB,CAAC,CACJ;QACDC,GAAG,EAAE;UACDH,aAAa,EAAE,WAAW;UAC1BI,OAAO,EAAE;QACb;MACJ,CAAC;MACDC,IAAI,EAAE;QACFC,OAAO,EAAEjB,MAAM,CAACiB;MACpB;IACJ,CAAC,CAAC;EACN;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -2,7 +2,10 @@ import { type PulumiAppModule } from "@webiny/pulumi";
2
2
  export type CoreFileManger = PulumiAppModule<typeof CoreFileManger>;
3
3
  export declare const CoreFileManger: import("@webiny/pulumi").PulumiAppModuleDefinition<{
4
4
  bucket: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/s3/bucket").Bucket>;
5
+ bucketOwnershipControls: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/s3/bucketOwnershipControls").BucketOwnershipControls>;
6
+ bucketAcl: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/s3/bucketAcl").BucketAcl>;
5
7
  blockPublicAccessBlock: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/s3/bucketPublicAccessBlock").BucketPublicAccessBlock>;
8
+ bucketCorsConfiguration: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/s3/bucketCorsConfiguration").BucketCorsConfiguration>;
6
9
  }, {
7
10
  protect: boolean;
8
11
  }>;