@webiny/pulumi-aws 5.30.0 → 5.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/admin/createAdminPulumiApp.d.ts +8 -6
- package/apps/admin/createAdminPulumiApp.js +4 -86
- package/apps/admin/createAdminPulumiApp.js.map +1 -1
- package/apps/api/ApiFileManager.js +7 -3
- package/apps/api/ApiFileManager.js.map +1 -1
- package/apps/api/ApiGraphql.d.ts +9 -0
- package/apps/api/ApiGraphql.js +24 -1
- package/apps/api/ApiGraphql.js.map +1 -1
- package/apps/api/ApiOutput.d.ts +15 -0
- package/apps/api/ApiOutput.js +43 -0
- package/apps/api/ApiOutput.js.map +1 -0
- package/apps/api/ApiPageBuilder.js +0 -1
- package/apps/api/ApiPageBuilder.js.map +1 -1
- package/apps/api/createApiPulumiApp.d.ts +1 -0
- package/apps/api/createApiPulumiApp.js +12 -2
- package/apps/api/createApiPulumiApp.js.map +1 -1
- package/apps/api/index.d.ts +1 -0
- package/apps/api/index.js +13 -0
- package/apps/api/index.js.map +1 -1
- package/apps/core/CoreFileManager.d.ts +4 -1
- package/apps/core/CoreFileManager.js +20 -3
- package/apps/core/CoreFileManager.js.map +1 -1
- package/apps/core/createCorePulumiApp.js +3 -1
- package/apps/core/createCorePulumiApp.js.map +1 -1
- package/apps/createAppBucket.js +4 -3
- package/apps/createAppBucket.js.map +1 -1
- package/apps/index.d.ts +1 -0
- package/apps/index.js +14 -0
- package/apps/index.js.map +1 -1
- package/apps/lambdaUtils.js +10 -11
- package/apps/lambdaUtils.js.map +1 -1
- package/apps/react/createReactPulumiApp.d.ts +29 -0
- package/apps/react/createReactPulumiApp.js +111 -0
- package/apps/react/createReactPulumiApp.js.map +1 -0
- package/apps/react/index.d.ts +1 -0
- package/apps/react/index.js +18 -0
- package/apps/react/index.js.map +1 -0
- package/apps/website/WebsitePrerendering.js +6 -14
- package/apps/website/WebsitePrerendering.js.map +1 -1
- package/apps/website/createWebsitePulumiApp.d.ts +6 -0
- package/apps/website/createWebsitePulumiApp.js +23 -3
- package/apps/website/createWebsitePulumiApp.js.map +1 -1
- package/apps/website/deliveryViewerRequest.d.ts +2 -0
- package/apps/website/deliveryViewerRequest.js +32 -0
- package/apps/website/deliveryViewerRequest.js.map +1 -0
- package/components/tenantRouter/functions/origin/request.js +3 -1
- package/components/tenantRouter/functions/origin/request.js.map +1 -1
- package/package.json +10 -8
- package/utils/getPresignedPost.d.ts +11 -0
- package/utils/getPresignedPost.js +46 -0
- package/utils/getPresignedPost.js.map +1 -0
- package/utils/lambdaEnvVariables.js +3 -1
- package/utils/lambdaEnvVariables.js.map +1 -1
- package/utils/uploadFolderToS3.d.ts +3 -4
- package/utils/uploadFolderToS3.js +51 -13
- package/utils/uploadFolderToS3.js.map +1 -1
|
@@ -77,7 +77,12 @@ const createApiPulumiApp = (projectAppParams = {}) => {
|
|
|
77
77
|
EXPORT_PAGES_PROCESS_HANDLER: pageBuilder.exportPages.functions.process.output.arn,
|
|
78
78
|
// TODO: move to okta plugin
|
|
79
79
|
OKTA_ISSUER: process.env["OKTA_ISSUER"],
|
|
80
|
-
WEBINY_LOGS_FORWARD_URL
|
|
80
|
+
WEBINY_LOGS_FORWARD_URL,
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* APW
|
|
84
|
+
*/
|
|
85
|
+
APW_SCHEDULER_SCHEDULE_ACTION_HANDLER: apwScheduler.scheduleAction.lambda.output.arn
|
|
81
86
|
},
|
|
82
87
|
apwSchedulerEventRule: apwScheduler.eventRule.output,
|
|
83
88
|
apwSchedulerEventTarget: apwScheduler.eventTarget.output
|
|
@@ -95,7 +100,12 @@ const createApiPulumiApp = (projectAppParams = {}) => {
|
|
|
95
100
|
S3_BUCKET: core.fileManagerBucketId,
|
|
96
101
|
// TODO: move to okta plugin
|
|
97
102
|
OKTA_ISSUER: process.env["OKTA_ISSUER"],
|
|
98
|
-
WEBINY_LOGS_FORWARD_URL
|
|
103
|
+
WEBINY_LOGS_FORWARD_URL,
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* APW
|
|
107
|
+
*/
|
|
108
|
+
APW_SCHEDULER_SCHEDULE_ACTION_HANDLER: apwScheduler.scheduleAction.lambda.output.arn
|
|
99
109
|
}
|
|
100
110
|
});
|
|
101
111
|
const apiGateway = app.addModule(_.ApiGateway, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createApiPulumiApp","projectAppParams","app","createPulumiApp","name","path","config","program","pulumi","addHandler","WEBINY_LOGS_FORWARD_URL","String","process","env","core","addModule","CoreOutput","VpcConfig","enabled","getParam","vpc","pageBuilder","ApiPageBuilder","COGNITO_REGION","AWS_REGION","COGNITO_USER_POOL_ID","cognitoUserPoolId","DB_TABLE","primaryDynamodbTableName","DB_TABLE_ELASTICSEARCH","elasticsearchDynamodbTableName","ELASTIC_SEARCH_ENDPOINT","elasticsearchDomainEndpoint","ELASTIC_SEARCH_INDEX_PREFIX","S3_BUCKET","fileManagerBucketId","fileManager","ApiFileManager","apwScheduler","ApiApwScheduler","primaryDynamodbTableArn","graphql","ApiGraphql","EVENT_BUS","eventBusArn","IMPORT_PAGES_CREATE_HANDLER","importPages","functions","create","output","arn","EXPORT_PAGES_PROCESS_HANDLER","exportPages","OKTA_ISSUER","apwSchedulerEventRule","eventRule","apwSchedulerEventTarget","eventTarget","headlessCms","ApiHeadlessCMS","apiGateway","ApiGateway","method","function","download","cloudfront","ApiCloudfront","domains","applyCustomDomain","addOutputs","region","apiUrl","domainName","apply","value","apiDomain","cognitoAppClientId","cognitoUserPoolPasswordPolicy","apwSchedulerScheduleAction","scheduleAction","lambda","apwSchedulerExecuteAction","executeAction","apwSchedulerEventTargetId","targetId","dynamoDbTable","dynamoDbElasticsearchTable","tagResources","WbyProjectName","WbyEnvironment","withCommonLambdaEnvVariables"],"sources":["createApiPulumiApp.ts"],"sourcesContent":["import { createPulumiApp, PulumiAppParam, PulumiAppParamCallback } from \"@webiny/pulumi\";\nimport {\n ApiGateway,\n ApiApwScheduler,\n ApiCloudfront,\n ApiFileManager,\n ApiGraphql,\n ApiHeadlessCMS,\n ApiPageBuilder,\n CoreOutput,\n VpcConfig\n} from \"~/apps\";\nimport { applyCustomDomain, CustomDomainParams } from \"../customDomain\";\nimport { tagResources } from \"~/utils\";\nimport { withCommonLambdaEnvVariables } from \"~/utils\";\n\nexport type ApiPulumiApp = ReturnType<typeof createApiPulumiApp>;\n\nexport interface CreateApiPulumiAppParams {\n /**\n * Enables or disables VPC for the API.\n * For VPC to work you also have to enable it in the Core application.\n */\n vpc?: PulumiAppParam<boolean>;\n\n /** Custom domain configuration */\n domains?: PulumiAppParamCallback<CustomDomainParams>;\n\n /**\n * Provides a way to adjust existing Pulumi code (cloud infrastructure resources)\n * or add additional ones into the mix.\n */\n pulumi?: (app: ApiPulumiApp) => void | Promise<void>;\n}\n\nexport const createApiPulumiApp = (projectAppParams: CreateApiPulumiAppParams = {}) => {\n const app = createPulumiApp({\n name: \"api\",\n path: \"apps/api\",\n config: projectAppParams,\n program: async app => {\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 too late.\n if (projectAppParams.pulumi) {\n app.addHandler(() => {\n return projectAppParams.pulumi!(app as ApiPulumiApp);\n });\n }\n\n // Enables logs forwarding.\n // https://www.webiny.com/docs/how-to-guides/use-watch-command#enabling-logs-forwarding\n const WEBINY_LOGS_FORWARD_URL = String(process.env.WEBINY_LOGS_FORWARD_URL);\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 app.addModule(VpcConfig, {\n enabled: app.getParam(projectAppParams.vpc)\n });\n\n const pageBuilder = app.addModule(ApiPageBuilder, {\n env: {\n COGNITO_REGION: String(process.env.AWS_REGION),\n COGNITO_USER_POOL_ID: core.cognitoUserPoolId,\n DB_TABLE: core.primaryDynamodbTableName,\n DB_TABLE_ELASTICSEARCH: core.elasticsearchDynamodbTableName,\n ELASTIC_SEARCH_ENDPOINT: core.elasticsearchDomainEndpoint,\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 ELASTIC_SEARCH_INDEX_PREFIX: process.env.ELASTIC_SEARCH_INDEX_PREFIX,\n\n S3_BUCKET: core.fileManagerBucketId,\n WEBINY_LOGS_FORWARD_URL\n }\n });\n\n const fileManager = app.addModule(ApiFileManager);\n\n const apwScheduler = app.addModule(ApiApwScheduler, {\n primaryDynamodbTableArn: core.primaryDynamodbTableArn,\n\n env: {\n COGNITO_REGION: String(process.env.AWS_REGION),\n COGNITO_USER_POOL_ID: core.cognitoUserPoolId,\n DB_TABLE: core.primaryDynamodbTableName,\n S3_BUCKET: core.fileManagerBucketId,\n WEBINY_LOGS_FORWARD_URL\n }\n });\n\n const graphql = app.addModule(ApiGraphql, {\n env: {\n COGNITO_REGION: String(process.env.AWS_REGION),\n COGNITO_USER_POOL_ID: core.cognitoUserPoolId,\n DB_TABLE: core.primaryDynamodbTableName,\n DB_TABLE_ELASTICSEARCH: core.elasticsearchDynamodbTableName,\n ELASTIC_SEARCH_ENDPOINT: core.elasticsearchDomainEndpoint,\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 ELASTIC_SEARCH_INDEX_PREFIX: process.env.ELASTIC_SEARCH_INDEX_PREFIX,\n\n S3_BUCKET: core.fileManagerBucketId,\n EVENT_BUS: core.eventBusArn,\n IMPORT_PAGES_CREATE_HANDLER:\n pageBuilder.importPages.functions.create.output.arn,\n EXPORT_PAGES_PROCESS_HANDLER:\n pageBuilder.exportPages.functions.process.output.arn,\n // TODO: move to okta plugin\n OKTA_ISSUER: process.env[\"OKTA_ISSUER\"],\n WEBINY_LOGS_FORWARD_URL\n },\n apwSchedulerEventRule: apwScheduler.eventRule.output,\n apwSchedulerEventTarget: apwScheduler.eventTarget.output\n });\n\n const headlessCms = app.addModule(ApiHeadlessCMS, {\n env: {\n COGNITO_REGION: String(process.env.AWS_REGION),\n COGNITO_USER_POOL_ID: core.cognitoUserPoolId,\n DB_TABLE: core.primaryDynamodbTableName,\n DB_TABLE_ELASTICSEARCH: core.elasticsearchDynamodbTableName,\n ELASTIC_SEARCH_ENDPOINT: core.elasticsearchDomainEndpoint,\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 ELASTIC_SEARCH_INDEX_PREFIX: process.env.ELASTIC_SEARCH_INDEX_PREFIX,\n\n S3_BUCKET: core.fileManagerBucketId,\n // TODO: move to okta plugin\n OKTA_ISSUER: process.env[\"OKTA_ISSUER\"],\n WEBINY_LOGS_FORWARD_URL\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 \"cms-post\": {\n path: \"/cms/{key+}\",\n method: \"POST\",\n function: headlessCms.functions.graphql.output.arn\n },\n \"cms-options\": {\n path: \"/cms/{key+}\",\n method: \"OPTIONS\",\n function: headlessCms.functions.graphql.output.arn\n }\n });\n\n const cloudfront = app.addModule(ApiCloudfront);\n\n const domains = app.getParam(projectAppParams.domains);\n if (domains) {\n applyCustomDomain(cloudfront, domains);\n }\n\n app.addOutputs({\n region: process.env.AWS_REGION,\n apiUrl: cloudfront.output.domainName.apply(value => `https://${value}`),\n apiDomain: cloudfront.output.domainName,\n cognitoUserPoolId: core.cognitoUserPoolId,\n cognitoAppClientId: core.cognitoAppClientId,\n cognitoUserPoolPasswordPolicy: core.cognitoUserPoolPasswordPolicy,\n apwSchedulerScheduleAction: apwScheduler.scheduleAction.lambda.output.arn,\n apwSchedulerExecuteAction: apwScheduler.executeAction.lambda.output.arn,\n apwSchedulerEventRule: apwScheduler.eventRule.output.name,\n apwSchedulerEventTargetId: apwScheduler.eventTarget.output.targetId,\n dynamoDbTable: core.primaryDynamodbTableName,\n dynamoDbElasticsearchTable: core.elasticsearchDynamodbTableName\n });\n\n tagResources({\n WbyProjectName: String(process.env[\"WEBINY_PROJECT_NAME\"]),\n WbyEnvironment: String(process.env[\"WEBINY_ENV\"])\n });\n\n return {\n fileManager,\n graphql,\n headlessCms,\n apiGateway,\n cloudfront,\n apwScheduler\n };\n }\n });\n\n return withCommonLambdaEnvVariables(app);\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["createApiPulumiApp","projectAppParams","app","createPulumiApp","name","path","config","program","pulumi","addHandler","WEBINY_LOGS_FORWARD_URL","String","process","env","core","addModule","CoreOutput","VpcConfig","enabled","getParam","vpc","pageBuilder","ApiPageBuilder","COGNITO_REGION","AWS_REGION","COGNITO_USER_POOL_ID","cognitoUserPoolId","DB_TABLE","primaryDynamodbTableName","DB_TABLE_ELASTICSEARCH","elasticsearchDynamodbTableName","ELASTIC_SEARCH_ENDPOINT","elasticsearchDomainEndpoint","ELASTIC_SEARCH_INDEX_PREFIX","S3_BUCKET","fileManagerBucketId","fileManager","ApiFileManager","apwScheduler","ApiApwScheduler","primaryDynamodbTableArn","graphql","ApiGraphql","EVENT_BUS","eventBusArn","IMPORT_PAGES_CREATE_HANDLER","importPages","functions","create","output","arn","EXPORT_PAGES_PROCESS_HANDLER","exportPages","OKTA_ISSUER","APW_SCHEDULER_SCHEDULE_ACTION_HANDLER","scheduleAction","lambda","apwSchedulerEventRule","eventRule","apwSchedulerEventTarget","eventTarget","headlessCms","ApiHeadlessCMS","apiGateway","ApiGateway","method","function","download","cloudfront","ApiCloudfront","domains","applyCustomDomain","addOutputs","region","apiUrl","domainName","apply","value","apiDomain","cognitoAppClientId","cognitoUserPoolPasswordPolicy","apwSchedulerScheduleAction","apwSchedulerExecuteAction","executeAction","apwSchedulerEventTargetId","targetId","dynamoDbTable","dynamoDbElasticsearchTable","tagResources","WbyProjectName","WbyEnvironment","withCommonLambdaEnvVariables"],"sources":["createApiPulumiApp.ts"],"sourcesContent":["import { createPulumiApp, PulumiAppParam, PulumiAppParamCallback } from \"@webiny/pulumi\";\nimport {\n ApiGateway,\n ApiApwScheduler,\n ApiCloudfront,\n ApiFileManager,\n ApiGraphql,\n ApiHeadlessCMS,\n ApiPageBuilder,\n CoreOutput,\n VpcConfig\n} from \"~/apps\";\nimport { applyCustomDomain, CustomDomainParams } from \"../customDomain\";\nimport { tagResources } from \"~/utils\";\nimport { withCommonLambdaEnvVariables } from \"~/utils\";\n\nexport type ApiPulumiApp = ReturnType<typeof createApiPulumiApp>;\n\nexport interface CreateApiPulumiAppParams {\n /**\n * Enables or disables VPC for the API.\n * For VPC to work you also have to enable it in the Core application.\n */\n vpc?: PulumiAppParam<boolean>;\n\n /** Custom domain configuration */\n domains?: PulumiAppParamCallback<CustomDomainParams>;\n\n /**\n * Provides a way to adjust existing Pulumi code (cloud infrastructure resources)\n * or add additional ones into the mix.\n */\n pulumi?: (app: ApiPulumiApp) => void | Promise<void>;\n}\n\nexport const createApiPulumiApp = (projectAppParams: CreateApiPulumiAppParams = {}) => {\n const app = createPulumiApp({\n name: \"api\",\n path: \"apps/api\",\n config: projectAppParams,\n program: async app => {\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 too late.\n if (projectAppParams.pulumi) {\n app.addHandler(() => {\n return projectAppParams.pulumi!(app as ApiPulumiApp);\n });\n }\n\n // Enables logs forwarding.\n // https://www.webiny.com/docs/how-to-guides/use-watch-command#enabling-logs-forwarding\n const WEBINY_LOGS_FORWARD_URL = String(process.env.WEBINY_LOGS_FORWARD_URL);\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 app.addModule(VpcConfig, {\n enabled: app.getParam(projectAppParams.vpc)\n });\n\n const pageBuilder = app.addModule(ApiPageBuilder, {\n env: {\n COGNITO_REGION: String(process.env.AWS_REGION),\n COGNITO_USER_POOL_ID: core.cognitoUserPoolId,\n DB_TABLE: core.primaryDynamodbTableName,\n DB_TABLE_ELASTICSEARCH: core.elasticsearchDynamodbTableName,\n ELASTIC_SEARCH_ENDPOINT: core.elasticsearchDomainEndpoint,\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 ELASTIC_SEARCH_INDEX_PREFIX: process.env.ELASTIC_SEARCH_INDEX_PREFIX,\n\n S3_BUCKET: core.fileManagerBucketId,\n WEBINY_LOGS_FORWARD_URL\n }\n });\n\n const fileManager = app.addModule(ApiFileManager);\n\n const apwScheduler = app.addModule(ApiApwScheduler, {\n primaryDynamodbTableArn: core.primaryDynamodbTableArn,\n\n env: {\n COGNITO_REGION: String(process.env.AWS_REGION),\n COGNITO_USER_POOL_ID: core.cognitoUserPoolId,\n DB_TABLE: core.primaryDynamodbTableName,\n S3_BUCKET: core.fileManagerBucketId,\n WEBINY_LOGS_FORWARD_URL\n }\n });\n\n const graphql = app.addModule(ApiGraphql, {\n env: {\n COGNITO_REGION: String(process.env.AWS_REGION),\n COGNITO_USER_POOL_ID: core.cognitoUserPoolId,\n DB_TABLE: core.primaryDynamodbTableName,\n DB_TABLE_ELASTICSEARCH: core.elasticsearchDynamodbTableName,\n ELASTIC_SEARCH_ENDPOINT: core.elasticsearchDomainEndpoint,\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 ELASTIC_SEARCH_INDEX_PREFIX: process.env.ELASTIC_SEARCH_INDEX_PREFIX,\n\n S3_BUCKET: core.fileManagerBucketId,\n EVENT_BUS: core.eventBusArn,\n IMPORT_PAGES_CREATE_HANDLER:\n pageBuilder.importPages.functions.create.output.arn,\n EXPORT_PAGES_PROCESS_HANDLER:\n pageBuilder.exportPages.functions.process.output.arn,\n // TODO: move to okta plugin\n OKTA_ISSUER: process.env[\"OKTA_ISSUER\"],\n WEBINY_LOGS_FORWARD_URL,\n /**\n * APW\n */\n APW_SCHEDULER_SCHEDULE_ACTION_HANDLER:\n apwScheduler.scheduleAction.lambda.output.arn\n },\n apwSchedulerEventRule: apwScheduler.eventRule.output,\n apwSchedulerEventTarget: apwScheduler.eventTarget.output\n });\n\n const headlessCms = app.addModule(ApiHeadlessCMS, {\n env: {\n COGNITO_REGION: String(process.env.AWS_REGION),\n COGNITO_USER_POOL_ID: core.cognitoUserPoolId,\n DB_TABLE: core.primaryDynamodbTableName,\n DB_TABLE_ELASTICSEARCH: core.elasticsearchDynamodbTableName,\n ELASTIC_SEARCH_ENDPOINT: core.elasticsearchDomainEndpoint,\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 ELASTIC_SEARCH_INDEX_PREFIX: process.env.ELASTIC_SEARCH_INDEX_PREFIX,\n\n S3_BUCKET: core.fileManagerBucketId,\n // TODO: move to okta plugin\n OKTA_ISSUER: process.env[\"OKTA_ISSUER\"],\n WEBINY_LOGS_FORWARD_URL,\n /**\n * APW\n */\n APW_SCHEDULER_SCHEDULE_ACTION_HANDLER:\n apwScheduler.scheduleAction.lambda.output.arn\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 \"cms-post\": {\n path: \"/cms/{key+}\",\n method: \"POST\",\n function: headlessCms.functions.graphql.output.arn\n },\n \"cms-options\": {\n path: \"/cms/{key+}\",\n method: \"OPTIONS\",\n function: headlessCms.functions.graphql.output.arn\n }\n });\n\n const cloudfront = app.addModule(ApiCloudfront);\n\n const domains = app.getParam(projectAppParams.domains);\n if (domains) {\n applyCustomDomain(cloudfront, domains);\n }\n\n app.addOutputs({\n region: process.env.AWS_REGION,\n apiUrl: cloudfront.output.domainName.apply(value => `https://${value}`),\n apiDomain: cloudfront.output.domainName,\n cognitoUserPoolId: core.cognitoUserPoolId,\n cognitoAppClientId: core.cognitoAppClientId,\n cognitoUserPoolPasswordPolicy: core.cognitoUserPoolPasswordPolicy,\n apwSchedulerScheduleAction: apwScheduler.scheduleAction.lambda.output.arn,\n apwSchedulerExecuteAction: apwScheduler.executeAction.lambda.output.arn,\n apwSchedulerEventRule: apwScheduler.eventRule.output.name,\n apwSchedulerEventTargetId: apwScheduler.eventTarget.output.targetId,\n dynamoDbTable: core.primaryDynamodbTableName,\n dynamoDbElasticsearchTable: core.elasticsearchDynamodbTableName\n });\n\n tagResources({\n WbyProjectName: String(process.env[\"WEBINY_PROJECT_NAME\"]),\n WbyEnvironment: String(process.env[\"WEBINY_ENV\"])\n });\n\n return {\n fileManager,\n graphql,\n headlessCms,\n apiGateway,\n cloudfront,\n apwScheduler\n };\n }\n });\n\n return withCommonLambdaEnvVariables(app);\n};\n"],"mappings":"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"}
|
package/apps/api/index.d.ts
CHANGED
package/apps/api/index.js
CHANGED
|
@@ -106,4 +106,17 @@ Object.keys(_createApiPulumiApp).forEach(function (key) {
|
|
|
106
106
|
return _createApiPulumiApp[key];
|
|
107
107
|
}
|
|
108
108
|
});
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
var _ApiOutput = require("./ApiOutput");
|
|
112
|
+
|
|
113
|
+
Object.keys(_ApiOutput).forEach(function (key) {
|
|
114
|
+
if (key === "default" || key === "__esModule") return;
|
|
115
|
+
if (key in exports && exports[key] === _ApiOutput[key]) return;
|
|
116
|
+
Object.defineProperty(exports, key, {
|
|
117
|
+
enumerable: true,
|
|
118
|
+
get: function () {
|
|
119
|
+
return _ApiOutput[key];
|
|
120
|
+
}
|
|
121
|
+
});
|
|
109
122
|
});
|
package/apps/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./ApiApwScheduler\";\nexport * from \"./ApiCloudfront\";\nexport * from \"./ApiFileManager\";\nexport * from \"./ApiGateway\";\nexport * from \"./ApiGraphql\";\nexport * from \"./ApiHeadlessCMS\";\nexport * from \"./ApiPageBuilder\";\nexport * from \"./createApiPulumiApp\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./ApiApwScheduler\";\nexport * from \"./ApiCloudfront\";\nexport * from \"./ApiFileManager\";\nexport * from \"./ApiGateway\";\nexport * from \"./ApiGraphql\";\nexport * from \"./ApiHeadlessCMS\";\nexport * from \"./ApiPageBuilder\";\nexport * from \"./createApiPulumiApp\";\nexport * from \"./ApiOutput\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import * as aws from "@pulumi/aws";
|
|
2
2
|
import { PulumiAppModule } from "@webiny/pulumi";
|
|
3
3
|
export declare type CoreFileManger = PulumiAppModule<typeof CoreFileManger>;
|
|
4
|
-
export declare const CoreFileManger: import("@webiny/pulumi").PulumiAppModuleDefinition<
|
|
4
|
+
export declare const CoreFileManger: import("@webiny/pulumi").PulumiAppModuleDefinition<{
|
|
5
|
+
bucket: import("@webiny/pulumi").PulumiAppResource<typeof aws.s3.Bucket>;
|
|
6
|
+
blockPublicAccessBlock: import("@webiny/pulumi").PulumiAppResource<typeof aws.s3.BucketPublicAccessBlock>;
|
|
7
|
+
}, {
|
|
5
8
|
protect: boolean;
|
|
6
9
|
}>;
|
|
@@ -17,12 +17,14 @@ const CoreFileManger = (0, _pulumi.createAppModule)({
|
|
|
17
17
|
name: "FileManagerBucket",
|
|
18
18
|
|
|
19
19
|
config(app, params) {
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
const name = "fm-bucket";
|
|
21
|
+
const bucket = app.addResource(aws.s3.Bucket, {
|
|
22
|
+
name,
|
|
22
23
|
config: {
|
|
23
|
-
acl:
|
|
24
|
+
acl: aws.s3.CannedAcl.Private,
|
|
24
25
|
// We definitely don't want to force-destroy if "protected" flag is true.
|
|
25
26
|
forceDestroy: !params.protect,
|
|
27
|
+
// We need these rules to be able to upload to this bucket from the browser.
|
|
26
28
|
corsRules: [{
|
|
27
29
|
allowedHeaders: ["*"],
|
|
28
30
|
allowedMethods: ["POST", "GET"],
|
|
@@ -33,7 +35,22 @@ const CoreFileManger = (0, _pulumi.createAppModule)({
|
|
|
33
35
|
opts: {
|
|
34
36
|
protect: params.protect
|
|
35
37
|
}
|
|
38
|
+
}); // Block any public access
|
|
39
|
+
|
|
40
|
+
const blockPublicAccessBlock = app.addResource(aws.s3.BucketPublicAccessBlock, {
|
|
41
|
+
name: `${name}-block-public-access`,
|
|
42
|
+
config: {
|
|
43
|
+
bucket: bucket.output.id,
|
|
44
|
+
blockPublicAcls: true,
|
|
45
|
+
blockPublicPolicy: true,
|
|
46
|
+
ignorePublicAcls: true,
|
|
47
|
+
restrictPublicBuckets: true
|
|
48
|
+
}
|
|
36
49
|
});
|
|
50
|
+
return {
|
|
51
|
+
bucket,
|
|
52
|
+
blockPublicAccessBlock
|
|
53
|
+
};
|
|
37
54
|
}
|
|
38
55
|
|
|
39
56
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CoreFileManger","createAppModule","name","config","app","params","addResource","aws","s3","Bucket","acl","forceDestroy","protect","corsRules","allowedHeaders","allowedMethods","allowedOrigins","maxAgeSeconds","opts"],"sources":["CoreFileManager.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport { createAppModule, PulumiApp, PulumiAppModule } from \"@webiny/pulumi\";\n\nexport type CoreFileManger = PulumiAppModule<typeof CoreFileManger>;\nexport const CoreFileManger = createAppModule({\n name: \"FileManagerBucket\",\n config(app: PulumiApp, params: { protect: boolean }) {\n
|
|
1
|
+
{"version":3,"names":["CoreFileManger","createAppModule","name","config","app","params","bucket","addResource","aws","s3","Bucket","acl","CannedAcl","Private","forceDestroy","protect","corsRules","allowedHeaders","allowedMethods","allowedOrigins","maxAgeSeconds","opts","blockPublicAccessBlock","BucketPublicAccessBlock","output","id","blockPublicAcls","blockPublicPolicy","ignorePublicAcls","restrictPublicBuckets"],"sources":["CoreFileManager.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport { createAppModule, PulumiApp, PulumiAppModule } from \"@webiny/pulumi\";\n\nexport type CoreFileManger = PulumiAppModule<typeof CoreFileManger>;\n\nexport const CoreFileManger = createAppModule({\n name: \"FileManagerBucket\",\n config(app: PulumiApp, params: { protect: boolean }) {\n const name = \"fm-bucket\";\n\n const bucket = app.addResource(aws.s3.Bucket, {\n name,\n config: {\n acl: aws.s3.CannedAcl.Private,\n // We definitely don't want to force-destroy if \"protected\" flag is true.\n forceDestroy: !params.protect,\n // We need these rules to be able to upload to this bucket from the browser.\n corsRules: [\n {\n allowedHeaders: [\"*\"],\n allowedMethods: [\"POST\", \"GET\"],\n allowedOrigins: [\"*\"],\n maxAgeSeconds: 3000\n }\n ]\n },\n opts: {\n protect: params.protect\n }\n });\n\n // Block any public access\n const blockPublicAccessBlock = app.addResource(aws.s3.BucketPublicAccessBlock, {\n name: `${name}-block-public-access`,\n config: {\n bucket: bucket.output.id,\n blockPublicAcls: true,\n blockPublicPolicy: true,\n ignorePublicAcls: true,\n restrictPublicBuckets: true\n }\n });\n\n return {\n bucket,\n blockPublicAccessBlock\n };\n }\n});\n"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAIO,MAAMA,cAAc,GAAG,IAAAC,uBAAA,EAAgB;EAC1CC,IAAI,EAAE,mBADoC;;EAE1CC,MAAM,CAACC,GAAD,EAAiBC,MAAjB,EAA+C;IACjD,MAAMH,IAAI,GAAG,WAAb;IAEA,MAAMI,MAAM,GAAGF,GAAG,CAACG,WAAJ,CAAgBC,GAAG,CAACC,EAAJ,CAAOC,MAAvB,EAA+B;MAC1CR,IAD0C;MAE1CC,MAAM,EAAE;QACJQ,GAAG,EAAEH,GAAG,CAACC,EAAJ,CAAOG,SAAP,CAAiBC,OADlB;QAEJ;QACAC,YAAY,EAAE,CAACT,MAAM,CAACU,OAHlB;QAIJ;QACAC,SAAS,EAAE,CACP;UACIC,cAAc,EAAE,CAAC,GAAD,CADpB;UAEIC,cAAc,EAAE,CAAC,MAAD,EAAS,KAAT,CAFpB;UAGIC,cAAc,EAAE,CAAC,GAAD,CAHpB;UAIIC,aAAa,EAAE;QAJnB,CADO;MALP,CAFkC;MAgB1CC,IAAI,EAAE;QACFN,OAAO,EAAEV,MAAM,CAACU;MADd;IAhBoC,CAA/B,CAAf,CAHiD,CAwBjD;;IACA,MAAMO,sBAAsB,GAAGlB,GAAG,CAACG,WAAJ,CAAgBC,GAAG,CAACC,EAAJ,CAAOc,uBAAvB,EAAgD;MAC3ErB,IAAI,EAAG,GAAEA,IAAK,sBAD6D;MAE3EC,MAAM,EAAE;QACJG,MAAM,EAAEA,MAAM,CAACkB,MAAP,CAAcC,EADlB;QAEJC,eAAe,EAAE,IAFb;QAGJC,iBAAiB,EAAE,IAHf;QAIJC,gBAAgB,EAAE,IAJd;QAKJC,qBAAqB,EAAE;MALnB;IAFmE,CAAhD,CAA/B;IAWA,OAAO;MACHvB,MADG;MAEHgB;IAFG,CAAP;EAIH;;AA1CyC,CAAhB,CAAvB"}
|
|
@@ -61,7 +61,9 @@ function createCorePulumiApp(projectAppParams = {}) {
|
|
|
61
61
|
|
|
62
62
|
const eventBus = app.addModule(_CoreEventBus.CoreEventBus); // Setup file core bucket
|
|
63
63
|
|
|
64
|
-
const
|
|
64
|
+
const {
|
|
65
|
+
bucket: fileManagerBucket
|
|
66
|
+
} = app.addModule(_CoreFileManager.CoreFileManger, {
|
|
65
67
|
protect
|
|
66
68
|
});
|
|
67
69
|
const elasticSearch = app.getParam(projectAppParams === null || projectAppParams === void 0 ? void 0 : projectAppParams.elasticSearch) ? app.addModule(_CoreElasticSearch.ElasticSearch, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createCorePulumiApp","projectAppParams","createPulumiApp","name","path","config","program","app","pulumi","addHandler","prod","params","run","env","protect","getParam","legacyConfig","legacy","dynamoDbTable","addModule","CoreDynamo","vpcEnabled","vpc","CoreVpc","cognito","CoreCognito","useEmailAsUsername","eventBus","CoreEventBus","fileManagerBucket","CoreFileManger","elasticSearch","ElasticSearch","addOutputs","fileManagerBucketId","output","id","primaryDynamodbTableArn","arn","primaryDynamodbTableName","primaryDynamodbTableHashKey","hashKey","primaryDynamodbTableRangeKey","rangeKey","cognitoUserPoolId","userPool","cognitoUserPoolArn","cognitoUserPoolPasswordPolicy","passwordPolicy","cognitoAppClientId","userPoolClient","eventBusArn","tagResources","WbyProjectName","String","process","WbyEnvironment"],"sources":["createCorePulumiApp.ts"],"sourcesContent":["import { createPulumiApp, PulumiAppParam } from \"@webiny/pulumi\";\nimport { CoreCognito } from \"./CoreCognito\";\nimport { CoreDynamo } from \"./CoreDynamo\";\nimport { ElasticSearch } from \"./CoreElasticSearch\";\nimport { CoreEventBus } from \"./CoreEventBus\";\nimport { CoreFileManger } from \"./CoreFileManager\";\nimport { CoreVpc } from \"./CoreVpc\";\nimport { tagResources } from \"~/utils\";\n\nexport type CorePulumiApp = ReturnType<typeof createCorePulumiApp>;\n\nexport interface CreateCorePulumiAppParams {\n /**\n * Secures against deleting database by accident.\n * By default enabled in production environments.\n */\n protect?: PulumiAppParam<boolean>;\n\n /**\n * Enables ElasticSearch infrastructure.\n * Note that it requires also changes in application code.\n */\n elasticSearch?: PulumiAppParam<boolean>;\n\n /**\n * Enables VPC for the application.\n * By default enabled in production environments.\n */\n vpc?: PulumiAppParam<boolean>;\n\n /**\n * Additional settings for backwards compatibility.\n */\n legacy?: PulumiAppParam<CoreAppLegacyConfig>;\n\n /**\n * Provides a way to adjust existing Pulumi code (cloud infrastructure resources)\n * or add additional ones into the mix.\n */\n pulumi?: (app: CorePulumiApp) => void | Promise<void>;\n}\n\nexport interface CoreAppLegacyConfig {\n useEmailAsUsername?: boolean;\n}\n\nexport function createCorePulumiApp(projectAppParams: CreateCorePulumiAppParams = {}) {\n return createPulumiApp({\n name: \"core\",\n path: \"apps/core\",\n config: projectAppParams,\n program: async app => {\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 if (projectAppParams.pulumi) {\n app.addHandler(() => {\n return projectAppParams.pulumi!(app as CorePulumiApp);\n });\n }\n\n const prod = app.params.run.env === \"prod\";\n const protect = app.getParam(projectAppParams.protect) || prod;\n const legacyConfig = app.getParam(projectAppParams.legacy) || {};\n\n // Setup DynamoDB table\n const dynamoDbTable = app.addModule(CoreDynamo, { protect });\n\n // Setup VPC\n const vpcEnabled = app.getParam(projectAppParams?.vpc) || prod;\n const vpc = vpcEnabled ? app.addModule(CoreVpc) : null;\n\n // Setup Cognito\n const cognito = app.addModule(CoreCognito, {\n protect,\n useEmailAsUsername: legacyConfig.useEmailAsUsername ?? false\n });\n\n // Setup event bus\n const eventBus = app.addModule(CoreEventBus);\n\n // Setup file core bucket\n const fileManagerBucket = app.addModule(CoreFileManger, { protect });\n\n const elasticSearch = app.getParam(projectAppParams?.elasticSearch)\n ? app.addModule(ElasticSearch, { protect })\n : null;\n\n app.addOutputs({\n fileManagerBucketId: fileManagerBucket.output.id,\n primaryDynamodbTableArn: dynamoDbTable.output.arn,\n primaryDynamodbTableName: dynamoDbTable.output.name,\n primaryDynamodbTableHashKey: dynamoDbTable.output.hashKey,\n primaryDynamodbTableRangeKey: dynamoDbTable.output.rangeKey,\n cognitoUserPoolId: cognito.userPool.output.id,\n cognitoUserPoolArn: cognito.userPool.output.arn,\n cognitoUserPoolPasswordPolicy: cognito.userPool.output.passwordPolicy,\n cognitoAppClientId: cognito.userPoolClient.output.id,\n eventBusArn: eventBus.output.arn\n });\n\n tagResources({\n WbyProjectName: String(process.env[\"WEBINY_PROJECT_NAME\"]),\n WbyEnvironment: String(process.env[\"WEBINY_ENV\"])\n });\n\n return {\n dynamoDbTable,\n vpc,\n ...cognito,\n fileManagerBucket,\n eventBus,\n elasticSearch\n };\n }\n });\n}\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAuCO,SAASA,mBAAT,CAA6BC,gBAA2C,GAAG,EAA3E,EAA+E;EAClF,OAAO,IAAAC,uBAAA,EAAgB;IACnBC,IAAI,EAAE,MADa;IAEnBC,IAAI,EAAE,WAFa;IAGnBC,MAAM,EAAEJ,gBAHW;IAInBK,OAAO,EAAE,MAAMC,GAAN,IAAa;MAClB;MACA;MACA,IAAIN,gBAAgB,CAACO,MAArB,EAA6B;QACzBD,GAAG,CAACE,UAAJ,CAAe,MAAM;UACjB,OAAOR,gBAAgB,CAACO,MAAjB,CAAyBD,GAAzB,CAAP;QACH,CAFD;MAGH;;MAED,MAAMG,IAAI,GAAGH,GAAG,CAACI,MAAJ,CAAWC,GAAX,CAAeC,GAAf,KAAuB,MAApC;MACA,MAAMC,OAAO,GAAGP,GAAG,CAACQ,QAAJ,CAAad,gBAAgB,CAACa,OAA9B,KAA0CJ,IAA1D;MACA,MAAMM,YAAY,GAAGT,GAAG,CAACQ,QAAJ,CAAad,gBAAgB,CAACgB,MAA9B,KAAyC,EAA9D,CAXkB,CAalB;;MACA,MAAMC,aAAa,GAAGX,GAAG,CAACY,SAAJ,CAAcC,sBAAd,EAA0B;QAAEN;MAAF,CAA1B,CAAtB,CAdkB,CAgBlB;;MACA,MAAMO,UAAU,GAAGd,GAAG,CAACQ,QAAJ,CAAad,gBAAb,aAAaA,gBAAb,uBAAaA,gBAAgB,CAAEqB,GAA/B,KAAuCZ,IAA1D;MACA,MAAMY,GAAG,GAAGD,UAAU,GAAGd,GAAG,CAACY,SAAJ,CAAcI,gBAAd,CAAH,GAA4B,IAAlD,CAlBkB,CAoBlB;;MACA,MAAMC,OAAO,GAAGjB,GAAG,CAACY,SAAJ,CAAcM,wBAAd,EAA2B;QACvCX,OADuC;QAEvCY,kBAAkB,EAAEV,YAAY,CAACU,kBAAb,IAAmC;MAFhB,CAA3B,CAAhB,CArBkB,CA0BlB;;MACA,MAAMC,QAAQ,GAAGpB,GAAG,CAACY,SAAJ,CAAcS,0BAAd,CAAjB,CA3BkB,CA6BlB;;MACA,
|
|
1
|
+
{"version":3,"names":["createCorePulumiApp","projectAppParams","createPulumiApp","name","path","config","program","app","pulumi","addHandler","prod","params","run","env","protect","getParam","legacyConfig","legacy","dynamoDbTable","addModule","CoreDynamo","vpcEnabled","vpc","CoreVpc","cognito","CoreCognito","useEmailAsUsername","eventBus","CoreEventBus","bucket","fileManagerBucket","CoreFileManger","elasticSearch","ElasticSearch","addOutputs","fileManagerBucketId","output","id","primaryDynamodbTableArn","arn","primaryDynamodbTableName","primaryDynamodbTableHashKey","hashKey","primaryDynamodbTableRangeKey","rangeKey","cognitoUserPoolId","userPool","cognitoUserPoolArn","cognitoUserPoolPasswordPolicy","passwordPolicy","cognitoAppClientId","userPoolClient","eventBusArn","tagResources","WbyProjectName","String","process","WbyEnvironment"],"sources":["createCorePulumiApp.ts"],"sourcesContent":["import { createPulumiApp, PulumiAppParam } from \"@webiny/pulumi\";\nimport { CoreCognito } from \"./CoreCognito\";\nimport { CoreDynamo } from \"./CoreDynamo\";\nimport { ElasticSearch } from \"./CoreElasticSearch\";\nimport { CoreEventBus } from \"./CoreEventBus\";\nimport { CoreFileManger } from \"./CoreFileManager\";\nimport { CoreVpc } from \"./CoreVpc\";\nimport { tagResources } from \"~/utils\";\n\nexport type CorePulumiApp = ReturnType<typeof createCorePulumiApp>;\n\nexport interface CreateCorePulumiAppParams {\n /**\n * Secures against deleting database by accident.\n * By default enabled in production environments.\n */\n protect?: PulumiAppParam<boolean>;\n\n /**\n * Enables ElasticSearch infrastructure.\n * Note that it requires also changes in application code.\n */\n elasticSearch?: PulumiAppParam<boolean>;\n\n /**\n * Enables VPC for the application.\n * By default enabled in production environments.\n */\n vpc?: PulumiAppParam<boolean>;\n\n /**\n * Additional settings for backwards compatibility.\n */\n legacy?: PulumiAppParam<CoreAppLegacyConfig>;\n\n /**\n * Provides a way to adjust existing Pulumi code (cloud infrastructure resources)\n * or add additional ones into the mix.\n */\n pulumi?: (app: CorePulumiApp) => void | Promise<void>;\n}\n\nexport interface CoreAppLegacyConfig {\n useEmailAsUsername?: boolean;\n}\n\nexport function createCorePulumiApp(projectAppParams: CreateCorePulumiAppParams = {}) {\n return createPulumiApp({\n name: \"core\",\n path: \"apps/core\",\n config: projectAppParams,\n program: async app => {\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 if (projectAppParams.pulumi) {\n app.addHandler(() => {\n return projectAppParams.pulumi!(app as CorePulumiApp);\n });\n }\n\n const prod = app.params.run.env === \"prod\";\n const protect = app.getParam(projectAppParams.protect) || prod;\n const legacyConfig = app.getParam(projectAppParams.legacy) || {};\n\n // Setup DynamoDB table\n const dynamoDbTable = app.addModule(CoreDynamo, { protect });\n\n // Setup VPC\n const vpcEnabled = app.getParam(projectAppParams?.vpc) || prod;\n const vpc = vpcEnabled ? app.addModule(CoreVpc) : null;\n\n // Setup Cognito\n const cognito = app.addModule(CoreCognito, {\n protect,\n useEmailAsUsername: legacyConfig.useEmailAsUsername ?? false\n });\n\n // Setup event bus\n const eventBus = app.addModule(CoreEventBus);\n\n // Setup file core bucket\n const { bucket: fileManagerBucket } = app.addModule(CoreFileManger, { protect });\n\n const elasticSearch = app.getParam(projectAppParams?.elasticSearch)\n ? app.addModule(ElasticSearch, { protect })\n : null;\n\n app.addOutputs({\n fileManagerBucketId: fileManagerBucket.output.id,\n primaryDynamodbTableArn: dynamoDbTable.output.arn,\n primaryDynamodbTableName: dynamoDbTable.output.name,\n primaryDynamodbTableHashKey: dynamoDbTable.output.hashKey,\n primaryDynamodbTableRangeKey: dynamoDbTable.output.rangeKey,\n cognitoUserPoolId: cognito.userPool.output.id,\n cognitoUserPoolArn: cognito.userPool.output.arn,\n cognitoUserPoolPasswordPolicy: cognito.userPool.output.passwordPolicy,\n cognitoAppClientId: cognito.userPoolClient.output.id,\n eventBusArn: eventBus.output.arn\n });\n\n tagResources({\n WbyProjectName: String(process.env[\"WEBINY_PROJECT_NAME\"]),\n WbyEnvironment: String(process.env[\"WEBINY_ENV\"])\n });\n\n return {\n dynamoDbTable,\n vpc,\n ...cognito,\n fileManagerBucket,\n eventBus,\n elasticSearch\n };\n }\n });\n}\n"],"mappings":"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"}
|
package/apps/createAppBucket.js
CHANGED
|
@@ -38,8 +38,7 @@ function createPublicAppBucket(app, name) {
|
|
|
38
38
|
bucket,
|
|
39
39
|
origin
|
|
40
40
|
};
|
|
41
|
-
} //
|
|
42
|
-
// Allows to have private S3 buckets available only through cloudfront distribution.
|
|
41
|
+
} // Forces S3 buckets to be available only through a cloudfront distribution.
|
|
43
42
|
|
|
44
43
|
|
|
45
44
|
function createPrivateAppBucket(app, name) {
|
|
@@ -58,7 +57,9 @@ function createPrivateAppBucket(app, name) {
|
|
|
58
57
|
});
|
|
59
58
|
const origin = {
|
|
60
59
|
originId: bucket.output.arn,
|
|
61
|
-
domainName: bucket.output.
|
|
60
|
+
domainName: bucket.output.bucket.apply( // We need to create a regional domain name. Otherwise, we'll run into the following issue:
|
|
61
|
+
// https://aws.amazon.com/premiumsupport/knowledge-center/s3-http-307-response/
|
|
62
|
+
name => `${name}.s3.${String(process.env.AWS_REGION)}.amazonaws.com`),
|
|
62
63
|
s3OriginConfig: {
|
|
63
64
|
originAccessIdentity: originIdentity.output.cloudfrontAccessIdentityPath
|
|
64
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createPublicAppBucket","app","name","bucket","addResource","aws","s3","Bucket","config","acl","CannedAcl","PublicRead","forceDestroy","website","indexDocument","errorDocument","origin","originId","output","arn","domainName","websiteEndpoint","customOriginConfig","originProtocolPolicy","httpPort","httpsPort","originSslProtocols","createPrivateAppBucket","Private","originIdentity","cloudfront","OriginAccessIdentity","
|
|
1
|
+
{"version":3,"names":["createPublicAppBucket","app","name","bucket","addResource","aws","s3","Bucket","config","acl","CannedAcl","PublicRead","forceDestroy","website","indexDocument","errorDocument","origin","originId","output","arn","domainName","websiteEndpoint","customOriginConfig","originProtocolPolicy","httpPort","httpsPort","originSslProtocols","createPrivateAppBucket","Private","originIdentity","cloudfront","OriginAccessIdentity","apply","String","process","env","AWS_REGION","s3OriginConfig","originAccessIdentity","cloudfrontAccessIdentityPath","bucketPublicAccessBlock","BucketPublicAccessBlock","id","blockPublicAcls","blockPublicPolicy","ignorePublicAcls","restrictPublicBuckets","bucketPolicy","BucketPolicy","policy","Version","Statement","statements","Effect","Principal","AWS","iamArn","Action","Resource"],"sources":["createAppBucket.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport { PulumiApp } from \"@webiny/pulumi\";\n\nexport function createPublicAppBucket(app: PulumiApp, name: string) {\n const bucket = app.addResource(aws.s3.Bucket, {\n name: name,\n config: {\n acl: aws.s3.CannedAcl.PublicRead,\n forceDestroy: true,\n website: {\n indexDocument: \"index.html\",\n errorDocument: \"_NOT_FOUND_PAGE_/index.html\"\n }\n }\n });\n\n const origin: aws.types.input.cloudfront.DistributionOrigin = {\n originId: bucket.output.arn,\n domainName: bucket.output.websiteEndpoint,\n customOriginConfig: {\n originProtocolPolicy: \"http-only\",\n httpPort: 80,\n httpsPort: 443,\n originSslProtocols: [\"TLSv1.2\"]\n }\n };\n\n return {\n bucket,\n origin\n };\n}\n\n// Forces S3 buckets to be available only through a cloudfront distribution.\nexport function createPrivateAppBucket(app: PulumiApp, name: string) {\n const bucket = app.addResource(aws.s3.Bucket, {\n name: name,\n config: {\n acl: aws.s3.CannedAcl.Private,\n forceDestroy: true\n }\n });\n\n // Origin Identity is a kind of AWS user that represents Cloudfront distribution\n // We can add IAM policies to it later, to allow accessing private S3 bucket\n const originIdentity = app.addResource(aws.cloudfront.OriginAccessIdentity, {\n name: `${name}-origin-identity`,\n config: {}\n });\n\n const origin: aws.types.input.cloudfront.DistributionOrigin = {\n originId: bucket.output.arn,\n domainName: bucket.output.bucket.apply(\n // We need to create a regional domain name. Otherwise, we'll run into the following issue:\n // https://aws.amazon.com/premiumsupport/knowledge-center/s3-http-307-response/\n name => `${name}.s3.${String(process.env.AWS_REGION)}.amazonaws.com`\n ),\n s3OriginConfig: {\n originAccessIdentity: originIdentity.output.cloudfrontAccessIdentityPath\n }\n };\n\n // block any public access\n const bucketPublicAccessBlock = app.addResource(aws.s3.BucketPublicAccessBlock, {\n name: `${name}-bucket-block-access`,\n config: {\n bucket: bucket.output.id,\n blockPublicAcls: true,\n blockPublicPolicy: true,\n ignorePublicAcls: true,\n restrictPublicBuckets: true\n }\n });\n\n // Create an IAM policy to allow access to S3 bucket from cloudfront\n const bucketPolicy = app.addResource(aws.s3.BucketPolicy, {\n name: `${name}-bucket-policy`,\n config: {\n bucket: bucket.output.bucket,\n policy: {\n Version: \"2012-10-17\",\n Statement: bucket.output.arn.apply(arn => {\n const statements: aws.iam.PolicyStatement[] = [\n {\n Effect: \"Allow\",\n Principal: { AWS: originIdentity.output.iamArn },\n // we need GetObject to retrieve objects from S3\n // and ListBucket allows to properly handle non-existing files (404)\n Action: [\"s3:ListBucket\", \"s3:GetObject\"],\n Resource: [`${arn}`, `${arn}/*`]\n }\n ];\n\n return statements;\n })\n }\n }\n });\n\n return {\n bucket,\n originIdentity,\n origin,\n bucketPublicAccessBlock,\n bucketPolicy\n };\n}\n"],"mappings":"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"}
|
package/apps/index.d.ts
CHANGED
package/apps/index.js
CHANGED
|
@@ -55,6 +55,20 @@ Object.keys(_api).forEach(function (key) {
|
|
|
55
55
|
});
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
+
var _react = require("./react");
|
|
59
|
+
|
|
60
|
+
Object.keys(_react).forEach(function (key) {
|
|
61
|
+
if (key === "default" || key === "__esModule") return;
|
|
62
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
63
|
+
if (key in exports && exports[key] === _react[key]) return;
|
|
64
|
+
Object.defineProperty(exports, key, {
|
|
65
|
+
enumerable: true,
|
|
66
|
+
get: function () {
|
|
67
|
+
return _react[key];
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
|
|
58
72
|
var _admin = require("./admin");
|
|
59
73
|
|
|
60
74
|
Object.keys(_admin).forEach(function (key) {
|
package/apps/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./core\";\nexport * from \"./common\";\nexport * from \"./api\";\nexport * from \"./admin\";\nexport * from \"./website\";\nexport { CustomDomainParams } from \"./customDomain\";\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA"}
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./core\";\nexport * from \"./common\";\nexport * from \"./api\";\nexport * from \"./react\";\nexport * from \"./admin\";\nexport * from \"./website\";\nexport { CustomDomainParams } from \"./customDomain\";\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AACA"}
|
package/apps/lambdaUtils.js
CHANGED
|
@@ -66,17 +66,16 @@ function createLambdaRole(app, params) {
|
|
|
66
66
|
policyArn: params.executionRole
|
|
67
67
|
}
|
|
68
68
|
});
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const vpc = app.getModule(_common.VpcConfig);
|
|
72
|
-
app.addResource(aws.iam.RolePolicyAttachment, {
|
|
73
|
-
name: `${params.name}-execution-role`,
|
|
74
|
-
config: {
|
|
75
|
-
role: role.output,
|
|
76
|
-
policyArn: vpc.enabled ? aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole : aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
}
|
|
69
|
+
} // Add default execution role.
|
|
70
|
+
|
|
80
71
|
|
|
72
|
+
const vpc = app.getModule(_common.VpcConfig);
|
|
73
|
+
app.addResource(aws.iam.RolePolicyAttachment, {
|
|
74
|
+
name: `${params.name}-default-execution-role`,
|
|
75
|
+
config: {
|
|
76
|
+
role: role.output,
|
|
77
|
+
policyArn: vpc.enabled ? aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole : aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole
|
|
78
|
+
}
|
|
79
|
+
});
|
|
81
80
|
return role;
|
|
82
81
|
}
|
package/apps/lambdaUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createLambdaRole","app","params","role","addResource","aws","iam","Role","name","config","assumeRolePolicy","Version","Statement","Action","Principal","Service","Effect","policy","RolePolicyAttachment","output","policyArn","arn","executionRole","vpc","getModule","VpcConfig","enabled","ManagedPolicy","AWSLambdaVPCAccessExecutionRole","AWSLambdaBasicExecutionRole"],"sources":["lambdaUtils.ts"],"sourcesContent":["import * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport { PulumiApp } from \"@webiny/pulumi\";\nexport * from \"../utils/lambdaEnvVariables\";\n\nimport { VpcConfig } from \"./common\";\n\ninterface LambdaRoleParams {\n name: string;\n policy?: pulumi.Output<aws.iam.Policy>;\n executionRole?: pulumi.Input<string>;\n}\n\nexport function createLambdaRole(app: PulumiApp, params: LambdaRoleParams) {\n const role = app.addResource(aws.iam.Role, {\n name: params.name,\n config: {\n assumeRolePolicy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: \"sts:AssumeRole\",\n Principal: {\n Service: \"lambda.amazonaws.com\"\n },\n Effect: \"Allow\"\n }\n ]\n }\n }\n });\n\n if (params.policy) {\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${params.name}-policy`,\n config: {\n role: role.output,\n policyArn: params.policy.arn\n }\n });\n }\n\n if (params.executionRole) {\n // If execution role is set, use it.\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${params.name}-execution-role`,\n config: {\n role: role.output,\n policyArn: params.executionRole\n }\n });\n }
|
|
1
|
+
{"version":3,"names":["createLambdaRole","app","params","role","addResource","aws","iam","Role","name","config","assumeRolePolicy","Version","Statement","Action","Principal","Service","Effect","policy","RolePolicyAttachment","output","policyArn","arn","executionRole","vpc","getModule","VpcConfig","enabled","ManagedPolicy","AWSLambdaVPCAccessExecutionRole","AWSLambdaBasicExecutionRole"],"sources":["lambdaUtils.ts"],"sourcesContent":["import * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport { PulumiApp } from \"@webiny/pulumi\";\nexport * from \"../utils/lambdaEnvVariables\";\n\nimport { VpcConfig } from \"./common\";\n\ninterface LambdaRoleParams {\n name: string;\n policy?: pulumi.Output<aws.iam.Policy>;\n executionRole?: pulumi.Input<string>;\n}\n\nexport function createLambdaRole(app: PulumiApp, params: LambdaRoleParams) {\n const role = app.addResource(aws.iam.Role, {\n name: params.name,\n config: {\n assumeRolePolicy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: \"sts:AssumeRole\",\n Principal: {\n Service: \"lambda.amazonaws.com\"\n },\n Effect: \"Allow\"\n }\n ]\n }\n }\n });\n\n if (params.policy) {\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${params.name}-policy`,\n config: {\n role: role.output,\n policyArn: params.policy.arn\n }\n });\n }\n\n if (params.executionRole) {\n // If execution role is set, use it.\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${params.name}-execution-role`,\n config: {\n role: role.output,\n policyArn: params.executionRole\n }\n });\n }\n\n // Add default execution role.\n const vpc = app.getModule(VpcConfig);\n\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${params.name}-default-execution-role`,\n config: {\n role: role.output,\n policyArn: vpc.enabled\n ? aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole\n : aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole\n }\n });\n\n return role;\n}\n"],"mappings":";;;;;;;;;;AACA;;AAEA;;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;;AAEA;;;;;;AAQO,SAASA,gBAAT,CAA0BC,GAA1B,EAA0CC,MAA1C,EAAoE;EACvE,MAAMC,IAAI,GAAGF,GAAG,CAACG,WAAJ,CAAgBC,GAAG,CAACC,GAAJ,CAAQC,IAAxB,EAA8B;IACvCC,IAAI,EAAEN,MAAM,CAACM,IAD0B;IAEvCC,MAAM,EAAE;MACJC,gBAAgB,EAAE;QACdC,OAAO,EAAE,YADK;QAEdC,SAAS,EAAE,CACP;UACIC,MAAM,EAAE,gBADZ;UAEIC,SAAS,EAAE;YACPC,OAAO,EAAE;UADF,CAFf;UAKIC,MAAM,EAAE;QALZ,CADO;MAFG;IADd;EAF+B,CAA9B,CAAb;;EAkBA,IAAId,MAAM,CAACe,MAAX,EAAmB;IACfhB,GAAG,CAACG,WAAJ,CAAgBC,GAAG,CAACC,GAAJ,CAAQY,oBAAxB,EAA8C;MAC1CV,IAAI,EAAG,GAAEN,MAAM,CAACM,IAAK,SADqB;MAE1CC,MAAM,EAAE;QACJN,IAAI,EAAEA,IAAI,CAACgB,MADP;QAEJC,SAAS,EAAElB,MAAM,CAACe,MAAP,CAAcI;MAFrB;IAFkC,CAA9C;EAOH;;EAED,IAAInB,MAAM,CAACoB,aAAX,EAA0B;IACtB;IACArB,GAAG,CAACG,WAAJ,CAAgBC,GAAG,CAACC,GAAJ,CAAQY,oBAAxB,EAA8C;MAC1CV,IAAI,EAAG,GAAEN,MAAM,CAACM,IAAK,iBADqB;MAE1CC,MAAM,EAAE;QACJN,IAAI,EAAEA,IAAI,CAACgB,MADP;QAEJC,SAAS,EAAElB,MAAM,CAACoB;MAFd;IAFkC,CAA9C;EAOH,CAtCsE,CAwCvE;;;EACA,MAAMC,GAAG,GAAGtB,GAAG,CAACuB,SAAJ,CAAcC,iBAAd,CAAZ;EAEAxB,GAAG,CAACG,WAAJ,CAAgBC,GAAG,CAACC,GAAJ,CAAQY,oBAAxB,EAA8C;IAC1CV,IAAI,EAAG,GAAEN,MAAM,CAACM,IAAK,yBADqB;IAE1CC,MAAM,EAAE;MACJN,IAAI,EAAEA,IAAI,CAACgB,MADP;MAEJC,SAAS,EAAEG,GAAG,CAACG,OAAJ,GACLrB,GAAG,CAACC,GAAJ,CAAQqB,aAAR,CAAsBC,+BADjB,GAELvB,GAAG,CAACC,GAAJ,CAAQqB,aAAR,CAAsBE;IAJxB;EAFkC,CAA9C;EAUA,OAAO1B,IAAP;AACH"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as aws from "@pulumi/aws";
|
|
2
|
+
import { PulumiAppParamCallback } from "@webiny/pulumi";
|
|
3
|
+
import { CustomDomainParams } from "../customDomain";
|
|
4
|
+
export declare type ReactPulumiApp = ReturnType<typeof createReactPulumiApp>;
|
|
5
|
+
export interface CreateReactPulumiAppParams {
|
|
6
|
+
/**
|
|
7
|
+
* A name of the app, e.g., "user-area"
|
|
8
|
+
*/
|
|
9
|
+
name: string;
|
|
10
|
+
/**
|
|
11
|
+
* A folder where the app is located, e.g., "apps/user-area"
|
|
12
|
+
*/
|
|
13
|
+
folder: string;
|
|
14
|
+
/** Custom domain configuration */
|
|
15
|
+
domains?: PulumiAppParamCallback<CustomDomainParams>;
|
|
16
|
+
/**
|
|
17
|
+
* Provides a way to adjust existing Pulumi code (cloud infrastructure resources)
|
|
18
|
+
* or add additional ones into the mix.
|
|
19
|
+
*/
|
|
20
|
+
pulumi?: (app: ReactPulumiApp) => void | Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
export declare const createReactPulumiApp: (projectAppParams: CreateReactPulumiAppParams) => import("@webiny/pulumi").PulumiApp<{
|
|
23
|
+
cloudfront: import("@webiny/pulumi").PulumiAppResource<typeof aws.cloudfront.Distribution>;
|
|
24
|
+
bucket: import("@webiny/pulumi").PulumiAppResource<typeof aws.s3.Bucket>;
|
|
25
|
+
originIdentity: import("@webiny/pulumi").PulumiAppResource<typeof aws.cloudfront.OriginAccessIdentity>;
|
|
26
|
+
origin: aws.types.input.cloudfront.DistributionOrigin;
|
|
27
|
+
bucketPublicAccessBlock: import("@webiny/pulumi").PulumiAppResource<typeof aws.s3.BucketPublicAccessBlock>;
|
|
28
|
+
bucketPolicy: import("@webiny/pulumi").PulumiAppResource<typeof aws.s3.BucketPolicy>;
|
|
29
|
+
}>;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.createReactPulumiApp = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var aws = _interopRequireWildcard(require("@pulumi/aws"));
|
|
13
|
+
|
|
14
|
+
var _pulumi = require("@webiny/pulumi");
|
|
15
|
+
|
|
16
|
+
var _utils = require("../../utils");
|
|
17
|
+
|
|
18
|
+
var _createAppBucket = require("../createAppBucket");
|
|
19
|
+
|
|
20
|
+
var _customDomain = require("../customDomain");
|
|
21
|
+
|
|
22
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
+
|
|
24
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
|
+
|
|
26
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
27
|
+
|
|
28
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
29
|
+
|
|
30
|
+
const createReactPulumiApp = projectAppParams => {
|
|
31
|
+
return (0, _pulumi.createPulumiApp)({
|
|
32
|
+
name: projectAppParams.name,
|
|
33
|
+
path: projectAppParams.folder,
|
|
34
|
+
config: projectAppParams,
|
|
35
|
+
program: async app => {
|
|
36
|
+
const {
|
|
37
|
+
name
|
|
38
|
+
} = projectAppParams; // Overrides must be applied via a handler, registered at the very start of the program.
|
|
39
|
+
// By doing this, we're ensuring user's adjustments are not applied to late.
|
|
40
|
+
|
|
41
|
+
if (projectAppParams.pulumi) {
|
|
42
|
+
app.addHandler(() => {
|
|
43
|
+
return projectAppParams.pulumi(app);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const bucket = (0, _createAppBucket.createPrivateAppBucket)(app, `${name}-app`);
|
|
48
|
+
const cloudfront = app.addResource(aws.cloudfront.Distribution, {
|
|
49
|
+
name: `${name}-app-cdn`,
|
|
50
|
+
config: {
|
|
51
|
+
enabled: true,
|
|
52
|
+
waitForDeployment: false,
|
|
53
|
+
origins: [bucket.origin],
|
|
54
|
+
defaultRootObject: "index.html",
|
|
55
|
+
defaultCacheBehavior: {
|
|
56
|
+
compress: true,
|
|
57
|
+
targetOriginId: bucket.origin.originId,
|
|
58
|
+
viewerProtocolPolicy: "redirect-to-https",
|
|
59
|
+
allowedMethods: ["GET", "HEAD", "OPTIONS"],
|
|
60
|
+
cachedMethods: ["GET", "HEAD", "OPTIONS"],
|
|
61
|
+
forwardedValues: {
|
|
62
|
+
cookies: {
|
|
63
|
+
forward: "none"
|
|
64
|
+
},
|
|
65
|
+
queryString: false
|
|
66
|
+
},
|
|
67
|
+
// MinTTL <= DefaultTTL <= MaxTTL
|
|
68
|
+
minTtl: 0,
|
|
69
|
+
defaultTtl: 600,
|
|
70
|
+
maxTtl: 600
|
|
71
|
+
},
|
|
72
|
+
priceClass: "PriceClass_100",
|
|
73
|
+
customErrorResponses: [{
|
|
74
|
+
errorCode: 404,
|
|
75
|
+
responseCode: 404,
|
|
76
|
+
responsePagePath: "/index.html"
|
|
77
|
+
}],
|
|
78
|
+
restrictions: {
|
|
79
|
+
geoRestriction: {
|
|
80
|
+
restrictionType: "none"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
viewerCertificate: {
|
|
84
|
+
cloudfrontDefaultCertificate: true
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
const domains = app.getParam(projectAppParams.domains);
|
|
89
|
+
|
|
90
|
+
if (domains) {
|
|
91
|
+
(0, _customDomain.applyCustomDomain)(cloudfront, domains);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
app.addOutputs({
|
|
95
|
+
appStorage: bucket.bucket.output.id,
|
|
96
|
+
appDomain: cloudfront.output.domainName,
|
|
97
|
+
appUrl: cloudfront.output.domainName.apply(value => `https://${value}`)
|
|
98
|
+
});
|
|
99
|
+
(0, _utils.tagResources)({
|
|
100
|
+
WbyAppName: name,
|
|
101
|
+
WbyProjectName: String(process.env["WEBINY_PROJECT_NAME"]),
|
|
102
|
+
WbyEnvironment: String(process.env["WEBINY_ENV"])
|
|
103
|
+
});
|
|
104
|
+
return _objectSpread(_objectSpread({}, bucket), {}, {
|
|
105
|
+
cloudfront
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
exports.createReactPulumiApp = createReactPulumiApp;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createReactPulumiApp","projectAppParams","createPulumiApp","name","path","folder","config","program","app","pulumi","addHandler","bucket","createPrivateAppBucket","cloudfront","addResource","aws","Distribution","enabled","waitForDeployment","origins","origin","defaultRootObject","defaultCacheBehavior","compress","targetOriginId","originId","viewerProtocolPolicy","allowedMethods","cachedMethods","forwardedValues","cookies","forward","queryString","minTtl","defaultTtl","maxTtl","priceClass","customErrorResponses","errorCode","responseCode","responsePagePath","restrictions","geoRestriction","restrictionType","viewerCertificate","cloudfrontDefaultCertificate","domains","getParam","applyCustomDomain","addOutputs","appStorage","output","id","appDomain","domainName","appUrl","apply","value","tagResources","WbyAppName","WbyProjectName","String","process","env","WbyEnvironment"],"sources":["createReactPulumiApp.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\n\nimport { createPulumiApp, PulumiAppParamCallback } from \"@webiny/pulumi\";\nimport { tagResources } from \"~/utils\";\nimport { createPrivateAppBucket } from \"../createAppBucket\";\nimport { applyCustomDomain, CustomDomainParams } from \"../customDomain\";\n\nexport type ReactPulumiApp = ReturnType<typeof createReactPulumiApp>;\n\nexport interface CreateReactPulumiAppParams {\n /**\n * A name of the app, e.g., \"user-area\"\n */\n name: string;\n\n /**\n * A folder where the app is located, e.g., \"apps/user-area\"\n */\n folder: string;\n\n /** Custom domain configuration */\n domains?: PulumiAppParamCallback<CustomDomainParams>;\n\n /**\n * Provides a way to adjust existing Pulumi code (cloud infrastructure resources)\n * or add additional ones into the mix.\n */\n pulumi?: (app: ReactPulumiApp) => void | Promise<void>;\n}\n\nexport const createReactPulumiApp = (projectAppParams: CreateReactPulumiAppParams) => {\n return createPulumiApp({\n name: projectAppParams.name,\n path: projectAppParams.folder,\n config: projectAppParams,\n program: async app => {\n const { name } = projectAppParams;\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 if (projectAppParams.pulumi) {\n app.addHandler(() => {\n return projectAppParams.pulumi!(app as ReactPulumiApp);\n });\n }\n\n const bucket = createPrivateAppBucket(app, `${name}-app`);\n\n const cloudfront = app.addResource(aws.cloudfront.Distribution, {\n name: `${name}-app-cdn`,\n config: {\n enabled: true,\n waitForDeployment: false,\n origins: [bucket.origin],\n defaultRootObject: \"index.html\",\n defaultCacheBehavior: {\n compress: true,\n targetOriginId: bucket.origin.originId,\n viewerProtocolPolicy: \"redirect-to-https\",\n allowedMethods: [\"GET\", \"HEAD\", \"OPTIONS\"],\n cachedMethods: [\"GET\", \"HEAD\", \"OPTIONS\"],\n forwardedValues: {\n cookies: { forward: \"none\" },\n queryString: false\n },\n // MinTTL <= DefaultTTL <= MaxTTL\n minTtl: 0,\n defaultTtl: 600,\n maxTtl: 600\n },\n priceClass: \"PriceClass_100\",\n customErrorResponses: [\n { errorCode: 404, responseCode: 404, responsePagePath: \"/index.html\" }\n ],\n restrictions: {\n geoRestriction: {\n restrictionType: \"none\"\n }\n },\n viewerCertificate: {\n cloudfrontDefaultCertificate: true\n }\n }\n });\n\n const domains = app.getParam(projectAppParams.domains);\n if (domains) {\n applyCustomDomain(cloudfront, domains);\n }\n\n app.addOutputs({\n appStorage: bucket.bucket.output.id,\n appDomain: cloudfront.output.domainName,\n appUrl: cloudfront.output.domainName.apply(value => `https://${value}`)\n });\n\n tagResources({\n WbyAppName: name,\n WbyProjectName: String(process.env[\"WEBINY_PROJECT_NAME\"]),\n WbyEnvironment: String(process.env[\"WEBINY_ENV\"])\n });\n\n return {\n ...bucket,\n cloudfront\n };\n }\n });\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./createReactPulumiApp";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _createReactPulumiApp = require("./createReactPulumiApp");
|
|
8
|
+
|
|
9
|
+
Object.keys(_createReactPulumiApp).forEach(function (key) {
|
|
10
|
+
if (key === "default" || key === "__esModule") return;
|
|
11
|
+
if (key in exports && exports[key] === _createReactPulumiApp[key]) return;
|
|
12
|
+
Object.defineProperty(exports, key, {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _createReactPulumiApp[key];
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./createReactPulumiApp\";\n"],"mappings":";;;;;;AAAA;;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|