@webiny/project-aws 6.3.0 → 6.4.0-beta.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/_templates/appTemplates/admin/src/index.tsx +0 -3
- package/abstractions/ApiGqlClient.js +2 -1
- package/abstractions/ApiGqlClient.js.map +1 -1
- package/abstractions/InvokeLambdaFunction.js +2 -1
- package/abstractions/InvokeLambdaFunction.js.map +1 -1
- package/abstractions/features/pulumi/AdminPulumi.js +2 -1
- package/abstractions/features/pulumi/AdminPulumi.js.map +1 -1
- package/abstractions/features/pulumi/ApiPulumi.js +2 -1
- package/abstractions/features/pulumi/ApiPulumi.js.map +1 -1
- package/abstractions/features/pulumi/CorePulumi.js +2 -1
- package/abstractions/features/pulumi/CorePulumi.js.map +1 -1
- package/abstractions/features/pulumi/index.js +0 -2
- package/abstractions/index.js +0 -2
- package/abstractions/services/AdminStackOutputService.js +2 -1
- package/abstractions/services/AdminStackOutputService.js.map +1 -1
- package/abstractions/services/ApiStackOutputService.js +2 -1
- package/abstractions/services/ApiStackOutputService.js.map +1 -1
- package/abstractions/services/CoreStackOutputService.js +2 -1
- package/abstractions/services/CoreStackOutputService.js.map +1 -1
- package/admin.js +5 -4
- package/admin.js.map +1 -1
- package/api.js +13 -12
- package/api.js.map +1 -1
- package/apps/createAdminApp.js +11 -12
- package/apps/createAdminApp.js.map +1 -1
- package/apps/createAdminAppConfig.js +12 -18
- package/apps/createAdminAppConfig.js.map +1 -1
- package/apps/createApiApp.js +17 -22
- package/apps/createApiApp.js.map +1 -1
- package/apps/createBlueGreenApp.js +13 -16
- package/apps/createBlueGreenApp.js.map +1 -1
- package/apps/createCoreApp.js +12 -13
- package/apps/createCoreApp.js.map +1 -1
- package/apps/createReactAppConfig.d.ts +0 -7
- package/apps/createReactAppConfig.js +56 -69
- package/apps/createReactAppConfig.js.map +1 -1
- package/apps/createSyncSystemApp.js +8 -7
- package/apps/createSyncSystemApp.js.map +1 -1
- package/apps/index.js +0 -2
- package/cli.js +3 -2
- package/cli.js.map +1 -1
- package/exports/extensions.js +0 -2
- package/exports/infra/admin.js +0 -2
- package/exports/infra/api.js +0 -2
- package/exports/infra/core.js +0 -2
- package/exports/infra.js +1 -3
- package/extensions/ApiLambdaFunction.js +45 -56
- package/extensions/ApiLambdaFunction.js.map +1 -1
- package/extensions/ApiRoute.js +90 -104
- package/extensions/ApiRoute.js.map +1 -1
- package/extensions/AwsDefaultRegion.js +17 -16
- package/extensions/AwsDefaultRegion.js.map +1 -1
- package/extensions/Cms/ModelFieldCompression.js +16 -15
- package/extensions/Cms/ModelFieldCompression.js.map +1 -1
- package/extensions/Encryption.js +30 -29
- package/extensions/Encryption.js.map +1 -1
- package/extensions/Mailer/Smtp.js +15 -14
- package/extensions/Mailer/Smtp.js.map +1 -1
- package/extensions/Mailer/Smtp.test.js +117 -131
- package/extensions/Mailer/Smtp.test.js.map +1 -1
- package/extensions/Mailer/SmtpParamsSchema.js +11 -14
- package/extensions/Mailer/SmtpParamsSchema.js.map +1 -1
- package/extensions/OpenSearch/EnsureOsServiceRoleBeforeCoreDeploy.js +25 -30
- package/extensions/OpenSearch/EnsureOsServiceRoleBeforeCoreDeploy.js.map +1 -1
- package/extensions/OpenSearch/EnsureOsWasDeployed.js +14 -24
- package/extensions/OpenSearch/EnsureOsWasDeployed.js.map +1 -1
- package/extensions/OpenSearch/InjectDdbEsLambdaFnHandler.js +25 -21
- package/extensions/OpenSearch/InjectDdbEsLambdaFnHandler.js.map +1 -1
- package/extensions/OpenSearch/ReplaceApiLambdaFnHandlers.js +26 -22
- package/extensions/OpenSearch/ReplaceApiLambdaFnHandlers.js.map +1 -1
- package/extensions/OpenSearch.js +30 -31
- package/extensions/OpenSearch.js.map +1 -1
- package/extensions/ProjectAws/AdminStackOutputService.js +0 -2
- package/extensions/ProjectAws/ApiStackOutputService.js +0 -2
- package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js +65 -74
- package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js.map +1 -1
- package/extensions/ProjectAws/AutoInstall.js +15 -14
- package/extensions/ProjectAws/AutoInstall.js.map +1 -1
- package/extensions/ProjectAws/BlueGreenDeployments/EnsureVariantBeforeDeploy.js +15 -19
- package/extensions/ProjectAws/BlueGreenDeployments/EnsureVariantBeforeDeploy.js.map +1 -1
- package/extensions/ProjectAws/BlueGreenDeployments/PrintDeploymentInfoAfterDeploy.js +56 -45
- package/extensions/ProjectAws/BlueGreenDeployments/PrintDeploymentInfoAfterDeploy.js.map +1 -1
- package/extensions/ProjectAws/BlueGreenDeployments/SetPrimaryVariantCliCommand.js +57 -55
- package/extensions/ProjectAws/BlueGreenDeployments/SetPrimaryVariantCliCommand.js.map +1 -1
- package/extensions/ProjectAws/BuildAppWorkspace.js +49 -54
- package/extensions/ProjectAws/BuildAppWorkspace.js.map +1 -1
- package/extensions/ProjectAws/CoreStackOutputService.js +0 -2
- package/extensions/ProjectAws/EnsureAwsCredentialsBeforeDeploy.js +26 -30
- package/extensions/ProjectAws/EnsureAwsCredentialsBeforeDeploy.js.map +1 -1
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVars.js +25 -38
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVars.js.map +1 -1
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeBuild.js +22 -17
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeBuild.js.map +1 -1
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeWatch.js +22 -17
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeWatch.js.map +1 -1
- package/extensions/ProjectAws/SetDatabaseSetupOutput.js +20 -21
- package/extensions/ProjectAws/SetDatabaseSetupOutput.js.map +1 -1
- package/extensions/ProjectAws/UploadAdminAppToS3.js +53 -58
- package/extensions/ProjectAws/UploadAdminAppToS3.js.map +1 -1
- package/extensions/ProjectAws/definitions.js +13 -6
- package/extensions/ProjectAws/definitions.js.map +1 -1
- package/extensions/ProjectAws.js +44 -45
- package/extensions/ProjectAws.js.map +1 -1
- package/extensions/RegisterRoutesPulumi.js +24 -29
- package/extensions/RegisterRoutesPulumi.js.map +1 -1
- package/extensions/definitions.js +10 -3
- package/extensions/definitions.js.map +1 -1
- package/extensions/index.js +0 -2
- package/features/ApiGqlClient.js +46 -51
- package/features/ApiGqlClient.js.map +1 -1
- package/features/InvokeLambdaFunction.js +30 -32
- package/features/InvokeLambdaFunction.js.map +1 -1
- package/features/index.js +0 -2
- package/index.js +0 -2
- package/infra.js +57 -59
- package/infra.js.map +1 -1
- package/package.json +14 -14
- package/project.js +7 -6
- package/project.js.map +1 -1
- package/pulumi/apps/admin/createAdminPulumiApp.js +36 -44
- package/pulumi/apps/admin/createAdminPulumiApp.js.map +1 -1
- package/pulumi/apps/admin/index.js +0 -2
- package/pulumi/apps/api/ApiBackgroundTask.js +153 -137
- package/pulumi/apps/api/ApiBackgroundTask.js.map +1 -1
- package/pulumi/apps/api/ApiCloudfront.js +188 -130
- package/pulumi/apps/api/ApiCloudfront.js.map +1 -1
- package/pulumi/apps/api/ApiFileManager.js +34 -33
- package/pulumi/apps/api/ApiFileManager.js.map +1 -1
- package/pulumi/apps/api/ApiGateway.js +67 -74
- package/pulumi/apps/api/ApiGateway.js.map +1 -1
- package/pulumi/apps/api/ApiGraphql.js +223 -152
- package/pulumi/apps/api/ApiGraphql.js.map +1 -1
- package/pulumi/apps/api/ApiOutput.js +29 -30
- package/pulumi/apps/api/ApiOutput.js.map +1 -1
- package/pulumi/apps/api/ApiScheduler.js +94 -92
- package/pulumi/apps/api/ApiScheduler.js.map +1 -1
- package/pulumi/apps/api/ApiWebsocket.js +141 -133
- package/pulumi/apps/api/ApiWebsocket.js.map +1 -1
- package/pulumi/apps/api/backgroundTask/definition.js +122 -144
- package/pulumi/apps/api/backgroundTask/definition.js.map +1 -1
- package/pulumi/apps/api/backgroundTask/policy.js +37 -23
- package/pulumi/apps/api/backgroundTask/policy.js.map +1 -1
- package/pulumi/apps/api/backgroundTask/role.js +29 -29
- package/pulumi/apps/api/backgroundTask/role.js.map +1 -1
- package/pulumi/apps/api/backgroundTask/types.js +9 -11
- package/pulumi/apps/api/backgroundTask/types.js.map +1 -1
- package/pulumi/apps/api/createApiPulumiApp.js +206 -274
- package/pulumi/apps/api/createApiPulumiApp.js.map +1 -1
- package/pulumi/apps/api/handleGuardDutyEvents.js +54 -51
- package/pulumi/apps/api/handleGuardDutyEvents.js.map +1 -1
- package/pulumi/apps/api/index.js +0 -2
- package/pulumi/apps/awsUtils.js +21 -24
- package/pulumi/apps/awsUtils.js.map +1 -1
- package/pulumi/apps/blueGreen/BlueGreenRouterApiGateway.js +37 -40
- package/pulumi/apps/blueGreen/BlueGreenRouterApiGateway.js.map +1 -1
- package/pulumi/apps/blueGreen/BlueGreenRouterCloudFront.js +83 -91
- package/pulumi/apps/blueGreen/BlueGreenRouterCloudFront.js.map +1 -1
- package/pulumi/apps/blueGreen/BlueGreenRouterCloudFrontStore.js +17 -16
- package/pulumi/apps/blueGreen/BlueGreenRouterCloudFrontStore.js.map +1 -1
- package/pulumi/apps/blueGreen/cloudfront/createCloudFrontDefaultCacheBehaviorPolicies.js +13 -12
- package/pulumi/apps/blueGreen/cloudfront/createCloudFrontDefaultCacheBehaviorPolicies.js.map +1 -1
- package/pulumi/apps/blueGreen/cloudfront/createCloudFrontFunctionDomainMap.js +9 -14
- package/pulumi/apps/blueGreen/cloudfront/createCloudFrontFunctionDomainMap.js.map +1 -1
- package/pulumi/apps/blueGreen/cloudfront/createOriginId.js +5 -7
- package/pulumi/apps/blueGreen/cloudfront/createOriginId.js.map +1 -1
- package/pulumi/apps/blueGreen/constants.js +15 -3
- package/pulumi/apps/blueGreen/constants.js.map +1 -1
- package/pulumi/apps/blueGreen/createBlueGreenPulumiApp.js +77 -103
- package/pulumi/apps/blueGreen/createBlueGreenPulumiApp.js.map +1 -1
- package/pulumi/apps/blueGreen/domains/attachDomainsToOutput.js +20 -26
- package/pulumi/apps/blueGreen/domains/attachDomainsToOutput.js.map +1 -1
- package/pulumi/apps/blueGreen/domains/convertApplicationDomains.js +17 -20
- package/pulumi/apps/blueGreen/domains/convertApplicationDomains.js.map +1 -1
- package/pulumi/apps/blueGreen/domains/getApplicationDomains.js +51 -61
- package/pulumi/apps/blueGreen/domains/getApplicationDomains.js.map +1 -1
- package/pulumi/apps/blueGreen/domains/resolveDomains.js +24 -38
- package/pulumi/apps/blueGreen/domains/resolveDomains.js.map +1 -1
- package/pulumi/apps/blueGreen/functions/buildHandlerFunction.js +7 -14
- package/pulumi/apps/blueGreen/functions/buildHandlerFunction.js.map +1 -1
- package/pulumi/apps/blueGreen/functions/handler.js +1 -57
- package/pulumi/apps/blueGreen/functions/handler.js.map +1 -1
- package/pulumi/apps/blueGreen/types.js +0 -3
- package/pulumi/apps/blueGreen/validation/validateDeployments.js +19 -24
- package/pulumi/apps/blueGreen/validation/validateDeployments.js.map +1 -1
- package/pulumi/apps/common/CoreOutput.js +34 -37
- package/pulumi/apps/common/CoreOutput.js.map +1 -1
- package/pulumi/apps/common/VpcConfig.js +20 -20
- package/pulumi/apps/common/VpcConfig.js.map +1 -1
- package/pulumi/apps/common/index.js +0 -2
- package/pulumi/apps/core/CoreAuditLogsDynamo.js +245 -182
- package/pulumi/apps/core/CoreAuditLogsDynamo.js.map +1 -1
- package/pulumi/apps/core/CoreCognito.js +117 -106
- package/pulumi/apps/core/CoreCognito.js.map +1 -1
- package/pulumi/apps/core/CoreDynamo.js +91 -70
- package/pulumi/apps/core/CoreDynamo.js.map +1 -1
- package/pulumi/apps/core/CoreEventBus.js +10 -9
- package/pulumi/apps/core/CoreEventBus.js.map +1 -1
- package/pulumi/apps/core/CoreFileManager.js +76 -68
- package/pulumi/apps/core/CoreFileManager.js.map +1 -1
- package/pulumi/apps/core/CoreOpenSearch.js +281 -305
- package/pulumi/apps/core/CoreOpenSearch.js.map +1 -1
- package/pulumi/apps/core/CoreVpc.js +155 -156
- package/pulumi/apps/core/CoreVpc.js.map +1 -1
- package/pulumi/apps/core/WatchCommand.js +94 -96
- package/pulumi/apps/core/WatchCommand.js.map +1 -1
- package/pulumi/apps/core/cognitoIdentityProviders/amazon.js +16 -22
- package/pulumi/apps/core/cognitoIdentityProviders/amazon.js.map +1 -1
- package/pulumi/apps/core/cognitoIdentityProviders/apple.js +16 -17
- package/pulumi/apps/core/cognitoIdentityProviders/apple.js.map +1 -1
- package/pulumi/apps/core/cognitoIdentityProviders/configure.js +44 -50
- package/pulumi/apps/core/cognitoIdentityProviders/configure.js.map +1 -1
- package/pulumi/apps/core/cognitoIdentityProviders/facebook.js +16 -17
- package/pulumi/apps/core/cognitoIdentityProviders/facebook.js.map +1 -1
- package/pulumi/apps/core/cognitoIdentityProviders/getIdpConfig.js +7 -8
- package/pulumi/apps/core/cognitoIdentityProviders/getIdpConfig.js.map +1 -1
- package/pulumi/apps/core/cognitoIdentityProviders/google.js +16 -17
- package/pulumi/apps/core/cognitoIdentityProviders/google.js.map +1 -1
- package/pulumi/apps/core/cognitoIdentityProviders/index.js +0 -2
- package/pulumi/apps/core/cognitoIdentityProviders/oidc.js +17 -18
- package/pulumi/apps/core/cognitoIdentityProviders/oidc.js.map +1 -1
- package/pulumi/apps/core/configureS3BucketMalwareProtection.js +251 -188
- package/pulumi/apps/core/configureS3BucketMalwareProtection.js.map +1 -1
- package/pulumi/apps/core/createCorePulumiApp.js +212 -280
- package/pulumi/apps/core/createCorePulumiApp.js.map +1 -1
- package/pulumi/apps/core/index.js +0 -2
- package/pulumi/apps/core/webinyWatchCommand/handler.js +45 -32
- package/pulumi/apps/core/webinyWatchCommand/handler.js.map +1 -1
- package/pulumi/apps/createAppBucket.js +157 -146
- package/pulumi/apps/createAppBucket.js.map +1 -1
- package/pulumi/apps/customDomain.js +7 -6
- package/pulumi/apps/customDomain.js.map +1 -1
- package/pulumi/apps/extensions/getAwsTagsFromExtension.js +8 -7
- package/pulumi/apps/extensions/getAwsTagsFromExtension.js.map +1 -1
- package/pulumi/apps/extensions/getBgDeploymentsConfigFromExtension.js +6 -7
- package/pulumi/apps/extensions/getBgDeploymentsConfigFromExtension.js.map +1 -1
- package/pulumi/apps/extensions/getOsConfigFromExtension.js +17 -41
- package/pulumi/apps/extensions/getOsConfigFromExtension.js.map +1 -1
- package/pulumi/apps/extensions/getVpcConfigFromExtension.js +13 -25
- package/pulumi/apps/extensions/getVpcConfigFromExtension.js.map +1 -1
- package/pulumi/apps/index.js +0 -3
- package/pulumi/apps/lambdaUtils.js +57 -61
- package/pulumi/apps/lambdaUtils.js.map +1 -1
- package/pulumi/apps/react/createReactPulumiApp.js +108 -129
- package/pulumi/apps/react/createReactPulumiApp.js.map +1 -1
- package/pulumi/apps/react/index.js +0 -2
- package/pulumi/apps/syncSystem/SyncSystemDynamo.js +77 -62
- package/pulumi/apps/syncSystem/SyncSystemDynamo.js.map +1 -1
- package/pulumi/apps/syncSystem/SyncSystemDynamoDb.js +74 -57
- package/pulumi/apps/syncSystem/SyncSystemDynamoDb.js.map +1 -1
- package/pulumi/apps/syncSystem/SyncSystemEventBus.js +77 -71
- package/pulumi/apps/syncSystem/SyncSystemEventBus.js.map +1 -1
- package/pulumi/apps/syncSystem/SyncSystemLambda.js +154 -86
- package/pulumi/apps/syncSystem/SyncSystemLambda.js.map +1 -1
- package/pulumi/apps/syncSystem/SyncSystemOutput.js +14 -13
- package/pulumi/apps/syncSystem/SyncSystemOutput.js.map +1 -1
- package/pulumi/apps/syncSystem/SyncSystemResolverLambda.js +56 -60
- package/pulumi/apps/syncSystem/SyncSystemResolverLambda.js.map +1 -1
- package/pulumi/apps/syncSystem/SyncSystemSQS.js +25 -49
- package/pulumi/apps/syncSystem/SyncSystemSQS.js.map +1 -1
- package/pulumi/apps/syncSystem/SyncSystemWorkerLambda.js +44 -43
- package/pulumi/apps/syncSystem/SyncSystemWorkerLambda.js.map +1 -1
- package/pulumi/apps/syncSystem/addTableItems.js +35 -45
- package/pulumi/apps/syncSystem/addTableItems.js.map +1 -1
- package/pulumi/apps/syncSystem/api/addServiceManifest.js +12 -14
- package/pulumi/apps/syncSystem/api/addServiceManifest.js.map +1 -1
- package/pulumi/apps/syncSystem/api/attachCognitoPermissions.js +49 -55
- package/pulumi/apps/syncSystem/api/attachCognitoPermissions.js.map +1 -1
- package/pulumi/apps/syncSystem/api/attachDynamoDbPermissions.js +88 -40
- package/pulumi/apps/syncSystem/api/attachDynamoDbPermissions.js.map +1 -1
- package/pulumi/apps/syncSystem/api/attachEventBusPermissions.js +37 -43
- package/pulumi/apps/syncSystem/api/attachEventBusPermissions.js.map +1 -1
- package/pulumi/apps/syncSystem/api/attachS3Permissions.js +51 -47
- package/pulumi/apps/syncSystem/api/attachS3Permissions.js.map +1 -1
- package/pulumi/apps/syncSystem/api/index.js +28 -46
- package/pulumi/apps/syncSystem/api/index.js.map +1 -1
- package/pulumi/apps/syncSystem/constants.js +2 -1
- package/pulumi/apps/syncSystem/constants.js.map +1 -1
- package/pulumi/apps/syncSystem/createSyncResourceName.js +2 -7
- package/pulumi/apps/syncSystem/createSyncResourceName.js.map +1 -1
- package/pulumi/apps/syncSystem/createSyncSystemPulumiApp.js +101 -166
- package/pulumi/apps/syncSystem/createSyncSystemPulumiApp.js.map +1 -1
- package/pulumi/apps/syncSystem/customApp.js +12 -16
- package/pulumi/apps/syncSystem/customApp.js.map +1 -1
- package/pulumi/apps/syncSystem/getSyncSystemOutput.js +5 -6
- package/pulumi/apps/syncSystem/getSyncSystemOutput.js.map +1 -1
- package/pulumi/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.js +108 -42
- package/pulumi/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.js.map +1 -1
- package/pulumi/apps/syncSystem/types.js +0 -3
- package/pulumi/constants.js +2 -1
- package/pulumi/constants.js.map +1 -1
- package/pulumi/env/awsRegion.js +3 -2
- package/pulumi/env/awsRegion.js.map +1 -1
- package/pulumi/env/base.js +11 -27
- package/pulumi/env/base.js.map +1 -1
- package/pulumi/env/env.js +3 -2
- package/pulumi/env/env.js.map +1 -1
- package/pulumi/env/projectName.js +3 -2
- package/pulumi/env/projectName.js.map +1 -1
- package/pulumi/env/variant.js +4 -3
- package/pulumi/env/variant.js.map +1 -1
- package/pulumi/extensions/AdminCustomDomains.js +15 -11
- package/pulumi/extensions/AdminCustomDomains.js.map +1 -1
- package/pulumi/extensions/AdminPulumi.js +16 -19
- package/pulumi/extensions/AdminPulumi.js.map +1 -1
- package/pulumi/extensions/ApiCustomDomains.js +15 -11
- package/pulumi/extensions/ApiCustomDomains.js.map +1 -1
- package/pulumi/extensions/ApiPulumi.js +16 -19
- package/pulumi/extensions/ApiPulumi.js.map +1 -1
- package/pulumi/extensions/AwsTags.js +11 -10
- package/pulumi/extensions/AwsTags.js.map +1 -1
- package/pulumi/extensions/BlueGreenDeployments.js +29 -26
- package/pulumi/extensions/BlueGreenDeployments.js.map +1 -1
- package/pulumi/extensions/CorePulumi.js +16 -19
- package/pulumi/extensions/CorePulumi.js.map +1 -1
- package/pulumi/extensions/OpenSearch.js +16 -15
- package/pulumi/extensions/OpenSearch.js.map +1 -1
- package/pulumi/extensions/Vpc.js +21 -20
- package/pulumi/extensions/Vpc.js.map +1 -1
- package/pulumi/extensions/index.js +12 -10
- package/pulumi/extensions/index.js.map +1 -1
- package/pulumi/features/AdminPulumi/AdminPulumi.js +18 -14
- package/pulumi/features/AdminPulumi/AdminPulumi.js.map +1 -1
- package/pulumi/features/AdminPulumi/index.js +0 -2
- package/pulumi/features/ApiPulumi/ApiPulumi.js +18 -14
- package/pulumi/features/ApiPulumi/ApiPulumi.js.map +1 -1
- package/pulumi/features/ApiPulumi/index.js +0 -2
- package/pulumi/features/CorePulumi/CorePulumi.js +18 -14
- package/pulumi/features/CorePulumi/CorePulumi.js.map +1 -1
- package/pulumi/features/CorePulumi/index.js +0 -2
- package/pulumi/features/index.js +0 -2
- package/pulumi/index.js +0 -2
- package/pulumi/types.js +0 -3
- package/pulumi/utils/addDomainsUrlsOutputs.js +20 -37
- package/pulumi/utils/addDomainsUrlsOutputs.js.map +1 -1
- package/pulumi/utils/addServiceManifestTableItem.js +12 -15
- package/pulumi/utils/addServiceManifestTableItem.js.map +1 -1
- package/pulumi/utils/crawlDirectory.js +10 -15
- package/pulumi/utils/crawlDirectory.js.map +1 -1
- package/pulumi/utils/createAssetArchive.js +5 -6
- package/pulumi/utils/createAssetArchive.js.map +1 -1
- package/pulumi/utils/dynamodb.js +26 -27
- package/pulumi/utils/dynamodb.js.map +1 -1
- package/pulumi/utils/getPresignedPost.js +27 -30
- package/pulumi/utils/getPresignedPost.js.map +1 -1
- package/pulumi/utils/index.js +1 -3
- package/pulumi/utils/lambdaEnvVariables.js +42 -54
- package/pulumi/utils/lambdaEnvVariables.js.map +1 -1
- package/pulumi/utils/tagResources.js +248 -28
- package/pulumi/utils/tagResources.js.map +1 -1
- package/pulumi/utils/uploadFolderToS3.js +101 -131
- package/pulumi/utils/uploadFolderToS3.js.map +1 -1
- package/pulumi/utils/withServiceManifest.js +28 -37
- package/pulumi/utils/withServiceManifest.js.map +1 -1
- package/services/AdminStackOutputService.js +14 -11
- package/services/AdminStackOutputService.js.map +1 -1
- package/services/ApiStackOutputService.js +14 -11
- package/services/ApiStackOutputService.js.map +1 -1
- package/services/CoreStackOutputService.js +14 -11
- package/services/CoreStackOutputService.js.map +1 -1
- package/utils/getTemplatesFolderPath.js +8 -10
- package/utils/getTemplatesFolderPath.js.map +1 -1
- package/utils/index.js +0 -2
- package/abstractions/features/pulumi/index.js.map +0 -1
- package/abstractions/index.js.map +0 -1
- package/apps/index.js.map +0 -1
- package/exports/extensions.js.map +0 -1
- package/exports/infra/admin.js.map +0 -1
- package/exports/infra/api.js.map +0 -1
- package/exports/infra/core.js.map +0 -1
- package/exports/infra.js.map +0 -1
- package/extensions/ProjectAws/AdminStackOutputService.js.map +0 -1
- package/extensions/ProjectAws/ApiStackOutputService.js.map +0 -1
- package/extensions/ProjectAws/CoreStackOutputService.js.map +0 -1
- package/extensions/index.js.map +0 -1
- package/features/index.js.map +0 -1
- package/index.js.map +0 -1
- package/pulumi/apps/admin/index.js.map +0 -1
- package/pulumi/apps/api/index.js.map +0 -1
- package/pulumi/apps/blueGreen/types.js.map +0 -1
- package/pulumi/apps/common/index.js.map +0 -1
- package/pulumi/apps/core/cognitoIdentityProviders/index.js.map +0 -1
- package/pulumi/apps/core/index.js.map +0 -1
- package/pulumi/apps/index.js.map +0 -1
- package/pulumi/apps/react/index.js.map +0 -1
- package/pulumi/apps/syncSystem/types.js.map +0 -1
- package/pulumi/features/AdminPulumi/index.js.map +0 -1
- package/pulumi/features/ApiPulumi/index.js.map +0 -1
- package/pulumi/features/CorePulumi/index.js.map +0 -1
- package/pulumi/features/index.js.map +0 -1
- package/pulumi/index.js.map +0 -1
- package/pulumi/types.js.map +0 -1
- package/pulumi/utils/index.js.map +0 -1
- package/utils/index.js.map +0 -1
|
@@ -1,73 +1,63 @@
|
|
|
1
1
|
import { getStackOutput } from "@webiny/project";
|
|
2
|
-
const apps = [
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
const apps = [
|
|
3
|
+
"api",
|
|
4
|
+
"admin"
|
|
5
|
+
];
|
|
6
|
+
const removeProtocol = (url)=>url.replace(/^https?:\/\//, "");
|
|
7
|
+
const getApiDomainName = (results, name)=>{
|
|
8
|
+
const api = results.find((r)=>r.name === name && "api" === r.app);
|
|
9
|
+
if (!api?.stack?.apiDomain) throw new Error(`Missing API stack for "${name}" deployment.`);
|
|
10
|
+
return removeProtocol(api.stack.apiDomain);
|
|
5
11
|
};
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
return removeProtocol(api.stack.apiDomain);
|
|
12
|
+
const getAdminDomainName = (results, name)=>{
|
|
13
|
+
const admin = results.find((r)=>r.name === name && "admin" === r.app);
|
|
14
|
+
if (!admin?.stack?.appDomain) throw new Error(`Missing Admin stack for "${name}" deployment.`);
|
|
15
|
+
return removeProtocol(admin.stack.appDomain);
|
|
12
16
|
};
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
return removeProtocol(admin.stack.appDomain);
|
|
17
|
+
const getEnv = (results, name)=>{
|
|
18
|
+
const env = results.find((r)=>r.name === name);
|
|
19
|
+
if (!env) throw new Error(`Missing environment for "${name}" deployment.`);
|
|
20
|
+
return env.env;
|
|
19
21
|
};
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
return env.env;
|
|
22
|
+
const getVariant = (results, name)=>{
|
|
23
|
+
const variant = results.find((r)=>r.name === name);
|
|
24
|
+
if (!variant) throw new Error(`Missing variant for "${name}" deployment.`);
|
|
25
|
+
return variant.variant;
|
|
26
26
|
};
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
throw new Error(`Missing variant for "${name}" deployment.`);
|
|
31
|
-
}
|
|
32
|
-
return variant.variant;
|
|
33
|
-
};
|
|
34
|
-
export const getApplicationDomains = async params => {
|
|
35
|
-
const promises = [];
|
|
36
|
-
for (const stack of params.stacks) {
|
|
37
|
-
for (const app of apps) {
|
|
38
|
-
promises.push(new Promise(async resolve => {
|
|
27
|
+
const getApplicationDomains = async (params)=>{
|
|
28
|
+
const promises = [];
|
|
29
|
+
for (const stack of params.stacks)for (const app of apps)promises.push(new Promise(async (resolve)=>{
|
|
39
30
|
const result = await getStackOutput(app);
|
|
40
31
|
resolve({
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
32
|
+
env: stack.env,
|
|
33
|
+
variant: stack.variant,
|
|
34
|
+
name: stack.name,
|
|
35
|
+
app,
|
|
36
|
+
stack: result
|
|
46
37
|
});
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
38
|
+
}));
|
|
39
|
+
const results = await Promise.all(promises);
|
|
40
|
+
const deployments = {};
|
|
41
|
+
const names = params.stacks.map((s)=>s.name);
|
|
42
|
+
try {
|
|
43
|
+
for (const name of names){
|
|
44
|
+
const env = getEnv(results, name);
|
|
45
|
+
const variant = getVariant(results, name);
|
|
46
|
+
const api = getApiDomainName(results, name);
|
|
47
|
+
const admin = getAdminDomainName(results, name);
|
|
48
|
+
deployments[name] = {
|
|
49
|
+
env,
|
|
50
|
+
variant,
|
|
51
|
+
api,
|
|
52
|
+
admin
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return deployments;
|
|
56
|
+
} catch (ex) {
|
|
57
|
+
console.error(ex.message);
|
|
58
|
+
throw ex;
|
|
65
59
|
}
|
|
66
|
-
return deployments;
|
|
67
|
-
} catch (ex) {
|
|
68
|
-
console.error(ex.message);
|
|
69
|
-
throw ex;
|
|
70
|
-
}
|
|
71
60
|
};
|
|
61
|
+
export { getApplicationDomains };
|
|
72
62
|
|
|
73
63
|
//# sourceMappingURL=getApplicationDomains.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"pulumi/apps/blueGreen/domains/getApplicationDomains.js","sources":["../../../../../src/pulumi/apps/blueGreen/domains/getApplicationDomains.ts"],"sourcesContent":["import { type AppName, getStackOutput } from \"@webiny/project\";\nimport { type IDefaultStackOutput } from \"~/pulumi/types.js\";\n\nexport interface IGetStacksStack {\n name: string;\n env: string;\n variant: string | undefined;\n}\n\nexport interface IGetApplicationStacks {\n stacks: IGetStacksStack[];\n}\n\nconst apps: AppName[] = [\"api\", \"admin\"];\n\ninterface IPromiseResult {\n app: string;\n env: string;\n variant: string | undefined;\n name: string;\n stack: IDefaultStackOutput;\n}\n\nexport interface IGetApplicationStacksResultStack {\n env: string;\n variant: string | undefined;\n api: string;\n admin: string;\n}\n\nexport interface IGetApplicationStacksResult {\n [name: string]: IGetApplicationStacksResultStack;\n}\n\nconst removeProtocol = (url: string): string => {\n return url.replace(/^https?:\\/\\//, \"\");\n};\n\nconst getApiDomainName = (results: IPromiseResult[], name: string): string => {\n const api = results.find(r => r.name === name && r.app === \"api\");\n if (!api?.stack?.apiDomain) {\n throw new Error(`Missing API stack for \"${name}\" deployment.`);\n }\n return removeProtocol(api.stack.apiDomain);\n};\n\nconst getAdminDomainName = (results: IPromiseResult[], name: string): string => {\n const admin = results.find(r => r.name === name && r.app === \"admin\");\n if (!admin?.stack?.appDomain) {\n throw new Error(`Missing Admin stack for \"${name}\" deployment.`);\n }\n return removeProtocol(admin.stack.appDomain);\n};\n\nconst getEnv = (results: IPromiseResult[], name: string): string => {\n const env = results.find(r => r.name === name);\n if (!env) {\n throw new Error(`Missing environment for \"${name}\" deployment.`);\n }\n return env.env;\n};\n\nconst getVariant = (results: IPromiseResult[], name: string): string | undefined => {\n const variant = results.find(r => r.name === name);\n if (!variant) {\n throw new Error(`Missing variant for \"${name}\" deployment.`);\n }\n return variant.variant;\n};\n\nexport const getApplicationDomains = async (\n params: IGetApplicationStacks\n): Promise<IGetApplicationStacksResult> => {\n const promises: Promise<IPromiseResult>[] = [];\n\n for (const stack of params.stacks) {\n for (const app of apps) {\n promises.push(\n new Promise<IPromiseResult>(async resolve => {\n const result = await getStackOutput<IDefaultStackOutput>(app);\n\n resolve({\n env: stack.env,\n variant: stack.variant,\n name: stack.name,\n app,\n stack: result!\n });\n })\n );\n }\n }\n const results = await Promise.all(promises);\n const deployments: IGetApplicationStacksResult = {};\n const names = params.stacks.map(s => s.name);\n try {\n for (const name of names) {\n const env = getEnv(results, name);\n const variant = getVariant(results, name);\n const api = getApiDomainName(results, name);\n const admin = getAdminDomainName(results, name);\n\n deployments[name] = {\n env,\n variant,\n api,\n admin\n };\n }\n return deployments;\n } catch (ex) {\n console.error(ex.message);\n throw ex;\n }\n};\n"],"names":["apps","removeProtocol","url","getApiDomainName","results","name","api","r","Error","getAdminDomainName","admin","getEnv","env","getVariant","variant","getApplicationDomains","params","promises","stack","app","Promise","resolve","result","getStackOutput","deployments","names","s","ex","console"],"mappings":";AAaA,MAAMA,OAAkB;IAAC;IAAO;CAAQ;AAqBxC,MAAMC,iBAAiB,CAACC,MACbA,IAAI,OAAO,CAAC,gBAAgB;AAGvC,MAAMC,mBAAmB,CAACC,SAA2BC;IACjD,MAAMC,MAAMF,QAAQ,IAAI,CAACG,CAAAA,IAAKA,EAAE,IAAI,KAAKF,QAAQE,AAAU,UAAVA,EAAE,GAAG;IACtD,IAAI,CAACD,KAAK,OAAO,WACb,MAAM,IAAIE,MAAM,CAAC,uBAAuB,EAAEH,KAAK,aAAa,CAAC;IAEjE,OAAOJ,eAAeK,IAAI,KAAK,CAAC,SAAS;AAC7C;AAEA,MAAMG,qBAAqB,CAACL,SAA2BC;IACnD,MAAMK,QAAQN,QAAQ,IAAI,CAACG,CAAAA,IAAKA,EAAE,IAAI,KAAKF,QAAQE,AAAU,YAAVA,EAAE,GAAG;IACxD,IAAI,CAACG,OAAO,OAAO,WACf,MAAM,IAAIF,MAAM,CAAC,yBAAyB,EAAEH,KAAK,aAAa,CAAC;IAEnE,OAAOJ,eAAeS,MAAM,KAAK,CAAC,SAAS;AAC/C;AAEA,MAAMC,SAAS,CAACP,SAA2BC;IACvC,MAAMO,MAAMR,QAAQ,IAAI,CAACG,CAAAA,IAAKA,EAAE,IAAI,KAAKF;IACzC,IAAI,CAACO,KACD,MAAM,IAAIJ,MAAM,CAAC,yBAAyB,EAAEH,KAAK,aAAa,CAAC;IAEnE,OAAOO,IAAI,GAAG;AAClB;AAEA,MAAMC,aAAa,CAACT,SAA2BC;IAC3C,MAAMS,UAAUV,QAAQ,IAAI,CAACG,CAAAA,IAAKA,EAAE,IAAI,KAAKF;IAC7C,IAAI,CAACS,SACD,MAAM,IAAIN,MAAM,CAAC,qBAAqB,EAAEH,KAAK,aAAa,CAAC;IAE/D,OAAOS,QAAQ,OAAO;AAC1B;AAEO,MAAMC,wBAAwB,OACjCC;IAEA,MAAMC,WAAsC,EAAE;IAE9C,KAAK,MAAMC,SAASF,OAAO,MAAM,CAC7B,KAAK,MAAMG,OAAOnB,KACdiB,SAAS,IAAI,CACT,IAAIG,QAAwB,OAAMC;QAC9B,MAAMC,SAAS,MAAMC,eAAoCJ;QAEzDE,QAAQ;YACJ,KAAKH,MAAM,GAAG;YACd,SAASA,MAAM,OAAO;YACtB,MAAMA,MAAM,IAAI;YAChBC;YACA,OAAOG;QACX;IACJ;IAIZ,MAAMlB,UAAU,MAAMgB,QAAQ,GAAG,CAACH;IAClC,MAAMO,cAA2C,CAAC;IAClD,MAAMC,QAAQT,OAAO,MAAM,CAAC,GAAG,CAACU,CAAAA,IAAKA,EAAE,IAAI;IAC3C,IAAI;QACA,KAAK,MAAMrB,QAAQoB,MAAO;YACtB,MAAMb,MAAMD,OAAOP,SAASC;YAC5B,MAAMS,UAAUD,WAAWT,SAASC;YACpC,MAAMC,MAAMH,iBAAiBC,SAASC;YACtC,MAAMK,QAAQD,mBAAmBL,SAASC;YAE1CmB,WAAW,CAACnB,KAAK,GAAG;gBAChBO;gBACAE;gBACAR;gBACAI;YACJ;QACJ;QACA,OAAOc;IACX,EAAE,OAAOG,IAAI;QACTC,QAAQ,KAAK,CAACD,GAAG,OAAO;QACxB,MAAMA;IACV;AACJ"}
|
|
@@ -1,41 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
attachedDomains
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const target = domain.domains[type];
|
|
25
|
-
if (!target) {
|
|
26
|
-
throw new Error(`Missing "${type}" domain in deployment "${domain.name}".`);
|
|
27
|
-
}
|
|
28
|
-
output.push({
|
|
29
|
-
type,
|
|
30
|
-
env: domain.env,
|
|
31
|
-
variant: domain.variant,
|
|
32
|
-
name: domain.name,
|
|
33
|
-
sources: value,
|
|
34
|
-
target
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
return output;
|
|
38
|
-
}, []);
|
|
1
|
+
const resolveDomains = (params)=>{
|
|
2
|
+
const { attachedDomains, deploymentsDomains } = params;
|
|
3
|
+
const domains = attachedDomains.domains;
|
|
4
|
+
if (!domains) return [];
|
|
5
|
+
const types = Object.keys(domains).filter((key)=>!!domains[key]);
|
|
6
|
+
return types.reduce((output, type)=>{
|
|
7
|
+
const value = domains[type];
|
|
8
|
+
if (!value) return output;
|
|
9
|
+
if (0 === value.length) throw new Error(`Missing domains for "${type}" deployment.`);
|
|
10
|
+
for (const domain of deploymentsDomains){
|
|
11
|
+
const target = domain.domains[type];
|
|
12
|
+
if (!target) throw new Error(`Missing "${type}" domain in deployment "${domain.name}".`);
|
|
13
|
+
output.push({
|
|
14
|
+
type,
|
|
15
|
+
env: domain.env,
|
|
16
|
+
variant: domain.variant,
|
|
17
|
+
name: domain.name,
|
|
18
|
+
sources: value,
|
|
19
|
+
target
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return output;
|
|
23
|
+
}, []);
|
|
39
24
|
};
|
|
25
|
+
export { resolveDomains };
|
|
40
26
|
|
|
41
27
|
//# sourceMappingURL=resolveDomains.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"pulumi/apps/blueGreen/domains/resolveDomains.js","sources":["../../../../../src/pulumi/apps/blueGreen/domains/resolveDomains.ts"],"sourcesContent":["import type {\n IAttachedDomainKey,\n IAttachedDomains,\n IDeploymentsDomains,\n IResolvedDomains\n} from \"../types.js\";\n\nexport interface IResolveDomainsParams {\n attachedDomains: IAttachedDomains;\n deploymentsDomains: IDeploymentsDomains;\n}\n\nexport const resolveDomains = (params: IResolveDomainsParams): IResolvedDomains => {\n const { attachedDomains, deploymentsDomains } = params;\n\n const domains = attachedDomains.domains;\n\n if (!domains) {\n return [];\n }\n const types = Object.keys(domains).filter(key => {\n return !!domains[key as IAttachedDomainKey];\n }) as IAttachedDomainKey[];\n\n return types.reduce<IResolvedDomains>((output, type) => {\n const value = domains[type];\n /**\n * Should not happen because we are filtering out undefined values when creating the `types` array.\n */\n if (!value) {\n return output;\n } else if (value.length === 0) {\n throw new Error(`Missing domains for \"${type}\" deployment.`);\n }\n for (const domain of deploymentsDomains) {\n const target = domain.domains[type];\n if (!target) {\n throw new Error(`Missing \"${type}\" domain in deployment \"${domain.name}\".`);\n }\n\n output.push({\n type,\n env: domain.env,\n variant: domain.variant,\n name: domain.name,\n sources: value,\n target\n });\n }\n\n return output;\n }, []);\n};\n"],"names":["resolveDomains","params","attachedDomains","deploymentsDomains","domains","types","Object","key","output","type","value","Error","domain","target"],"mappings":"AAYO,MAAMA,iBAAiB,CAACC;IAC3B,MAAM,EAAEC,eAAe,EAAEC,kBAAkB,EAAE,GAAGF;IAEhD,MAAMG,UAAUF,gBAAgB,OAAO;IAEvC,IAAI,CAACE,SACD,OAAO,EAAE;IAEb,MAAMC,QAAQC,OAAO,IAAI,CAACF,SAAS,MAAM,CAACG,CAAAA,MAC/B,CAAC,CAACH,OAAO,CAACG,IAA0B;IAG/C,OAAOF,MAAM,MAAM,CAAmB,CAACG,QAAQC;QAC3C,MAAMC,QAAQN,OAAO,CAACK,KAAK;QAI3B,IAAI,CAACC,OACD,OAAOF;QACJ,IAAIE,AAAiB,MAAjBA,MAAM,MAAM,EACnB,MAAM,IAAIC,MAAM,CAAC,qBAAqB,EAAEF,KAAK,aAAa,CAAC;QAE/D,KAAK,MAAMG,UAAUT,mBAAoB;YACrC,MAAMU,SAASD,OAAO,OAAO,CAACH,KAAK;YACnC,IAAI,CAACI,QACD,MAAM,IAAIF,MAAM,CAAC,SAAS,EAAEF,KAAK,wBAAwB,EAAEG,OAAO,IAAI,CAAC,EAAE,CAAC;YAG9EJ,OAAO,IAAI,CAAC;gBACRC;gBACA,KAAKG,OAAO,GAAG;gBACf,SAASA,OAAO,OAAO;gBACvB,MAAMA,OAAO,IAAI;gBACjB,SAASF;gBACTG;YACJ;QACJ;QAEA,OAAOL;IACX,GAAG,EAAE;AACT"}
|
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from "fs";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
if (!existsSync(target)) {
|
|
9
|
-
throw new Error(`File "${target}" does not exist.`);
|
|
10
|
-
}
|
|
11
|
-
const content = readFileSync(target, "utf8");
|
|
12
|
-
if (!content) {
|
|
13
|
-
throw new Error(`File "${target}" is empty.`);
|
|
14
|
-
}
|
|
15
|
-
return content.replace("{BLUE_GREEN_ROUTER_STORE_ID}", storeId).replace("{BLUE_GREEN_ROUTER_STORE_KEY}", storeKey).replace(`"{BLUE_GREEN_ROUTER_DOMAINS}"`, JSON.stringify(domains));
|
|
2
|
+
const buildHandlerFunction = ({ storeId, storeKey, domains })=>{
|
|
3
|
+
const target = __dirname + "/handler.mjs";
|
|
4
|
+
if (!existsSync(target)) throw new Error(`File "${target}" does not exist.`);
|
|
5
|
+
const content = readFileSync(target, "utf8");
|
|
6
|
+
if (!content) throw new Error(`File "${target}" is empty.`);
|
|
7
|
+
return content.replace("{BLUE_GREEN_ROUTER_STORE_ID}", storeId).replace("{BLUE_GREEN_ROUTER_STORE_KEY}", storeKey).replace('"{BLUE_GREEN_ROUTER_DOMAINS}"', JSON.stringify(domains));
|
|
16
8
|
};
|
|
9
|
+
export { buildHandlerFunction };
|
|
17
10
|
|
|
18
11
|
//# sourceMappingURL=buildHandlerFunction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"pulumi/apps/blueGreen/functions/buildHandlerFunction.js","sources":["../../../../../src/pulumi/apps/blueGreen/functions/buildHandlerFunction.ts"],"sourcesContent":["import { existsSync, readFileSync } from \"fs\";\n\nexport interface IBuildRequestFunctionParamsDomain {\n /**\n * Name of the deployment (eg. green, blue, orange, etc.).\n */\n name: string;\n sourceDomain: string;\n targetOriginId: string;\n targetDomain: string;\n}\n\nexport interface IBuildRequestFunctionParams {\n storeId: string;\n storeKey: string;\n domains: IBuildRequestFunctionParamsDomain[];\n}\n\nexport const buildHandlerFunction = ({\n storeId,\n storeKey,\n domains\n}: IBuildRequestFunctionParams): string => {\n const target = __dirname + `/handler.mjs`;\n if (!existsSync(target)) {\n throw new Error(`File \"${target}\" does not exist.`);\n }\n const content = readFileSync(target, \"utf8\");\n if (!content) {\n throw new Error(`File \"${target}\" is empty.`);\n }\n\n return content\n .replace(\"{BLUE_GREEN_ROUTER_STORE_ID}\", storeId)\n .replace(\"{BLUE_GREEN_ROUTER_STORE_KEY}\", storeKey)\n .replace(`\"{BLUE_GREEN_ROUTER_DOMAINS}\"`, JSON.stringify(domains));\n};\n"],"names":["buildHandlerFunction","storeId","storeKey","domains","target","__dirname","existsSync","Error","content","readFileSync","JSON"],"mappings":";AAkBO,MAAMA,uBAAuB,CAAC,EACjCC,OAAO,EACPC,QAAQ,EACRC,OAAO,EACmB;IAC1B,MAAMC,SAASC,YAAY;IAC3B,IAAI,CAACC,WAAWF,SACZ,MAAM,IAAIG,MAAM,CAAC,MAAM,EAAEH,OAAO,iBAAiB,CAAC;IAEtD,MAAMI,UAAUC,aAAaL,QAAQ;IACrC,IAAI,CAACI,SACD,MAAM,IAAID,MAAM,CAAC,MAAM,EAAEH,OAAO,WAAW,CAAC;IAGhD,OAAOI,QACF,OAAO,CAAC,gCAAgCP,SACxC,OAAO,CAAC,iCAAiCC,UACzC,OAAO,CAAC,iCAAiCQ,KAAK,SAAS,CAACP;AACjE"}
|
|
@@ -1,61 +1,5 @@
|
|
|
1
|
-
/* oxlint-disable */
|
|
2
1
|
const cf = require("cloudfront");
|
|
3
2
|
const BLUE_GREEN_ROUTER_STORE_ID = "{BLUE_GREEN_ROUTER_STORE_ID}";
|
|
4
|
-
|
|
5
|
-
const BLUE_GREEN_ROUTER_DOMAINS = "{BLUE_GREEN_ROUTER_DOMAINS}";
|
|
6
|
-
const store = cf.kvs(BLUE_GREEN_ROUTER_STORE_ID);
|
|
7
|
-
function removeProtocol(url) {
|
|
8
|
-
return url.replace(/^https?:\/\//, "");
|
|
9
|
-
}
|
|
10
|
-
function requestWithError(request, error) {
|
|
11
|
-
console.log(`There is an error: ${error.message}`);
|
|
12
|
-
const properties = Object.getOwnPropertyNames(error);
|
|
13
|
-
for (const property in properties) {
|
|
14
|
-
console.log(`${property}: ${error[property]}`);
|
|
15
|
-
}
|
|
16
|
-
request.headers["x-webiny-debug-log"] = {
|
|
17
|
-
value: error.message
|
|
18
|
-
};
|
|
19
|
-
return request;
|
|
20
|
-
}
|
|
21
|
-
function getTargetDomain(headers, active) {
|
|
22
|
-
const values = headers.host;
|
|
23
|
-
if (!values) {
|
|
24
|
-
throw new Error("Missing the 'host' header.");
|
|
25
|
-
}
|
|
26
|
-
const initialHost = Array.isArray(values) ? values[0].value : values.value;
|
|
27
|
-
if (!initialHost) {
|
|
28
|
-
throw new Error("Missing the 'host' header value.");
|
|
29
|
-
}
|
|
30
|
-
const host = removeProtocol(initialHost);
|
|
31
|
-
const domain = BLUE_GREEN_ROUTER_DOMAINS.find(domain => domain.name === active && domain.sourceDomain === host);
|
|
32
|
-
if (domain) {
|
|
33
|
-
return domain;
|
|
34
|
-
}
|
|
35
|
-
throw new Error(`Could not find a domain mapping for ${host}.`);
|
|
36
|
-
}
|
|
37
|
-
function handleRequest(request, active) {
|
|
38
|
-
const targetDomain = getTargetDomain(request.headers || {}, active);
|
|
39
|
-
cf.updateRequestOrigin({
|
|
40
|
-
domainName: targetDomain.targetDomain
|
|
41
|
-
});
|
|
42
|
-
return request;
|
|
43
|
-
}
|
|
44
|
-
async function handler(event) {
|
|
45
|
-
const context = event.context;
|
|
46
|
-
const request = event.request;
|
|
47
|
-
try {
|
|
48
|
-
if (context.eventType !== "viewer-request") {
|
|
49
|
-
new Error("This function only supports viewer-request events.");
|
|
50
|
-
}
|
|
51
|
-
const active = await store.get(BLUE_GREEN_ROUTER_STORE_KEY);
|
|
52
|
-
if (!active) {
|
|
53
|
-
throw new Error("Blue/Green system is not configured.");
|
|
54
|
-
}
|
|
55
|
-
return await handleRequest(request, active);
|
|
56
|
-
} catch (ex) {
|
|
57
|
-
return requestWithError(request, ex);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
3
|
+
cf.kvs(BLUE_GREEN_ROUTER_STORE_ID);
|
|
60
4
|
|
|
61
5
|
//# sourceMappingURL=handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"pulumi/apps/blueGreen/functions/handler.js","sources":["../../../../../src/pulumi/apps/blueGreen/functions/handler.js"],"sourcesContent":["/* oxlint-disable */\nconst cf = require(\"cloudfront\");\n\nconst BLUE_GREEN_ROUTER_STORE_ID = \"{BLUE_GREEN_ROUTER_STORE_ID}\";\nconst BLUE_GREEN_ROUTER_STORE_KEY = \"{BLUE_GREEN_ROUTER_STORE_KEY}\";\nconst BLUE_GREEN_ROUTER_DOMAINS = \"{BLUE_GREEN_ROUTER_DOMAINS}\";\n\nconst store = cf.kvs(BLUE_GREEN_ROUTER_STORE_ID);\n\nfunction removeProtocol(url) {\n return url.replace(/^https?:\\/\\//, \"\");\n}\nfunction requestWithError(request, error) {\n console.log(`There is an error: ${error.message}`);\n const properties = Object.getOwnPropertyNames(error);\n for (const property in properties) {\n console.log(`${property}: ${error[property]}`);\n }\n request.headers[\"x-webiny-debug-log\"] = {\n value: error.message\n };\n\n return request;\n}\n\nfunction getTargetDomain(headers, active) {\n const values = headers.host;\n if (!values) {\n throw new Error(\"Missing the 'host' header.\");\n }\n const initialHost = Array.isArray(values) ? values[0].value : values.value;\n if (!initialHost) {\n throw new Error(\"Missing the 'host' header value.\");\n }\n const host = removeProtocol(initialHost);\n\n const domain = BLUE_GREEN_ROUTER_DOMAINS.find(\n domain => domain.name === active && domain.sourceDomain === host\n );\n if (domain) {\n return domain;\n }\n throw new Error(`Could not find a domain mapping for ${host}.`);\n}\n\nfunction handleRequest(request, active) {\n const targetDomain = getTargetDomain(request.headers || {}, active);\n\n cf.updateRequestOrigin({\n domainName: targetDomain.targetDomain\n });\n\n return request;\n}\n\nasync function handler(event) {\n const context = event.context;\n const request = event.request;\n\n try {\n if (context.eventType !== \"viewer-request\") {\n new Error(\"This function only supports viewer-request events.\");\n }\n const active = await store.get(BLUE_GREEN_ROUTER_STORE_KEY);\n if (!active) {\n throw new Error(\"Blue/Green system is not configured.\");\n }\n\n return await handleRequest(request, active);\n } catch (ex) {\n return requestWithError(request, ex);\n }\n}\n"],"names":["cf","require","BLUE_GREEN_ROUTER_STORE_ID"],"mappings":"AACA,MAAMA,KAAKC,QAAQ;AAEnB,MAAMC,6BAA6B;AAIrBF,GAAG,GAAG,CAACE"}
|
|
@@ -1,33 +1,28 @@
|
|
|
1
1
|
import zod from "zod";
|
|
2
2
|
import { createZodError } from "@webiny/utils/createZodError.js";
|
|
3
3
|
const schema = zod.array(zod.object({
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
})).min(2).max(2).refine(items
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
name: zod.string(),
|
|
5
|
+
env: zod.string(),
|
|
6
|
+
variant: zod.string().optional()
|
|
7
|
+
})).min(2).max(2).refine((items)=>{
|
|
8
|
+
const check = new Set(items.map((i)=>i.name));
|
|
9
|
+
return check.size === items.length;
|
|
10
10
|
}, {
|
|
11
|
-
|
|
12
|
-
}).refine(items
|
|
13
|
-
|
|
14
|
-
return
|
|
15
|
-
}));
|
|
16
|
-
return checks.size === items.length;
|
|
11
|
+
message: "Names must be unique."
|
|
12
|
+
}).refine((items)=>{
|
|
13
|
+
const checks = new Set(items.map((item)=>`${item.env}#${item.variant || "not-set"}`));
|
|
14
|
+
return checks.size === items.length;
|
|
17
15
|
}, {
|
|
18
|
-
|
|
16
|
+
message: "Environment / variant combinations must be unique."
|
|
19
17
|
});
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
...item,
|
|
28
|
-
variant: item.variant
|
|
29
|
-
};
|
|
30
|
-
});
|
|
18
|
+
const validateDeployments = (deployments)=>{
|
|
19
|
+
const result = schema.safeParse(deployments);
|
|
20
|
+
if (result.error) throw createZodError(result.error);
|
|
21
|
+
return result.data.map((item)=>({
|
|
22
|
+
...item,
|
|
23
|
+
variant: item.variant
|
|
24
|
+
}));
|
|
31
25
|
};
|
|
26
|
+
export { validateDeployments };
|
|
32
27
|
|
|
33
28
|
//# sourceMappingURL=validateDeployments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"pulumi/apps/blueGreen/validation/validateDeployments.js","sources":["../../../../../src/pulumi/apps/blueGreen/validation/validateDeployments.ts"],"sourcesContent":["import zod from \"zod\";\nimport { createZodError } from \"@webiny/utils/createZodError.js\";\nimport type { IBlueGreenDeployment } from \"../types.js\";\n\nconst schema = zod\n .array(\n zod.object({\n name: zod.string(),\n env: zod.string(),\n variant: zod.string().optional()\n })\n )\n .min(2)\n .max(2)\n .refine(\n items => {\n const check = new Set(items.map(i => i.name));\n return check.size === items.length;\n },\n {\n message: \"Names must be unique.\"\n }\n )\n .refine(\n items => {\n const checks = new Set(\n items.map(item => {\n return `${item.env}#${item.variant || \"not-set\"}`;\n })\n );\n return checks.size === items.length;\n },\n {\n message: \"Environment / variant combinations must be unique.\"\n }\n );\n\nexport const validateDeployments = (deployments: unknown): IBlueGreenDeployment[] => {\n const result = schema.safeParse(deployments);\n if (result.error) {\n throw createZodError(result.error);\n }\n return result.data.map(item => {\n return {\n ...item,\n variant: item.variant\n };\n });\n};\n"],"names":["schema","zod","items","check","Set","i","checks","item","validateDeployments","deployments","result","createZodError"],"mappings":";;AAIA,MAAMA,SAASC,IAAAA,KACL,CACFA,IAAI,MAAM,CAAC;IACP,MAAMA,IAAI,MAAM;IAChB,KAAKA,IAAI,MAAM;IACf,SAASA,IAAI,MAAM,GAAG,QAAQ;AAClC,IAEH,GAAG,CAAC,GACJ,GAAG,CAAC,GACJ,MAAM,CACHC,CAAAA;IACI,MAAMC,QAAQ,IAAIC,IAAIF,MAAM,GAAG,CAACG,CAAAA,IAAKA,EAAE,IAAI;IAC3C,OAAOF,MAAM,IAAI,KAAKD,MAAM,MAAM;AACtC,GACA;IACI,SAAS;AACb,GAEH,MAAM,CACHA,CAAAA;IACI,MAAMI,SAAS,IAAIF,IACfF,MAAM,GAAG,CAACK,CAAAA,OACC,GAAGA,KAAK,GAAG,CAAC,CAAC,EAAEA,KAAK,OAAO,IAAI,WAAW;IAGzD,OAAOD,OAAO,IAAI,KAAKJ,MAAM,MAAM;AACvC,GACA;IACI,SAAS;AACb;AAGD,MAAMM,sBAAsB,CAACC;IAChC,MAAMC,SAASV,OAAO,SAAS,CAACS;IAChC,IAAIC,OAAO,KAAK,EACZ,MAAMC,eAAeD,OAAO,KAAK;IAErC,OAAOA,OAAO,IAAI,CAAC,GAAG,CAACH,CAAAA,OACZ;YACH,GAAGA,IAAI;YACP,SAASA,KAAK,OAAO;QACzB;AAER"}
|
|
@@ -1,42 +1,39 @@
|
|
|
1
1
|
import { createAppModule } from "@webiny/pulumi";
|
|
2
2
|
import { ProjectSdk } from "@webiny/project";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
opensearchDynamodbTableName: output["opensearchDynamodbTableName"]
|
|
37
|
-
};
|
|
38
|
-
});
|
|
39
|
-
}
|
|
3
|
+
const CoreOutput = createAppModule({
|
|
4
|
+
name: "CoreOutput",
|
|
5
|
+
config (app) {
|
|
6
|
+
return app.addHandler(async ()=>{
|
|
7
|
+
const sdk = await ProjectSdk.init();
|
|
8
|
+
const output = await sdk.getAppStackOutput("core");
|
|
9
|
+
if (!output) throw new Error("Core application is not deployed.");
|
|
10
|
+
return {
|
|
11
|
+
fileManagerBucketId: output["fileManagerBucketId"],
|
|
12
|
+
primaryDynamodbTableArn: output["primaryDynamodbTableArn"],
|
|
13
|
+
primaryDynamodbTableName: output["primaryDynamodbTableName"],
|
|
14
|
+
primaryDynamodbTableHashKey: output["primaryDynamodbTableHashKey"],
|
|
15
|
+
primaryDynamodbTableRangeKey: output["primaryDynamodbTableRangeKey"],
|
|
16
|
+
auditLogsDynamodbTableArn: output["auditLogsDynamodbTableArn"],
|
|
17
|
+
auditLogsDynamodbTableName: output["auditLogsDynamodbTableName"],
|
|
18
|
+
auditLogsDynamodbTableHashKey: output["auditLogsDynamodbTableHashKey"],
|
|
19
|
+
auditLogsDynamodbTableRangeKey: output["auditLogsDynamodbTableRangeKey"],
|
|
20
|
+
cognitoUserPoolId: output["cognitoUserPoolId"],
|
|
21
|
+
cognitoUserPoolArn: output["cognitoUserPoolArn"],
|
|
22
|
+
cognitoUserPoolPasswordPolicy: output["cognitoUserPoolPasswordPolicy"],
|
|
23
|
+
cognitoAppClientId: output["cognitoAppClientId"],
|
|
24
|
+
eventBusName: output["eventBusName"],
|
|
25
|
+
eventBusArn: output["eventBusArn"],
|
|
26
|
+
vpcPublicSubnetIds: output["vpcPublicSubnetIds"],
|
|
27
|
+
vpcPrivateSubnetIds: output["vpcPrivateSubnetIds"],
|
|
28
|
+
vpcSecurityGroupIds: output["vpcSecurityGroupIds"],
|
|
29
|
+
opensearchDomainArn: output["opensearchDomainArn"],
|
|
30
|
+
opensearchDomainEndpoint: output["opensearchDomainEndpoint"],
|
|
31
|
+
opensearchDynamodbTableArn: output["opensearchDynamodbTableArn"],
|
|
32
|
+
opensearchDynamodbTableName: output["opensearchDynamodbTableName"]
|
|
33
|
+
};
|
|
34
|
+
});
|
|
35
|
+
}
|
|
40
36
|
});
|
|
37
|
+
export { CoreOutput };
|
|
41
38
|
|
|
42
39
|
//# sourceMappingURL=CoreOutput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"pulumi/apps/common/CoreOutput.js","sources":["../../../../src/pulumi/apps/common/CoreOutput.ts"],"sourcesContent":["import { createAppModule, type PulumiAppModule } from \"@webiny/pulumi\";\nimport { ProjectSdk } from \"@webiny/project\";\n\nexport type CoreOutput = PulumiAppModule<typeof CoreOutput>;\n\nexport interface ICoreOutput {\n deploymentId: string;\n region: string;\n dynamoDbTable: string;\n iotAuthorizerName: string;\n cognitoUserPoolArn: string;\n cognitoAppClientId: string;\n cognitoUserPoolId: string;\n cognitoUserPoolPasswordPolicy: string;\n fileManagerBucketId: string;\n fileManagerBucketArn: string;\n primaryDynamodbTableArn: string;\n primaryDynamodbTableName: string;\n primaryDynamodbTableHashKey: string;\n primaryDynamodbTableRangeKey: string;\n auditLogsDynamodbTableArn: string;\n auditLogsDynamodbTableName: string;\n auditLogsDynamodbTableHashKey: string;\n auditLogsDynamodbTableRangeKey: string;\n eventBusName: string;\n eventBusArn: string;\n vpcPublicSubnetIds: string[] | undefined;\n vpcPrivateSubnetIds: string[] | undefined;\n vpcSecurityGroupIds: string[] | undefined;\n opensearchDomainArn: string | undefined;\n opensearchDomainEndpoint: string | undefined;\n opensearchDynamodbTableHashKey: string;\n opensearchDynamodbTableRangeKey: string;\n opensearchDynamodbTableArn: string | undefined;\n opensearchDynamodbTableName: string | undefined;\n}\n\nexport const CoreOutput = createAppModule({\n name: \"CoreOutput\",\n config(app) {\n return app.addHandler(async () => {\n const sdk = await ProjectSdk.init();\n\n const output = await sdk.getAppStackOutput(\"core\");\n if (!output) {\n throw new Error(\"Core application is not deployed.\");\n }\n\n return {\n fileManagerBucketId: output[\"fileManagerBucketId\"],\n primaryDynamodbTableArn: output[\"primaryDynamodbTableArn\"],\n primaryDynamodbTableName: output[\"primaryDynamodbTableName\"],\n primaryDynamodbTableHashKey: output[\"primaryDynamodbTableHashKey\"],\n primaryDynamodbTableRangeKey: output[\"primaryDynamodbTableRangeKey\"],\n auditLogsDynamodbTableArn: output[\"auditLogsDynamodbTableArn\"],\n auditLogsDynamodbTableName: output[\"auditLogsDynamodbTableName\"],\n auditLogsDynamodbTableHashKey: output[\"auditLogsDynamodbTableHashKey\"],\n auditLogsDynamodbTableRangeKey: output[\"auditLogsDynamodbTableRangeKey\"],\n cognitoUserPoolId: output[\"cognitoUserPoolId\"],\n cognitoUserPoolArn: output[\"cognitoUserPoolArn\"],\n cognitoUserPoolPasswordPolicy: output[\"cognitoUserPoolPasswordPolicy\"],\n cognitoAppClientId: output[\"cognitoAppClientId\"],\n eventBusName: output[\"eventBusName\"],\n eventBusArn: output[\"eventBusArn\"],\n // These outputs are optional, since VPC is not always enabled.\n vpcPublicSubnetIds: output[\"vpcPublicSubnetIds\"],\n vpcPrivateSubnetIds: output[\"vpcPrivateSubnetIds\"],\n vpcSecurityGroupIds: output[\"vpcSecurityGroupIds\"],\n // These outputs are optional, since Opensearch is not always enabled.\n opensearchDomainArn: output[\"opensearchDomainArn\"],\n opensearchDomainEndpoint: output[\"opensearchDomainEndpoint\"],\n opensearchDynamodbTableArn: output[\"opensearchDynamodbTableArn\"],\n opensearchDynamodbTableName: output[\"opensearchDynamodbTableName\"]\n } as ICoreOutput;\n });\n }\n});\n"],"names":["CoreOutput","createAppModule","app","sdk","ProjectSdk","output","Error"],"mappings":";;AAqCO,MAAMA,aAAaC,gBAAgB;IACtC,MAAM;IACN,QAAOC,GAAG;QACN,OAAOA,IAAI,UAAU,CAAC;YAClB,MAAMC,MAAM,MAAMC,WAAW,IAAI;YAEjC,MAAMC,SAAS,MAAMF,IAAI,iBAAiB,CAAC;YAC3C,IAAI,CAACE,QACD,MAAM,IAAIC,MAAM;YAGpB,OAAO;gBACH,qBAAqBD,MAAM,CAAC,sBAAsB;gBAClD,yBAAyBA,MAAM,CAAC,0BAA0B;gBAC1D,0BAA0BA,MAAM,CAAC,2BAA2B;gBAC5D,6BAA6BA,MAAM,CAAC,8BAA8B;gBAClE,8BAA8BA,MAAM,CAAC,+BAA+B;gBACpE,2BAA2BA,MAAM,CAAC,4BAA4B;gBAC9D,4BAA4BA,MAAM,CAAC,6BAA6B;gBAChE,+BAA+BA,MAAM,CAAC,gCAAgC;gBACtE,gCAAgCA,MAAM,CAAC,iCAAiC;gBACxE,mBAAmBA,MAAM,CAAC,oBAAoB;gBAC9C,oBAAoBA,MAAM,CAAC,qBAAqB;gBAChD,+BAA+BA,MAAM,CAAC,gCAAgC;gBACtE,oBAAoBA,MAAM,CAAC,qBAAqB;gBAChD,cAAcA,MAAM,CAAC,eAAe;gBACpC,aAAaA,MAAM,CAAC,cAAc;gBAElC,oBAAoBA,MAAM,CAAC,qBAAqB;gBAChD,qBAAqBA,MAAM,CAAC,sBAAsB;gBAClD,qBAAqBA,MAAM,CAAC,sBAAsB;gBAElD,qBAAqBA,MAAM,CAAC,sBAAsB;gBAClD,0BAA0BA,MAAM,CAAC,2BAA2B;gBAC5D,4BAA4BA,MAAM,CAAC,6BAA6B;gBAChE,6BAA6BA,MAAM,CAAC,8BAA8B;YACtE;QACJ;IACJ;AACJ"}
|