@webiny/project-aws 6.0.0 → 6.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/_templates/appTemplates/api/graphql/package.json +3 -5
  2. package/_templates/appTemplates/api/graphql/src/index.ts +2 -0
  3. package/_templates/extensions/OpenSearch/api/graphql/src/index.ts +6 -4
  4. package/_templates/extensions/OpenSearch/coreDdbToEsHandler/dynamoToElastic/src/index.ts +6 -7
  5. package/abstractions/services/ApiStackOutputService.d.ts +0 -1
  6. package/abstractions/services/ApiStackOutputService.js.map +1 -1
  7. package/admin.d.ts +4 -16
  8. package/api.d.ts +4 -16
  9. package/apps/createApiApp.d.ts +0 -3
  10. package/cli.d.ts +2 -6
  11. package/exports/{infra/index.d.ts → infra.d.ts} +1 -1
  12. package/exports/{infra/index.js → infra.js} +2 -2
  13. package/exports/{infra/index.js.map → infra.js.map} +1 -1
  14. package/extensions/ApiLambdaFunction.d.ts +3 -9
  15. package/extensions/AwsDefaultRegion.d.ts +1 -5
  16. package/extensions/OpenSearch.d.ts +1 -11
  17. package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js +4 -0
  18. package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js.map +1 -1
  19. package/extensions/ProjectAws/AutoInstall.d.ts +2 -26
  20. package/extensions/ProjectAws/BuildAppWorkspace.js +1 -1
  21. package/extensions/ProjectAws/BuildAppWorkspace.js.map +1 -1
  22. package/extensions/ProjectAws/EnsureAwsCredentialsBeforeDeploy.d.ts +10 -0
  23. package/extensions/ProjectAws/EnsureAwsCredentialsBeforeDeploy.js +40 -0
  24. package/extensions/ProjectAws/EnsureAwsCredentialsBeforeDeploy.js.map +1 -0
  25. package/extensions/ProjectAws.js +3 -2
  26. package/extensions/ProjectAws.js.map +1 -1
  27. package/infra.d.ts +80 -348
  28. package/infra.js +5 -1
  29. package/infra.js.map +1 -1
  30. package/package.json +16 -18
  31. package/project.d.ts +10 -116
  32. package/pulumi/apps/api/ApiOutput.d.ts +0 -1
  33. package/pulumi/apps/api/ApiOutput.js +0 -1
  34. package/pulumi/apps/api/ApiOutput.js.map +1 -1
  35. package/pulumi/apps/api/createApiPulumiApp.d.ts +0 -3
  36. package/pulumi/apps/api/createApiPulumiApp.js +1 -4
  37. package/pulumi/apps/api/createApiPulumiApp.js.map +1 -1
  38. package/pulumi/apps/api/index.d.ts +0 -1
  39. package/pulumi/apps/api/index.js +0 -1
  40. package/pulumi/apps/api/index.js.map +1 -1
  41. package/pulumi/apps/extensions/getBgDeploymentsConfigFromExtension.d.ts +6 -6
  42. package/pulumi/extensions/AdminCustomDomains.d.ts +6 -11
  43. package/pulumi/extensions/AwsTags.d.ts +1 -5
  44. package/pulumi/extensions/AwsTags.js +1 -1
  45. package/pulumi/extensions/AwsTags.js.map +1 -1
  46. package/pulumi/extensions/BlueGreenDeployments.d.ts +17 -115
  47. package/pulumi/extensions/BlueGreenDeployments.js +7 -4
  48. package/pulumi/extensions/BlueGreenDeployments.js.map +1 -1
  49. package/pulumi/extensions/OpenSearch.d.ts +1 -11
  50. package/pulumi/extensions/Vpc.d.ts +8 -64
  51. package/pulumi/extensions/index.d.ts +29 -187
  52. package/pulumi/types.d.ts +0 -1
  53. package/pulumi/types.js.map +1 -1
  54. package/utils/getTemplatesFolderPath.js +2 -2
  55. package/utils/getTemplatesFolderPath.js.map +1 -1
  56. package/_templates/appTemplates/api/migration/src/index.ts +0 -23
  57. package/_templates/appTemplates/api/migration/tsconfig.json +0 -6
  58. package/_templates/appTemplates/api/migration/webiny.config.ts +0 -8
  59. package/_templates/extensions/OpenSearch/api/migration/src/index.ts +0 -33
  60. package/extensions/ProjectAws/ExecuteDataMigrations.d.ts +0 -16
  61. package/extensions/ProjectAws/ExecuteDataMigrations.js +0 -69
  62. package/extensions/ProjectAws/ExecuteDataMigrations.js.map +0 -1
  63. package/pulumi/apps/api/ApiMigration.d.ts +0 -5
  64. package/pulumi/apps/api/ApiMigration.js +0 -82
  65. package/pulumi/apps/api/ApiMigration.js.map +0 -1
package/project.d.ts CHANGED
@@ -1,139 +1,33 @@
1
1
  export declare const Project: {
2
2
  Id: import("@webiny/project/defineExtension/defineExtension.js").ExtensionComponent<import("zod").ZodObject<{
3
- id: import("zod").ZodEffects<import("zod").ZodString, string, string>;
4
- }, "strip", import("zod").ZodTypeAny, {
5
- id: string;
6
- }, {
7
- id: string;
8
- }>>;
3
+ id: import("zod").ZodString;
4
+ }, import("zod/v4/core").$strip>>;
9
5
  Telemetry: import("@webiny/project/defineExtension/defineExtension.js").ExtensionComponent<import("zod").ZodObject<{
10
6
  enabled: import("zod").ZodDefault<import("zod").ZodBoolean>;
11
- }, "strip", import("zod").ZodTypeAny, {
12
- enabled: boolean;
13
- }, {
14
- enabled?: boolean | undefined;
15
- }>>;
7
+ }, import("zod/v4/core").$strip>>;
16
8
  AutoInstall: import("@webiny/project/defineExtension/defineExtension.js").ExtensionComponent<import("zod").ZodObject<{
17
9
  adminUser: import("zod").ZodObject<{
18
10
  firstName: import("zod").ZodString;
19
11
  lastName: import("zod").ZodString;
20
12
  email: import("zod").ZodString;
21
13
  password: import("zod").ZodString;
22
- }, "strip", import("zod").ZodTypeAny, {
23
- firstName: string;
24
- lastName: string;
25
- email: string;
26
- password: string;
27
- }, {
28
- firstName: string;
29
- lastName: string;
30
- email: string;
31
- password: string;
32
- }>;
33
- }, "strip", import("zod").ZodTypeAny, {
34
- adminUser: {
35
- firstName: string;
36
- lastName: string;
37
- email: string;
38
- password: string;
39
- };
40
- }, {
41
- adminUser: {
42
- firstName: string;
43
- lastName: string;
44
- email: string;
45
- password: string;
46
- };
47
- }>>;
14
+ }, import("zod/v4/core").$strip>;
15
+ }, import("zod/v4/core").$strip>>;
48
16
  FeatureFlags: import("@webiny/project/defineExtension/defineExtension.js").ExtensionComponent<import("zod").ZodObject<{
49
17
  features: import("zod").ZodObject<{
50
18
  multiTenancy: import("zod").ZodOptional<import("zod").ZodBoolean>;
51
19
  advancedPublishingWorkflow: import("zod").ZodOptional<import("zod").ZodBoolean>;
52
- advancedAccessControlLayer: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodBoolean, import("zod").ZodObject<{
20
+ advancedAccessControlLayer: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodBoolean, import("zod").ZodObject<{
53
21
  teams: import("zod").ZodOptional<import("zod").ZodBoolean>;
54
22
  privateFiles: import("zod").ZodOptional<import("zod").ZodBoolean>;
55
23
  folderLevelPermissions: import("zod").ZodOptional<import("zod").ZodBoolean>;
56
24
  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
- }>]>>;
25
+ }, import("zod/v4/core").$strip>]>>;
68
26
  auditLogs: import("zod").ZodOptional<import("zod").ZodBoolean>;
69
27
  recordLocking: import("zod").ZodOptional<import("zod").ZodBoolean>;
70
28
  fileManager: import("zod").ZodOptional<import("zod").ZodObject<{
71
29
  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
- }>>;
30
+ }, import("zod/v4/core").$strip>>;
31
+ }, import("zod/v4/core").$strip>;
32
+ }, import("zod/v4/core").$strip>>;
139
33
  };
@@ -12,7 +12,6 @@ export declare const ApiOutput: import("@webiny/pulumi").PulumiAppModuleDefiniti
12
12
  region: string;
13
13
  websocketApiId: string | number | boolean | string[] | number[] | undefined;
14
14
  websocketApiUrl: string;
15
- migrationLambdaArn: string;
16
15
  graphqlLambdaName: string | number | boolean | string[] | number[] | undefined;
17
16
  backgroundTaskLambdaArn: string | number | boolean | string[] | number[] | undefined;
18
17
  backgroundTaskStepFunctionArn: string | number | boolean | string[] | number[] | undefined;
@@ -20,7 +20,6 @@ export const ApiOutput = createAppModule({
20
20
  region: output["region"],
21
21
  websocketApiId: output["websocketApiId"],
22
22
  websocketApiUrl: output["websocketApiUrl"],
23
- migrationLambdaArn: output["migrationLambdaArn"],
24
23
  graphqlLambdaName: output["graphqlLambdaName"],
25
24
  backgroundTaskLambdaArn: output["backgroundTaskLambdaArn"],
26
25
  backgroundTaskStepFunctionArn: output["backgroundTaskStepFunctionArn"],
@@ -1 +1 @@
1
- {"version":3,"names":["createAppModule","getStackOutput","ApiOutput","name","config","app","addHandler","output","Error","apiDomain","apiUrl","graphqlLambdaRole","graphqlLambdaRoleName","cognitoAppClientId","cognitoUserPoolId","cognitoUserPoolPasswordPolicy","dynamoDbTable","region","websocketApiId","websocketApiUrl","migrationLambdaArn","graphqlLambdaName","backgroundTaskLambdaArn","backgroundTaskStepFunctionArn","fileManagerManageLambdaArn","fileManagerManageLambdaRole","fileManagerManageLambdaRoleName","fileManagerDownloadLambdaArn"],"sources":["ApiOutput.ts"],"sourcesContent":["import type { PulumiAppModule } from \"@webiny/pulumi\";\nimport { createAppModule } from \"@webiny/pulumi\";\nimport { getStackOutput } from \"@webiny/project\";\nimport { type IDefaultStackOutput } from \"~/pulumi/types.js\";\n\nexport type ApiOutput = PulumiAppModule<typeof ApiOutput>;\n\nexport const ApiOutput = createAppModule({\n name: \"ApiOutput\",\n config(app) {\n return app.addHandler(async () => {\n const output = await getStackOutput<IDefaultStackOutput>(\"api\");\n\n if (!output) {\n throw new Error(\"API application is not deployed.\");\n }\n\n return {\n apiDomain: output[\"apiDomain\"],\n apiUrl: output[\"apiUrl\"],\n graphqlLambdaRole: output[\"graphqlLambdaRole\"],\n graphqlLambdaRoleName: output[\"graphqlLambdaRoleName\"],\n cognitoAppClientId: output[\"cognitoAppClientId\"],\n cognitoUserPoolId: output[\"cognitoUserPoolId\"],\n cognitoUserPoolPasswordPolicy: output[\"cognitoUserPoolPasswordPolicy\"],\n dynamoDbTable: output[\"dynamoDbTable\"],\n region: output[\"region\"],\n websocketApiId: output[\"websocketApiId\"],\n websocketApiUrl: output[\"websocketApiUrl\"],\n migrationLambdaArn: output[\"migrationLambdaArn\"],\n graphqlLambdaName: output[\"graphqlLambdaName\"],\n backgroundTaskLambdaArn: output[\"backgroundTaskLambdaArn\"],\n backgroundTaskStepFunctionArn: output[\"backgroundTaskStepFunctionArn\"],\n fileManagerManageLambdaArn: output[\"fileManagerManageLambdaArn\"],\n fileManagerManageLambdaRole: output[\"fileManagerManageLambdaRole\"],\n fileManagerManageLambdaRoleName: output[\"fileManagerManageLambdaRoleName\"],\n fileManagerDownloadLambdaArn: output[\"fileManagerDownloadLambdaArn\"]\n };\n });\n }\n});\n"],"mappings":"AACA,SAASA,eAAe,QAAQ,gBAAgB;AAChD,SAASC,cAAc,QAAQ,iBAAiB;AAKhD,OAAO,MAAMC,SAAS,GAAGF,eAAe,CAAC;EACrCG,IAAI,EAAE,WAAW;EACjBC,MAAMA,CAACC,GAAG,EAAE;IACR,OAAOA,GAAG,CAACC,UAAU,CAAC,YAAY;MAC9B,MAAMC,MAAM,GAAG,MAAMN,cAAc,CAAsB,KAAK,CAAC;MAE/D,IAAI,CAACM,MAAM,EAAE;QACT,MAAM,IAAIC,KAAK,CAAC,kCAAkC,CAAC;MACvD;MAEA,OAAO;QACHC,SAAS,EAAEF,MAAM,CAAC,WAAW,CAAC;QAC9BG,MAAM,EAAEH,MAAM,CAAC,QAAQ,CAAC;QACxBI,iBAAiB,EAAEJ,MAAM,CAAC,mBAAmB,CAAC;QAC9CK,qBAAqB,EAAEL,MAAM,CAAC,uBAAuB,CAAC;QACtDM,kBAAkB,EAAEN,MAAM,CAAC,oBAAoB,CAAC;QAChDO,iBAAiB,EAAEP,MAAM,CAAC,mBAAmB,CAAC;QAC9CQ,6BAA6B,EAAER,MAAM,CAAC,+BAA+B,CAAC;QACtES,aAAa,EAAET,MAAM,CAAC,eAAe,CAAC;QACtCU,MAAM,EAAEV,MAAM,CAAC,QAAQ,CAAC;QACxBW,cAAc,EAAEX,MAAM,CAAC,gBAAgB,CAAC;QACxCY,eAAe,EAAEZ,MAAM,CAAC,iBAAiB,CAAC;QAC1Ca,kBAAkB,EAAEb,MAAM,CAAC,oBAAoB,CAAC;QAChDc,iBAAiB,EAAEd,MAAM,CAAC,mBAAmB,CAAC;QAC9Ce,uBAAuB,EAAEf,MAAM,CAAC,yBAAyB,CAAC;QAC1DgB,6BAA6B,EAAEhB,MAAM,CAAC,+BAA+B,CAAC;QACtEiB,0BAA0B,EAAEjB,MAAM,CAAC,4BAA4B,CAAC;QAChEkB,2BAA2B,EAAElB,MAAM,CAAC,6BAA6B,CAAC;QAClEmB,+BAA+B,EAAEnB,MAAM,CAAC,iCAAiC,CAAC;QAC1EoB,4BAA4B,EAAEpB,MAAM,CAAC,8BAA8B;MACvE,CAAC;IACL,CAAC,CAAC;EACN;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createAppModule","getStackOutput","ApiOutput","name","config","app","addHandler","output","Error","apiDomain","apiUrl","graphqlLambdaRole","graphqlLambdaRoleName","cognitoAppClientId","cognitoUserPoolId","cognitoUserPoolPasswordPolicy","dynamoDbTable","region","websocketApiId","websocketApiUrl","graphqlLambdaName","backgroundTaskLambdaArn","backgroundTaskStepFunctionArn","fileManagerManageLambdaArn","fileManagerManageLambdaRole","fileManagerManageLambdaRoleName","fileManagerDownloadLambdaArn"],"sources":["ApiOutput.ts"],"sourcesContent":["import type { PulumiAppModule } from \"@webiny/pulumi\";\nimport { createAppModule } from \"@webiny/pulumi\";\nimport { getStackOutput } from \"@webiny/project\";\nimport { type IDefaultStackOutput } from \"~/pulumi/types.js\";\n\nexport type ApiOutput = PulumiAppModule<typeof ApiOutput>;\n\nexport const ApiOutput = createAppModule({\n name: \"ApiOutput\",\n config(app) {\n return app.addHandler(async () => {\n const output = await getStackOutput<IDefaultStackOutput>(\"api\");\n\n if (!output) {\n throw new Error(\"API application is not deployed.\");\n }\n\n return {\n apiDomain: output[\"apiDomain\"],\n apiUrl: output[\"apiUrl\"],\n graphqlLambdaRole: output[\"graphqlLambdaRole\"],\n graphqlLambdaRoleName: output[\"graphqlLambdaRoleName\"],\n cognitoAppClientId: output[\"cognitoAppClientId\"],\n cognitoUserPoolId: output[\"cognitoUserPoolId\"],\n cognitoUserPoolPasswordPolicy: output[\"cognitoUserPoolPasswordPolicy\"],\n dynamoDbTable: output[\"dynamoDbTable\"],\n region: output[\"region\"],\n websocketApiId: output[\"websocketApiId\"],\n websocketApiUrl: output[\"websocketApiUrl\"],\n graphqlLambdaName: output[\"graphqlLambdaName\"],\n backgroundTaskLambdaArn: output[\"backgroundTaskLambdaArn\"],\n backgroundTaskStepFunctionArn: output[\"backgroundTaskStepFunctionArn\"],\n fileManagerManageLambdaArn: output[\"fileManagerManageLambdaArn\"],\n fileManagerManageLambdaRole: output[\"fileManagerManageLambdaRole\"],\n fileManagerManageLambdaRoleName: output[\"fileManagerManageLambdaRoleName\"],\n fileManagerDownloadLambdaArn: output[\"fileManagerDownloadLambdaArn\"]\n };\n });\n }\n});\n"],"mappings":"AACA,SAASA,eAAe,QAAQ,gBAAgB;AAChD,SAASC,cAAc,QAAQ,iBAAiB;AAKhD,OAAO,MAAMC,SAAS,GAAGF,eAAe,CAAC;EACrCG,IAAI,EAAE,WAAW;EACjBC,MAAMA,CAACC,GAAG,EAAE;IACR,OAAOA,GAAG,CAACC,UAAU,CAAC,YAAY;MAC9B,MAAMC,MAAM,GAAG,MAAMN,cAAc,CAAsB,KAAK,CAAC;MAE/D,IAAI,CAACM,MAAM,EAAE;QACT,MAAM,IAAIC,KAAK,CAAC,kCAAkC,CAAC;MACvD;MAEA,OAAO;QACHC,SAAS,EAAEF,MAAM,CAAC,WAAW,CAAC;QAC9BG,MAAM,EAAEH,MAAM,CAAC,QAAQ,CAAC;QACxBI,iBAAiB,EAAEJ,MAAM,CAAC,mBAAmB,CAAC;QAC9CK,qBAAqB,EAAEL,MAAM,CAAC,uBAAuB,CAAC;QACtDM,kBAAkB,EAAEN,MAAM,CAAC,oBAAoB,CAAC;QAChDO,iBAAiB,EAAEP,MAAM,CAAC,mBAAmB,CAAC;QAC9CQ,6BAA6B,EAAER,MAAM,CAAC,+BAA+B,CAAC;QACtES,aAAa,EAAET,MAAM,CAAC,eAAe,CAAC;QACtCU,MAAM,EAAEV,MAAM,CAAC,QAAQ,CAAC;QACxBW,cAAc,EAAEX,MAAM,CAAC,gBAAgB,CAAC;QACxCY,eAAe,EAAEZ,MAAM,CAAC,iBAAiB,CAAC;QAC1Ca,iBAAiB,EAAEb,MAAM,CAAC,mBAAmB,CAAC;QAC9Cc,uBAAuB,EAAEd,MAAM,CAAC,yBAAyB,CAAC;QAC1De,6BAA6B,EAAEf,MAAM,CAAC,+BAA+B,CAAC;QACtEgB,0BAA0B,EAAEhB,MAAM,CAAC,4BAA4B,CAAC;QAChEiB,2BAA2B,EAAEjB,MAAM,CAAC,6BAA6B,CAAC;QAClEkB,+BAA+B,EAAElB,MAAM,CAAC,iCAAiC,CAAC;QAC1EmB,4BAA4B,EAAEnB,MAAM,CAAC,8BAA8B;MACvE,CAAC;IACL,CAAC,CAAC;EACN;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -37,9 +37,6 @@ export declare const createApiPulumiApp: () => PulumiApp<{
37
37
  websocketApiUrl: import("@pulumi/pulumi").Output<string>;
38
38
  };
39
39
  cloudfront: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/cloudfront/distribution.js").Distribution>;
40
- migration: {
41
- function: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/lambda/function.js").Function>;
42
- };
43
40
  backgroundTask: {
44
41
  backgroundTask: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/lambda/function.js").Function>;
45
42
  stepFunction: import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/sfn/stateMachine.js").StateMachine>;
@@ -1,6 +1,6 @@
1
1
  import * as aws from "@pulumi/aws";
2
2
  import { createPulumiApp, isResourceOfType } from "@webiny/pulumi";
3
- import { ApiBackgroundTask, ApiCloudfront, ApiFileManager, ApiGateway, ApiGraphql, ApiMigration, ApiWebsocket, CoreOutput, VpcConfig } from "../index.js";
3
+ import { ApiBackgroundTask, ApiCloudfront, ApiFileManager, ApiGateway, ApiGraphql, ApiWebsocket, CoreOutput, VpcConfig } from "../index.js";
4
4
  import { addDomainsUrlsOutputs, withCommonLambdaEnvVariables, withServiceManifest } from "../../utils/index.js";
5
5
  import { getEnvVariableAwsRegion } from "../../env/awsRegion.js";
6
6
  // import { attachSyncSystem } from "../syncSystem/api/index.js";
@@ -184,7 +184,6 @@ export const createApiPulumiApp = () => {
184
184
  });
185
185
  const cloudfront = app.addModule(ApiCloudfront);
186
186
  const backgroundTask = app.addModule(ApiBackgroundTask);
187
- const migration = app.addModule(ApiMigration);
188
187
  const scheduler = app.addModule(ApiScheduler);
189
188
 
190
189
  // const domains = app.getParam(projectAppParams.domains);
@@ -200,7 +199,6 @@ export const createApiPulumiApp = () => {
200
199
  cognitoUserPoolPasswordPolicy: core.cognitoUserPoolPasswordPolicy,
201
200
  dynamoDbTable: core.primaryDynamodbTableName,
202
201
  auditLogsDynamoDbTable: core.auditLogsDynamodbTableName,
203
- migrationLambdaArn: migration.function.output.arn,
204
202
  graphqlLambdaName: graphql.functions.graphql.output.name,
205
203
  graphqlLambdaRole: graphql.role.output.arn,
206
204
  graphqlLambdaRoleName: graphql.role.output.name,
@@ -247,7 +245,6 @@ export const createApiPulumiApp = () => {
247
245
  apiGateway,
248
246
  websocket,
249
247
  cloudfront,
250
- migration,
251
248
  backgroundTask,
252
249
  scheduler
253
250
  };
@@ -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","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_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_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_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","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_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","scheduler","addOutputs","awsAccountId","region","cognitoAppClientId","cognitoUserPoolPasswordPolicy","dynamoDbTable","auditLogsDynamoDbTable","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 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_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_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 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 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 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":[]}
@@ -3,7 +3,6 @@ export * from "./ApiCloudfront.js";
3
3
  export * from "./ApiFileManager.js";
4
4
  export * from "./ApiGateway.js";
5
5
  export * from "./ApiGraphql.js";
6
- export * from "./ApiMigration.js";
7
6
  export * from "./createApiPulumiApp.js";
8
7
  export * from "./ApiOutput.js";
9
8
  export * from "./ApiWebsocket.js";
@@ -3,7 +3,6 @@ export * from "./ApiCloudfront.js";
3
3
  export * from "./ApiFileManager.js";
4
4
  export * from "./ApiGateway.js";
5
5
  export * from "./ApiGraphql.js";
6
- export * from "./ApiMigration.js";
7
6
  export * from "./createApiPulumiApp.js";
8
7
  export * from "./ApiOutput.js";
9
8
  export * from "./ApiWebsocket.js";
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./ApiBackgroundTask.js\";\nexport * from \"./ApiCloudfront.js\";\nexport * from \"./ApiFileManager.js\";\nexport * from \"./ApiGateway.js\";\nexport * from \"./ApiGraphql.js\";\nexport * from \"./ApiMigration.js\";\nexport * from \"./createApiPulumiApp.js\";\nexport * from \"./ApiOutput.js\";\nexport * from \"./ApiWebsocket.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./ApiBackgroundTask.js\";\nexport * from \"./ApiCloudfront.js\";\nexport * from \"./ApiFileManager.js\";\nexport * from \"./ApiGateway.js\";\nexport * from \"./ApiGraphql.js\";\nexport * from \"./createApiPulumiApp.js\";\nexport * from \"./ApiOutput.js\";\nexport * from \"./ApiWebsocket.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
@@ -2,14 +2,14 @@ import { type IProjectConfigModel } from "@webiny/project/abstractions/models/in
2
2
  export declare const getBgDeploymentsConfigFromExtension: (projectConfig: IProjectConfigModel) => false | {
3
3
  enabled: boolean;
4
4
  domains: {
5
- domains: {
6
- api: [string, ...string[]];
7
- admin: [string, ...string[]];
8
- website: [string, ...string[]];
9
- preview: [string, ...string[]];
10
- };
11
5
  acmCertificateArn: string;
12
6
  sslSupportMethod: "sni-only" | "vip";
7
+ domains: {
8
+ api: import("../blueGreen/types").NonEmptyArray<string>;
9
+ admin: import("../blueGreen/types").NonEmptyArray<string>;
10
+ website: import("../blueGreen/types").NonEmptyArray<string>;
11
+ preview: import("../blueGreen/types").NonEmptyArray<string>;
12
+ };
13
13
  };
14
14
  deployments: [{
15
15
  name: string;
@@ -1,14 +1,9 @@
1
1
  import { z } from "zod";
2
2
  export declare const AdminCustomDomains: import("@webiny/project/defineExtension/defineExtension").ExtensionComponent<z.ZodObject<{
3
- domains: z.ZodArray<z.ZodString, "many">;
4
- sslMethod: z.ZodDefault<z.ZodEnum<["sni-only", "vip"]>>;
3
+ domains: z.ZodArray<z.ZodString>;
4
+ sslMethod: z.ZodDefault<z.ZodEnum<{
5
+ "sni-only": "sni-only";
6
+ vip: "vip";
7
+ }>>;
5
8
  certificateArn: z.ZodString;
6
- }, "strip", z.ZodTypeAny, {
7
- domains: string[];
8
- sslMethod: "sni-only" | "vip";
9
- certificateArn: string;
10
- }, {
11
- domains: string[];
12
- certificateArn: string;
13
- sslMethod?: "sni-only" | "vip" | undefined;
14
- }>>;
9
+ }, z.core.$strip>>;
@@ -1,8 +1,4 @@
1
1
  import { z } from "zod";
2
2
  export declare const AwsTags: import("@webiny/project/defineExtension/defineExtension").ExtensionComponent<z.ZodObject<{
3
3
  tags: z.ZodRecord<z.ZodString, z.ZodString>;
4
- }, "strip", z.ZodTypeAny, {
5
- tags: Record<string, string>;
6
- }, {
7
- tags: Record<string, string>;
8
- }>>;
4
+ }, z.core.$strip>>;
@@ -8,7 +8,7 @@ export const AwsTags = defineExtension({
8
8
  description: "Apply tags to AWS resources during deployment.",
9
9
  multiple: true,
10
10
  paramsSchema: z.object({
11
- tags: z.record(z.string())
11
+ tags: z.record(z.string(), z.string())
12
12
  })
13
13
  });
14
14
 
@@ -1 +1 @@
1
- {"version":3,"names":["z","defineExtension","AwsTags","type","tags","runtimeContext","description","multiple","paramsSchema","object","record","string"],"sources":["AwsTags.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { defineExtension } from \"@webiny/project/defineExtension/index.js\";\n\nexport const AwsTags = defineExtension({\n type: \"Infra/AwsTags\",\n tags: { runtimeContext: \"project\" },\n description: \"Apply tags to AWS resources during deployment.\",\n multiple: true,\n paramsSchema: z.object({\n tags: z.record(z.string())\n })\n});\n"],"mappings":"AAAA,SAASA,CAAC,QAAQ,KAAK;AACvB,SAASC,eAAe,QAAQ,0CAA0C;AAE1E,OAAO,MAAMC,OAAO,GAAGD,eAAe,CAAC;EACnCE,IAAI,EAAE,eAAe;EACrBC,IAAI,EAAE;IAAEC,cAAc,EAAE;EAAU,CAAC;EACnCC,WAAW,EAAE,gDAAgD;EAC7DC,QAAQ,EAAE,IAAI;EACdC,YAAY,EAAER,CAAC,CAACS,MAAM,CAAC;IACnBL,IAAI,EAAEJ,CAAC,CAACU,MAAM,CAACV,CAAC,CAACW,MAAM,CAAC,CAAC;EAC7B,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["z","defineExtension","AwsTags","type","tags","runtimeContext","description","multiple","paramsSchema","object","record","string"],"sources":["AwsTags.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { defineExtension } from \"@webiny/project/defineExtension/index.js\";\n\nexport const AwsTags = defineExtension({\n type: \"Infra/AwsTags\",\n tags: { runtimeContext: \"project\" },\n description: \"Apply tags to AWS resources during deployment.\",\n multiple: true,\n paramsSchema: z.object({\n tags: z.record(z.string(), z.string())\n })\n});\n"],"mappings":"AAAA,SAASA,CAAC,QAAQ,KAAK;AACvB,SAASC,eAAe,QAAQ,0CAA0C;AAE1E,OAAO,MAAMC,OAAO,GAAGD,eAAe,CAAC;EACnCE,IAAI,EAAE,eAAe;EACrBC,IAAI,EAAE;IAAEC,cAAc,EAAE;EAAU,CAAC;EACnCC,WAAW,EAAE,gDAAgD;EAC7DC,QAAQ,EAAE,IAAI;EACdC,YAAY,EAAER,CAAC,CAACS,MAAM,CAAC;IACnBL,IAAI,EAAEJ,CAAC,CAACU,MAAM,CAACV,CAAC,CAACW,MAAM,CAAC,CAAC,EAAEX,CAAC,CAACW,MAAM,CAAC,CAAC;EACzC,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
@@ -1,134 +1,36 @@
1
1
  import { z } from "zod";
2
+ import type { NonEmptyArray } from "../apps/blueGreen/types.js";
2
3
  export declare const deploymentsSchema: z.ZodTuple<[z.ZodObject<{
3
4
  name: z.ZodString;
4
5
  env: z.ZodString;
5
6
  variant: z.ZodString;
6
- }, "strip", z.ZodTypeAny, {
7
- name: string;
8
- env: string;
9
- variant: string;
10
- }, {
11
- name: string;
12
- env: string;
13
- variant: string;
14
- }>, z.ZodObject<{
7
+ }, z.core.$strip>, z.ZodObject<{
15
8
  name: z.ZodString;
16
9
  env: z.ZodString;
17
10
  variant: z.ZodString;
18
- }, "strip", z.ZodTypeAny, {
19
- name: string;
20
- env: string;
21
- variant: string;
22
- }, {
23
- name: string;
24
- env: string;
25
- variant: string;
26
- }>], null>;
27
- export declare const BlueGreenDeployments: import("@webiny/project/defineExtension/defineExtension").ExtensionComponent<z.ZodObject<{
11
+ }, z.core.$strip>], null>;
12
+ export declare const BlueGreenDeployments: import("@webiny/project/defineExtension/defineExtension.js").ExtensionComponent<z.ZodObject<{
28
13
  enabled: z.ZodDefault<z.ZodBoolean>;
29
14
  domains: z.ZodObject<{
30
15
  acmCertificateArn: z.ZodString;
31
- sslSupportMethod: z.ZodEnum<["sni-only", "vip"]>;
32
- domains: z.ZodObject<{
33
- api: z.ZodArray<z.ZodString, "atleastone">;
34
- admin: z.ZodArray<z.ZodString, "atleastone">;
35
- website: z.ZodArray<z.ZodString, "atleastone">;
36
- preview: z.ZodArray<z.ZodString, "atleastone">;
37
- }, "strip", z.ZodTypeAny, {
38
- api: [string, ...string[]];
39
- admin: [string, ...string[]];
40
- website: [string, ...string[]];
41
- preview: [string, ...string[]];
42
- }, {
43
- api: [string, ...string[]];
44
- admin: [string, ...string[]];
45
- website: [string, ...string[]];
46
- preview: [string, ...string[]];
16
+ sslSupportMethod: z.ZodEnum<{
17
+ "sni-only": "sni-only";
18
+ vip: "vip";
47
19
  }>;
48
- }, "strip", z.ZodTypeAny, {
49
- domains: {
50
- api: [string, ...string[]];
51
- admin: [string, ...string[]];
52
- website: [string, ...string[]];
53
- preview: [string, ...string[]];
54
- };
55
- acmCertificateArn: string;
56
- sslSupportMethod: "sni-only" | "vip";
57
- }, {
58
- domains: {
59
- api: [string, ...string[]];
60
- admin: [string, ...string[]];
61
- website: [string, ...string[]];
62
- preview: [string, ...string[]];
63
- };
64
- acmCertificateArn: string;
65
- sslSupportMethod: "sni-only" | "vip";
66
- }>;
20
+ domains: z.ZodObject<{
21
+ api: z.ZodPipe<z.ZodArray<z.ZodString>, z.ZodTransform<NonEmptyArray<string>, string[]>>;
22
+ admin: z.ZodPipe<z.ZodArray<z.ZodString>, z.ZodTransform<NonEmptyArray<string>, string[]>>;
23
+ website: z.ZodPipe<z.ZodArray<z.ZodString>, z.ZodTransform<NonEmptyArray<string>, string[]>>;
24
+ preview: z.ZodPipe<z.ZodArray<z.ZodString>, z.ZodTransform<NonEmptyArray<string>, string[]>>;
25
+ }, z.core.$strip>;
26
+ }, z.core.$strip>;
67
27
  deployments: z.ZodTuple<[z.ZodObject<{
68
28
  name: z.ZodString;
69
29
  env: z.ZodString;
70
30
  variant: z.ZodString;
71
- }, "strip", z.ZodTypeAny, {
72
- name: string;
73
- env: string;
74
- variant: string;
75
- }, {
76
- name: string;
77
- env: string;
78
- variant: string;
79
- }>, z.ZodObject<{
31
+ }, z.core.$strip>, z.ZodObject<{
80
32
  name: z.ZodString;
81
33
  env: z.ZodString;
82
34
  variant: z.ZodString;
83
- }, "strip", z.ZodTypeAny, {
84
- name: string;
85
- env: string;
86
- variant: string;
87
- }, {
88
- name: string;
89
- env: string;
90
- variant: string;
91
- }>], null>;
92
- }, "strip", z.ZodTypeAny, {
93
- enabled: boolean;
94
- domains: {
95
- domains: {
96
- api: [string, ...string[]];
97
- admin: [string, ...string[]];
98
- website: [string, ...string[]];
99
- preview: [string, ...string[]];
100
- };
101
- acmCertificateArn: string;
102
- sslSupportMethod: "sni-only" | "vip";
103
- };
104
- deployments: [{
105
- name: string;
106
- env: string;
107
- variant: string;
108
- }, {
109
- name: string;
110
- env: string;
111
- variant: string;
112
- }];
113
- }, {
114
- domains: {
115
- domains: {
116
- api: [string, ...string[]];
117
- admin: [string, ...string[]];
118
- website: [string, ...string[]];
119
- preview: [string, ...string[]];
120
- };
121
- acmCertificateArn: string;
122
- sslSupportMethod: "sni-only" | "vip";
123
- };
124
- deployments: [{
125
- name: string;
126
- env: string;
127
- variant: string;
128
- }, {
129
- name: string;
130
- env: string;
131
- variant: string;
132
- }];
133
- enabled?: boolean | undefined;
134
- }>>;
35
+ }, z.core.$strip>], null>;
36
+ }, z.core.$strip>>;
@@ -1,13 +1,16 @@
1
1
  import { z } from "zod";
2
2
  import { defineExtension } from "@webiny/project/defineExtension/index.js";
3
+ const nonEmptyStringArray = z.array(z.string()).nonempty().transform(item => {
4
+ return item;
5
+ });
3
6
  const domainsSchema = z.object({
4
7
  acmCertificateArn: z.string(),
5
8
  sslSupportMethod: z.enum(["sni-only", "vip"]),
6
9
  domains: z.object({
7
- api: z.array(z.string()).nonempty(),
8
- admin: z.array(z.string()).nonempty(),
9
- website: z.array(z.string()).nonempty(),
10
- preview: z.array(z.string()).nonempty()
10
+ api: nonEmptyStringArray,
11
+ admin: nonEmptyStringArray,
12
+ website: nonEmptyStringArray,
13
+ preview: nonEmptyStringArray
11
14
  })
12
15
  });
13
16
  const deploymentSchema = z.object({