@webiny/project-aws 0.0.0-unstable.61c048f412
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/LICENSE +21 -0
- package/README.md +11 -0
- package/_templates/appTemplates/admin/src/App.scss +2 -0
- package/_templates/appTemplates/admin/src/App.tsx +13 -0
- package/_templates/appTemplates/admin/src/Extensions.tsx +7 -0
- package/_templates/appTemplates/admin/src/index.tsx +11 -0
- package/_templates/appTemplates/admin/tsconfig.json +7 -0
- package/_templates/appTemplates/admin/webiny.application.ts +3 -0
- package/_templates/appTemplates/admin/webiny.config.ts +3 -0
- package/_templates/appTemplates/api/graphql/package.json +31 -0
- package/_templates/appTemplates/api/graphql/src/extensions.ts +9 -0
- package/_templates/appTemplates/api/graphql/src/index.ts +80 -0
- package/_templates/appTemplates/api/graphql/src/security.ts +43 -0
- package/_templates/appTemplates/api/graphql/tsconfig.json +7 -0
- package/_templates/appTemplates/api/graphql/webiny.config.ts +8 -0
- package/_templates/appTemplates/api/migration/src/index.ts +23 -0
- package/_templates/appTemplates/api/migration/tsconfig.json +7 -0
- package/_templates/appTemplates/api/migration/webiny.config.ts +8 -0
- package/_templates/appTemplates/api/webiny.application.ts +3 -0
- package/_templates/appTemplates/blueGreen/webiny.application.ts +3 -0
- package/_templates/appTemplates/core/webiny.application.ts +3 -0
- package/_templates/appTemplates/syncSystem/webiny.application.ts +3 -0
- package/_templates/extensions/OpenSearch/api/graphql/src/index.ts +84 -0
- package/_templates/extensions/OpenSearch/api/migration/src/index.ts +33 -0
- package/_templates/extensions/OpenSearch/coreDdbToEsHandler/dynamoToElastic/src/index.ts +15 -0
- package/_templates/extensions/OpenSearch/coreDdbToEsHandler/dynamoToElastic/tsconfig.json +7 -0
- package/_templates/extensions/OpenSearch/coreDdbToEsHandler/dynamoToElastic/webiny.config.ts +8 -0
- package/abstractions/ApiGqlClient.d.ts +23 -0
- package/abstractions/ApiGqlClient.js +4 -0
- package/abstractions/ApiGqlClient.js.map +1 -0
- package/abstractions/InvokeLambdaFunction.d.ts +18 -0
- package/abstractions/InvokeLambdaFunction.js +4 -0
- package/abstractions/InvokeLambdaFunction.js.map +1 -0
- package/abstractions/index.d.ts +5 -0
- package/abstractions/index.js +7 -0
- package/abstractions/index.js.map +1 -0
- package/abstractions/services/AdminStackOutputService.d.ts +13 -0
- package/abstractions/services/AdminStackOutputService.js +4 -0
- package/abstractions/services/AdminStackOutputService.js.map +1 -0
- package/abstractions/services/ApiStackOutputService.d.ts +30 -0
- package/abstractions/services/ApiStackOutputService.js +4 -0
- package/abstractions/services/ApiStackOutputService.js.map +1 -0
- package/abstractions/services/CoreStackOutputService.d.ts +16 -0
- package/abstractions/services/CoreStackOutputService.js +4 -0
- package/abstractions/services/CoreStackOutputService.js.map +1 -0
- package/admin.d.ts +22 -0
- package/admin.js +7 -0
- package/admin.js.map +1 -0
- package/api.d.ts +22 -0
- package/api.js +7 -0
- package/api.js.map +1 -0
- package/apps/createAdminApp.d.ts +13 -0
- package/apps/createAdminApp.js +15 -0
- package/apps/createAdminApp.js.map +1 -0
- package/apps/createAdminAppConfig.d.ts +2 -0
- package/apps/createAdminAppConfig.js +21 -0
- package/apps/createAdminAppConfig.js.map +1 -0
- package/apps/createApiApp.d.ts +65 -0
- package/apps/createApiApp.js +25 -0
- package/apps/createApiApp.js.map +1 -0
- package/apps/createBlueGreenApp.d.ts +24 -0
- package/apps/createBlueGreenApp.js +20 -0
- package/apps/createBlueGreenApp.js.map +1 -0
- package/apps/createCoreApp.d.ts +36 -0
- package/apps/createCoreApp.js +16 -0
- package/apps/createCoreApp.js.map +1 -0
- package/apps/createReactAppConfig.d.ts +53 -0
- package/apps/createReactAppConfig.js +79 -0
- package/apps/createReactAppConfig.js.map +1 -0
- package/apps/createSyncSystemApp.d.ts +21 -0
- package/apps/createSyncSystemApp.js +11 -0
- package/apps/createSyncSystemApp.js.map +1 -0
- package/apps/index.d.ts +7 -0
- package/apps/index.js +9 -0
- package/apps/index.js.map +1 -0
- package/cli.d.ts +9 -0
- package/cli.js +6 -0
- package/cli.js.map +1 -0
- package/exports/extensions.d.ts +7 -0
- package/exports/extensions.js +9 -0
- package/exports/extensions.js.map +1 -0
- package/exports/infra/admin.d.ts +1 -0
- package/exports/infra/admin.js +3 -0
- package/exports/infra/admin.js.map +1 -0
- package/exports/infra/api.d.ts +1 -0
- package/exports/infra/api.js +3 -0
- package/exports/infra/api.js.map +1 -0
- package/exports/infra/core.d.ts +1 -0
- package/exports/infra/core.js +3 -0
- package/exports/infra/core.js.map +1 -0
- package/extensions/AwsDefaultRegion.d.ts +5 -0
- package/extensions/AwsDefaultRegion.js +10 -0
- package/extensions/AwsDefaultRegion.js.map +1 -0
- package/extensions/OpenSearch/EnsureOsServiceRoleBeforeCoreDeploy.d.ts +10 -0
- package/extensions/OpenSearch/EnsureOsServiceRoleBeforeCoreDeploy.js +40 -0
- package/extensions/OpenSearch/EnsureOsServiceRoleBeforeCoreDeploy.js.map +1 -0
- package/extensions/OpenSearch/EnsureOsWasDeployed.d.ts +11 -0
- package/extensions/OpenSearch/EnsureOsWasDeployed.js +34 -0
- package/extensions/OpenSearch/EnsureOsWasDeployed.js.map +1 -0
- package/extensions/OpenSearch/InjectDdbEsLambdaFnHandler.d.ts +12 -0
- package/extensions/OpenSearch/InjectDdbEsLambdaFnHandler.js +31 -0
- package/extensions/OpenSearch/InjectDdbEsLambdaFnHandler.js.map +1 -0
- package/extensions/OpenSearch/ReplaceApiLambdaFnHandlers.d.ts +12 -0
- package/extensions/OpenSearch/ReplaceApiLambdaFnHandlers.js +32 -0
- package/extensions/OpenSearch/ReplaceApiLambdaFnHandlers.js.map +1 -0
- package/extensions/OpenSearch.d.ts +17 -0
- package/extensions/OpenSearch.js +36 -0
- package/extensions/OpenSearch.js.map +1 -0
- package/extensions/ProjectAws/AdminStackOutputService.d.ts +1 -0
- package/extensions/ProjectAws/AdminStackOutputService.js +3 -0
- package/extensions/ProjectAws/AdminStackOutputService.js.map +1 -0
- package/extensions/ProjectAws/ApiStackOutputService.d.ts +1 -0
- package/extensions/ProjectAws/ApiStackOutputService.js +3 -0
- package/extensions/ProjectAws/ApiStackOutputService.js.map +1 -0
- package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.d.ts +17 -0
- package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js +108 -0
- package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js.map +1 -0
- package/extensions/ProjectAws/AutoInstall.d.ts +33 -0
- package/extensions/ProjectAws/AutoInstall.js +19 -0
- package/extensions/ProjectAws/AutoInstall.js.map +1 -0
- package/extensions/ProjectAws/BlueGreenDeployments/EnsureVariantBeforeDeploy.d.ts +10 -0
- package/extensions/ProjectAws/BlueGreenDeployments/EnsureVariantBeforeDeploy.js +27 -0
- package/extensions/ProjectAws/BlueGreenDeployments/EnsureVariantBeforeDeploy.js.map +1 -0
- package/extensions/ProjectAws/BlueGreenDeployments/PrintDeploymentInfoAfterDeploy.d.ts +20 -0
- package/extensions/ProjectAws/BlueGreenDeployments/PrintDeploymentInfoAfterDeploy.js +54 -0
- package/extensions/ProjectAws/BlueGreenDeployments/PrintDeploymentInfoAfterDeploy.js.map +1 -0
- package/extensions/ProjectAws/BlueGreenDeployments/SetPrimaryVariantCliCommand.d.ts +18 -0
- package/extensions/ProjectAws/BlueGreenDeployments/SetPrimaryVariantCliCommand.js +60 -0
- package/extensions/ProjectAws/BlueGreenDeployments/SetPrimaryVariantCliCommand.js.map +1 -0
- package/extensions/ProjectAws/BuildAppWorkspace.d.ts +12 -0
- package/extensions/ProjectAws/BuildAppWorkspace.js +66 -0
- package/extensions/ProjectAws/BuildAppWorkspace.js.map +1 -0
- package/extensions/ProjectAws/CoreStackOutputService.d.ts +1 -0
- package/extensions/ProjectAws/CoreStackOutputService.js +3 -0
- package/extensions/ProjectAws/CoreStackOutputService.js.map +1 -0
- package/extensions/ProjectAws/ExecuteDataMigrations.d.ts +16 -0
- package/extensions/ProjectAws/ExecuteDataMigrations.js +69 -0
- package/extensions/ProjectAws/ExecuteDataMigrations.js.map +1 -0
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVars.d.ts +13 -0
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVars.js +43 -0
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVars.js.map +1 -0
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeBuild.d.ts +13 -0
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeBuild.js +24 -0
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeBuild.js.map +1 -0
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeWatch.d.ts +13 -0
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeWatch.js +24 -0
- package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeWatch.js.map +1 -0
- package/extensions/ProjectAws/SetDatabaseSetupOutput.d.ts +10 -0
- package/extensions/ProjectAws/SetDatabaseSetupOutput.js +29 -0
- package/extensions/ProjectAws/SetDatabaseSetupOutput.js.map +1 -0
- package/extensions/ProjectAws/UploadAdminAppToS3.d.ts +13 -0
- package/extensions/ProjectAws/UploadAdminAppToS3.js +69 -0
- package/extensions/ProjectAws/UploadAdminAppToS3.js.map +1 -0
- package/extensions/ProjectAws/definitions.d.ts +3 -0
- package/extensions/ProjectAws/definitions.js +11 -0
- package/extensions/ProjectAws/definitions.js.map +1 -0
- package/extensions/ProjectAws.d.ts +2 -0
- package/extensions/ProjectAws.js +49 -0
- package/extensions/ProjectAws.js.map +1 -0
- package/extensions/index.d.ts +4 -0
- package/extensions/index.js +6 -0
- package/extensions/index.js.map +1 -0
- package/features/ApiGqlClient.d.ts +21 -0
- package/features/ApiGqlClient.js +59 -0
- package/features/ApiGqlClient.js.map +1 -0
- package/features/InvokeLambdaFunction.d.ts +10 -0
- package/features/InvokeLambdaFunction.js +38 -0
- package/features/InvokeLambdaFunction.js.map +1 -0
- package/features/index.d.ts +2 -0
- package/features/index.js +4 -0
- package/features/index.js.map +1 -0
- package/index.d.ts +7 -0
- package/index.js +9 -0
- package/index.js.map +1 -0
- package/infra.d.ts +399 -0
- package/infra.js +49 -0
- package/infra.js.map +1 -0
- package/package.json +63 -0
- package/project.d.ts +48 -0
- package/project.js +9 -0
- package/project.js.map +1 -0
- package/pulumi/apps/admin/createAdminPulumiApp.d.ts +10 -0
- package/pulumi/apps/admin/createAdminPulumiApp.js +52 -0
- package/pulumi/apps/admin/createAdminPulumiApp.js.map +1 -0
- package/pulumi/apps/admin/index.d.ts +1 -0
- package/pulumi/apps/admin/index.js +3 -0
- package/pulumi/apps/admin/index.js.map +1 -0
- package/pulumi/apps/api/ApiBackgroundTask.d.ts +12 -0
- package/pulumi/apps/api/ApiBackgroundTask.js +148 -0
- package/pulumi/apps/api/ApiBackgroundTask.js.map +1 -0
- package/pulumi/apps/api/ApiCloudfront.d.ts +3 -0
- package/pulumi/apps/api/ApiCloudfront.js +136 -0
- package/pulumi/apps/api/ApiCloudfront.js.map +1 -0
- package/pulumi/apps/api/ApiFileManager.d.ts +11 -0
- package/pulumi/apps/api/ApiFileManager.js +39 -0
- package/pulumi/apps/api/ApiFileManager.js.map +1 -0
- package/pulumi/apps/api/ApiGateway.d.ts +18 -0
- package/pulumi/apps/api/ApiGateway.js +80 -0
- package/pulumi/apps/api/ApiGateway.js.map +1 -0
- package/pulumi/apps/api/ApiGraphql.d.ts +22 -0
- package/pulumi/apps/api/ApiGraphql.js +164 -0
- package/pulumi/apps/api/ApiGraphql.js.map +1 -0
- package/pulumi/apps/api/ApiMigration.d.ts +5 -0
- package/pulumi/apps/api/ApiMigration.js +83 -0
- package/pulumi/apps/api/ApiMigration.js.map +1 -0
- package/pulumi/apps/api/ApiOutput.d.ts +23 -0
- package/pulumi/apps/api/ApiOutput.js +36 -0
- package/pulumi/apps/api/ApiOutput.js.map +1 -0
- package/pulumi/apps/api/ApiScheduler.d.ts +8 -0
- package/pulumi/apps/api/ApiScheduler.js +100 -0
- package/pulumi/apps/api/ApiScheduler.js.map +1 -0
- package/pulumi/apps/api/ApiWebsocket.d.ts +14 -0
- package/pulumi/apps/api/ApiWebsocket.js +138 -0
- package/pulumi/apps/api/ApiWebsocket.js.map +1 -0
- package/pulumi/apps/api/backgroundTask/definition.d.ts +7 -0
- package/pulumi/apps/api/backgroundTask/definition.js +149 -0
- package/pulumi/apps/api/backgroundTask/definition.js.map +1 -0
- package/pulumi/apps/api/backgroundTask/policy.d.ts +8 -0
- package/pulumi/apps/api/backgroundTask/policy.js +26 -0
- package/pulumi/apps/api/backgroundTask/policy.js.map +1 -0
- package/pulumi/apps/api/backgroundTask/role.d.ts +9 -0
- package/pulumi/apps/api/backgroundTask/role.js +32 -0
- package/pulumi/apps/api/backgroundTask/role.js.map +1 -0
- package/pulumi/apps/api/backgroundTask/types.d.ts +91 -0
- package/pulumi/apps/api/backgroundTask/types.js +14 -0
- package/pulumi/apps/api/backgroundTask/types.js.map +1 -0
- package/pulumi/apps/api/createApiPulumiApp.d.ts +57 -0
- package/pulumi/apps/api/createApiPulumiApp.js +282 -0
- package/pulumi/apps/api/createApiPulumiApp.js.map +1 -0
- package/pulumi/apps/api/handleGuardDutyEvents.d.ts +2 -0
- package/pulumi/apps/api/handleGuardDutyEvents.js +55 -0
- package/pulumi/apps/api/handleGuardDutyEvents.js.map +1 -0
- package/pulumi/apps/api/index.d.ts +9 -0
- package/pulumi/apps/api/index.js +11 -0
- package/pulumi/apps/api/index.js.map +1 -0
- package/pulumi/apps/awsUtils.d.ts +5 -0
- package/pulumi/apps/awsUtils.js +34 -0
- package/pulumi/apps/awsUtils.js.map +1 -0
- package/pulumi/apps/blueGreen/BlueGreenRouterApiGateway.d.ts +11 -0
- package/pulumi/apps/blueGreen/BlueGreenRouterApiGateway.js +44 -0
- package/pulumi/apps/blueGreen/BlueGreenRouterApiGateway.js.map +1 -0
- package/pulumi/apps/blueGreen/BlueGreenRouterCloudFront.d.ts +17 -0
- package/pulumi/apps/blueGreen/BlueGreenRouterCloudFront.js +100 -0
- package/pulumi/apps/blueGreen/BlueGreenRouterCloudFront.js.map +1 -0
- package/pulumi/apps/blueGreen/BlueGreenRouterCloudFrontStore.d.ts +10 -0
- package/pulumi/apps/blueGreen/BlueGreenRouterCloudFrontStore.js +20 -0
- package/pulumi/apps/blueGreen/BlueGreenRouterCloudFrontStore.js.map +1 -0
- package/pulumi/apps/blueGreen/cloudfront/createCloudFrontDefaultCacheBehaviorPolicies.d.ts +7 -0
- package/pulumi/apps/blueGreen/cloudfront/createCloudFrontDefaultCacheBehaviorPolicies.js +15 -0
- package/pulumi/apps/blueGreen/cloudfront/createCloudFrontDefaultCacheBehaviorPolicies.js.map +1 -0
- package/pulumi/apps/blueGreen/cloudfront/createCloudFrontFunctionDomainMap.d.ts +14 -0
- package/pulumi/apps/blueGreen/cloudfront/createCloudFrontFunctionDomainMap.js +23 -0
- package/pulumi/apps/blueGreen/cloudfront/createCloudFrontFunctionDomainMap.js.map +1 -0
- package/pulumi/apps/blueGreen/cloudfront/createOriginId.d.ts +11 -0
- package/pulumi/apps/blueGreen/cloudfront/createOriginId.js +10 -0
- package/pulumi/apps/blueGreen/cloudfront/createOriginId.js.map +1 -0
- package/pulumi/apps/blueGreen/constants.d.ts +3 -0
- package/pulumi/apps/blueGreen/constants.js +5 -0
- package/pulumi/apps/blueGreen/constants.js.map +1 -0
- package/pulumi/apps/blueGreen/createBlueGreenPulumiApp.d.ts +15 -0
- package/pulumi/apps/blueGreen/createBlueGreenPulumiApp.js +122 -0
- package/pulumi/apps/blueGreen/createBlueGreenPulumiApp.js.map +1 -0
- package/pulumi/apps/blueGreen/domains/attachDomainsToOutput.d.ts +9 -0
- package/pulumi/apps/blueGreen/domains/attachDomainsToOutput.js +30 -0
- package/pulumi/apps/blueGreen/domains/attachDomainsToOutput.js.map +1 -0
- package/pulumi/apps/blueGreen/domains/convertApplicationDomains.d.ts +6 -0
- package/pulumi/apps/blueGreen/domains/convertApplicationDomains.js +23 -0
- package/pulumi/apps/blueGreen/domains/convertApplicationDomains.js.map +1 -0
- package/pulumi/apps/blueGreen/domains/getApplicationDomains.d.ts +18 -0
- package/pulumi/apps/blueGreen/domains/getApplicationDomains.js +73 -0
- package/pulumi/apps/blueGreen/domains/getApplicationDomains.js.map +1 -0
- package/pulumi/apps/blueGreen/domains/resolveDomains.d.ts +6 -0
- package/pulumi/apps/blueGreen/domains/resolveDomains.js +41 -0
- package/pulumi/apps/blueGreen/domains/resolveDomains.js.map +1 -0
- package/pulumi/apps/blueGreen/functions/buildHandlerFunction.d.ts +15 -0
- package/pulumi/apps/blueGreen/functions/buildHandlerFunction.js +18 -0
- package/pulumi/apps/blueGreen/functions/buildHandlerFunction.js.map +1 -0
- package/pulumi/apps/blueGreen/functions/handler.d.ts +1 -0
- package/pulumi/apps/blueGreen/functions/handler.js +60 -0
- package/pulumi/apps/blueGreen/functions/handler.js.map +1 -0
- package/pulumi/apps/blueGreen/types.d.ts +77 -0
- package/pulumi/apps/blueGreen/types.js +3 -0
- package/pulumi/apps/blueGreen/types.js.map +1 -0
- package/pulumi/apps/blueGreen/validation/validateDeployments.d.ts +2 -0
- package/pulumi/apps/blueGreen/validation/validateDeployments.js +33 -0
- package/pulumi/apps/blueGreen/validation/validateDeployments.js.map +1 -0
- package/pulumi/apps/common/CoreOutput.d.ts +38 -0
- package/pulumi/apps/common/CoreOutput.js +46 -0
- package/pulumi/apps/common/CoreOutput.js.map +1 -0
- package/pulumi/apps/common/VpcConfig.d.ts +8 -0
- package/pulumi/apps/common/VpcConfig.js +25 -0
- package/pulumi/apps/common/VpcConfig.js.map +1 -0
- package/pulumi/apps/common/index.d.ts +2 -0
- package/pulumi/apps/common/index.js +4 -0
- package/pulumi/apps/common/index.js.map +1 -0
- package/pulumi/apps/core/CoreAuditLogsDynamo.d.ts +5 -0
- package/pulumi/apps/core/CoreAuditLogsDynamo.js +138 -0
- package/pulumi/apps/core/CoreAuditLogsDynamo.js.map +1 -0
- package/pulumi/apps/core/CoreCognito.d.ts +10 -0
- package/pulumi/apps/core/CoreCognito.js +110 -0
- package/pulumi/apps/core/CoreCognito.js.map +1 -0
- package/pulumi/apps/core/CoreDynamo.d.ts +5 -0
- package/pulumi/apps/core/CoreDynamo.js +61 -0
- package/pulumi/apps/core/CoreDynamo.js.map +1 -0
- package/pulumi/apps/core/CoreEventBus.d.ts +1 -0
- package/pulumi/apps/core/CoreEventBus.js +13 -0
- package/pulumi/apps/core/CoreEventBus.js.map +1 -0
- package/pulumi/apps/core/CoreFileManager.d.ts +8 -0
- package/pulumi/apps/core/CoreFileManager.js +44 -0
- package/pulumi/apps/core/CoreFileManager.js.map +1 -0
- package/pulumi/apps/core/CoreOpenSearch.d.ts +16 -0
- package/pulumi/apps/core/CoreOpenSearch.js +299 -0
- package/pulumi/apps/core/CoreOpenSearch.js.map +1 -0
- package/pulumi/apps/core/CoreVpc.d.ts +13 -0
- package/pulumi/apps/core/CoreVpc.js +160 -0
- package/pulumi/apps/core/CoreVpc.js.map +1 -0
- package/pulumi/apps/core/LogDynamo.d.ts +5 -0
- package/pulumi/apps/core/LogDynamo.js +94 -0
- package/pulumi/apps/core/LogDynamo.js.map +1 -0
- package/pulumi/apps/core/WatchCommand.d.ts +7 -0
- package/pulumi/apps/core/WatchCommand.js +105 -0
- package/pulumi/apps/core/WatchCommand.js.map +1 -0
- package/pulumi/apps/core/cognitoIdentityProviders/amazon.d.ts +9 -0
- package/pulumi/apps/core/cognitoIdentityProviders/amazon.js +24 -0
- package/pulumi/apps/core/cognitoIdentityProviders/amazon.js.map +1 -0
- package/pulumi/apps/core/cognitoIdentityProviders/apple.d.ts +4 -0
- package/pulumi/apps/core/cognitoIdentityProviders/apple.js +19 -0
- package/pulumi/apps/core/cognitoIdentityProviders/apple.js.map +1 -0
- package/pulumi/apps/core/cognitoIdentityProviders/configure.d.ts +28 -0
- package/pulumi/apps/core/cognitoIdentityProviders/configure.js +57 -0
- package/pulumi/apps/core/cognitoIdentityProviders/configure.js.map +1 -0
- package/pulumi/apps/core/cognitoIdentityProviders/facebook.d.ts +4 -0
- package/pulumi/apps/core/cognitoIdentityProviders/facebook.js +19 -0
- package/pulumi/apps/core/cognitoIdentityProviders/facebook.js.map +1 -0
- package/pulumi/apps/core/cognitoIdentityProviders/getIdpConfig.d.ts +3 -0
- package/pulumi/apps/core/cognitoIdentityProviders/getIdpConfig.js +17 -0
- package/pulumi/apps/core/cognitoIdentityProviders/getIdpConfig.js.map +1 -0
- package/pulumi/apps/core/cognitoIdentityProviders/google.d.ts +4 -0
- package/pulumi/apps/core/cognitoIdentityProviders/google.js +19 -0
- package/pulumi/apps/core/cognitoIdentityProviders/google.js.map +1 -0
- package/pulumi/apps/core/cognitoIdentityProviders/index.d.ts +1 -0
- package/pulumi/apps/core/cognitoIdentityProviders/index.js +3 -0
- package/pulumi/apps/core/cognitoIdentityProviders/index.js.map +1 -0
- package/pulumi/apps/core/cognitoIdentityProviders/oidc.d.ts +4 -0
- package/pulumi/apps/core/cognitoIdentityProviders/oidc.js +20 -0
- package/pulumi/apps/core/cognitoIdentityProviders/oidc.js.map +1 -0
- package/pulumi/apps/core/configureS3BucketMalwareProtection.d.ts +2 -0
- package/pulumi/apps/core/configureS3BucketMalwareProtection.js +195 -0
- package/pulumi/apps/core/configureS3BucketMalwareProtection.js.map +1 -0
- package/pulumi/apps/core/createCorePulumiApp.d.ts +32 -0
- package/pulumi/apps/core/createCorePulumiApp.js +296 -0
- package/pulumi/apps/core/createCorePulumiApp.js.map +1 -0
- package/pulumi/apps/core/index.d.ts +8 -0
- package/pulumi/apps/core/index.js +10 -0
- package/pulumi/apps/core/index.js.map +1 -0
- package/pulumi/apps/core/webinyWatchCommand/handler.d.ts +28 -0
- package/pulumi/apps/core/webinyWatchCommand/handler.js +37 -0
- package/pulumi/apps/core/webinyWatchCommand/handler.js.map +1 -0
- package/pulumi/apps/createAppBucket.d.ts +13 -0
- package/pulumi/apps/createAppBucket.js +112 -0
- package/pulumi/apps/createAppBucket.js.map +1 -0
- package/pulumi/apps/customDomain.d.ts +9 -0
- package/pulumi/apps/customDomain.js +9 -0
- package/pulumi/apps/customDomain.js.map +1 -0
- package/pulumi/apps/extensions/getAwsTagsFromExtension.d.ts +2 -0
- package/pulumi/apps/extensions/getAwsTagsFromExtension.js +10 -0
- package/pulumi/apps/extensions/getAwsTagsFromExtension.js.map +1 -0
- package/pulumi/apps/extensions/getBgDeploymentsConfigFromExtension.d.ts +23 -0
- package/pulumi/apps/extensions/getBgDeploymentsConfigFromExtension.js +10 -0
- package/pulumi/apps/extensions/getBgDeploymentsConfigFromExtension.js.map +1 -0
- package/pulumi/apps/extensions/getOsConfigFromExtension.d.ts +7 -0
- package/pulumi/apps/extensions/getOsConfigFromExtension.js +33 -0
- package/pulumi/apps/extensions/getOsConfigFromExtension.js.map +1 -0
- package/pulumi/apps/extensions/getVpcConfigFromExtension.d.ts +15 -0
- package/pulumi/apps/extensions/getVpcConfigFromExtension.js +29 -0
- package/pulumi/apps/extensions/getVpcConfigFromExtension.js.map +1 -0
- package/pulumi/apps/index.d.ts +6 -0
- package/pulumi/apps/index.js +8 -0
- package/pulumi/apps/index.js.map +1 -0
- package/pulumi/apps/lambdaUtils.d.ts +11 -0
- package/pulumi/apps/lambdaUtils.js +70 -0
- package/pulumi/apps/lambdaUtils.js.map +1 -0
- package/pulumi/apps/react/createReactPulumiApp.d.ts +30 -0
- package/pulumi/apps/react/createReactPulumiApp.js +150 -0
- package/pulumi/apps/react/createReactPulumiApp.js.map +1 -0
- package/pulumi/apps/react/index.d.ts +1 -0
- package/pulumi/apps/react/index.js +3 -0
- package/pulumi/apps/react/index.js.map +1 -0
- package/pulumi/apps/syncSystem/SyncSystemDynamo.d.ts +5 -0
- package/pulumi/apps/syncSystem/SyncSystemDynamo.js +56 -0
- package/pulumi/apps/syncSystem/SyncSystemDynamo.js.map +1 -0
- package/pulumi/apps/syncSystem/SyncSystemDynamoDb.d.ts +3 -0
- package/pulumi/apps/syncSystem/SyncSystemDynamoDb.js +52 -0
- package/pulumi/apps/syncSystem/SyncSystemDynamoDb.js.map +1 -0
- package/pulumi/apps/syncSystem/SyncSystemEventBus.d.ts +6 -0
- package/pulumi/apps/syncSystem/SyncSystemEventBus.js +77 -0
- package/pulumi/apps/syncSystem/SyncSystemEventBus.js.map +1 -0
- package/pulumi/apps/syncSystem/SyncSystemLambda.d.ts +11 -0
- package/pulumi/apps/syncSystem/SyncSystemLambda.js +99 -0
- package/pulumi/apps/syncSystem/SyncSystemLambda.js.map +1 -0
- package/pulumi/apps/syncSystem/SyncSystemOutput.d.ts +3 -0
- package/pulumi/apps/syncSystem/SyncSystemOutput.js +18 -0
- package/pulumi/apps/syncSystem/SyncSystemOutput.js.map +1 -0
- package/pulumi/apps/syncSystem/SyncSystemResolverLambda.d.ts +8 -0
- package/pulumi/apps/syncSystem/SyncSystemResolverLambda.js +73 -0
- package/pulumi/apps/syncSystem/SyncSystemResolverLambda.js.map +1 -0
- package/pulumi/apps/syncSystem/SyncSystemSQS.d.ts +3 -0
- package/pulumi/apps/syncSystem/SyncSystemSQS.js +54 -0
- package/pulumi/apps/syncSystem/SyncSystemSQS.js.map +1 -0
- package/pulumi/apps/syncSystem/SyncSystemWorkerLambda.d.ts +7 -0
- package/pulumi/apps/syncSystem/SyncSystemWorkerLambda.js +52 -0
- package/pulumi/apps/syncSystem/SyncSystemWorkerLambda.js.map +1 -0
- package/pulumi/apps/syncSystem/addTableItems.d.ts +8 -0
- package/pulumi/apps/syncSystem/addTableItems.js +51 -0
- package/pulumi/apps/syncSystem/addTableItems.js.map +1 -0
- package/pulumi/apps/syncSystem/api/addServiceManifest.d.ts +8 -0
- package/pulumi/apps/syncSystem/api/addServiceManifest.js +18 -0
- package/pulumi/apps/syncSystem/api/addServiceManifest.js.map +1 -0
- package/pulumi/apps/syncSystem/api/attachCognitoPermissions.d.ts +14 -0
- package/pulumi/apps/syncSystem/api/attachCognitoPermissions.js +59 -0
- package/pulumi/apps/syncSystem/api/attachCognitoPermissions.js.map +1 -0
- package/pulumi/apps/syncSystem/api/attachDynamoDbPermissions.d.ts +13 -0
- package/pulumi/apps/syncSystem/api/attachDynamoDbPermissions.js +44 -0
- package/pulumi/apps/syncSystem/api/attachDynamoDbPermissions.js.map +1 -0
- package/pulumi/apps/syncSystem/api/attachEventBusPermissions.d.ts +17 -0
- package/pulumi/apps/syncSystem/api/attachEventBusPermissions.js +48 -0
- package/pulumi/apps/syncSystem/api/attachEventBusPermissions.js.map +1 -0
- package/pulumi/apps/syncSystem/api/attachS3Permissions.d.ts +14 -0
- package/pulumi/apps/syncSystem/api/attachS3Permissions.js +51 -0
- package/pulumi/apps/syncSystem/api/attachS3Permissions.js.map +1 -0
- package/pulumi/apps/syncSystem/api/index.d.ts +8 -0
- package/pulumi/apps/syncSystem/api/index.js +55 -0
- package/pulumi/apps/syncSystem/api/index.js.map +1 -0
- package/pulumi/apps/syncSystem/constants.d.ts +1 -0
- package/pulumi/apps/syncSystem/constants.js +3 -0
- package/pulumi/apps/syncSystem/constants.js.map +1 -0
- package/pulumi/apps/syncSystem/createSyncResourceName.d.ts +4 -0
- package/pulumi/apps/syncSystem/createSyncResourceName.js +10 -0
- package/pulumi/apps/syncSystem/createSyncResourceName.js.map +1 -0
- package/pulumi/apps/syncSystem/createSyncSystemPulumiApp.d.ts +26 -0
- package/pulumi/apps/syncSystem/createSyncSystemPulumiApp.js +181 -0
- package/pulumi/apps/syncSystem/createSyncSystemPulumiApp.js.map +1 -0
- package/pulumi/apps/syncSystem/customApp.d.ts +6 -0
- package/pulumi/apps/syncSystem/customApp.js +19 -0
- package/pulumi/apps/syncSystem/customApp.js.map +1 -0
- package/pulumi/apps/syncSystem/getSyncSystemOutput.d.ts +3 -0
- package/pulumi/apps/syncSystem/getSyncSystemOutput.js +10 -0
- package/pulumi/apps/syncSystem/getSyncSystemOutput.js.map +1 -0
- package/pulumi/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.d.ts +7 -0
- package/pulumi/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.js +48 -0
- package/pulumi/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.js.map +1 -0
- package/pulumi/apps/syncSystem/types.d.ts +56 -0
- package/pulumi/apps/syncSystem/types.js +3 -0
- package/pulumi/apps/syncSystem/types.js.map +1 -0
- package/pulumi/constants.d.ts +1 -0
- package/pulumi/constants.js +4 -0
- package/pulumi/constants.js.map +1 -0
- package/pulumi/env/awsRegion.d.ts +1 -0
- package/pulumi/env/awsRegion.js +6 -0
- package/pulumi/env/awsRegion.js.map +1 -0
- package/pulumi/env/base.d.ts +15 -0
- package/pulumi/env/base.js +29 -0
- package/pulumi/env/base.js.map +1 -0
- package/pulumi/env/env.d.ts +1 -0
- package/pulumi/env/env.js +6 -0
- package/pulumi/env/env.js.map +1 -0
- package/pulumi/env/projectName.d.ts +1 -0
- package/pulumi/env/projectName.js +6 -0
- package/pulumi/env/projectName.js.map +1 -0
- package/pulumi/env/variant.d.ts +1 -0
- package/pulumi/env/variant.js +7 -0
- package/pulumi/env/variant.js.map +1 -0
- package/pulumi/extensions/AdminCustomDomains.d.ts +14 -0
- package/pulumi/extensions/AdminCustomDomains.js +16 -0
- package/pulumi/extensions/AdminCustomDomains.js.map +1 -0
- package/pulumi/extensions/AwsTags.d.ts +8 -0
- package/pulumi/extensions/AwsTags.js +15 -0
- package/pulumi/extensions/AwsTags.js.map +1 -0
- package/pulumi/extensions/BlueGreenDeployments.d.ts +134 -0
- package/pulumi/extensions/BlueGreenDeployments.js +34 -0
- package/pulumi/extensions/BlueGreenDeployments.js.map +1 -0
- package/pulumi/extensions/OpenSearch.d.ts +17 -0
- package/pulumi/extensions/OpenSearch.js +17 -0
- package/pulumi/extensions/OpenSearch.js.map +1 -0
- package/pulumi/extensions/Vpc.d.ts +71 -0
- package/pulumi/extensions/Vpc.js +25 -0
- package/pulumi/extensions/Vpc.js.map +1 -0
- package/pulumi/extensions/index.d.ts +220 -0
- package/pulumi/extensions/index.js +13 -0
- package/pulumi/extensions/index.js.map +1 -0
- package/pulumi/index.d.ts +3 -0
- package/pulumi/index.js +5 -0
- package/pulumi/index.js.map +1 -0
- package/pulumi/types.d.ts +44 -0
- package/pulumi/types.js +3 -0
- package/pulumi/types.js.map +1 -0
- package/pulumi/utils/addDomainsUrlsOutputs.d.ts +18 -0
- package/pulumi/utils/addDomainsUrlsOutputs.js +40 -0
- package/pulumi/utils/addDomainsUrlsOutputs.js.map +1 -0
- package/pulumi/utils/addServiceManifestTableItem.d.ts +12 -0
- package/pulumi/utils/addServiceManifestTableItem.js +28 -0
- package/pulumi/utils/addServiceManifestTableItem.js.map +1 -0
- package/pulumi/utils/crawlDirectory.d.ts +1 -0
- package/pulumi/utils/crawlDirectory.js +19 -0
- package/pulumi/utils/crawlDirectory.js.map +1 -0
- package/pulumi/utils/createAssetArchive.d.ts +2 -0
- package/pulumi/utils/createAssetArchive.js +8 -0
- package/pulumi/utils/createAssetArchive.js.map +1 -0
- package/pulumi/utils/dynamodb.d.ts +14 -0
- package/pulumi/utils/dynamodb.js +29 -0
- package/pulumi/utils/dynamodb.js.map +1 -0
- package/pulumi/utils/getPresignedPost.d.ts +11 -0
- package/pulumi/utils/getPresignedPost.js +34 -0
- package/pulumi/utils/getPresignedPost.js.map +1 -0
- package/pulumi/utils/index.d.ts +5 -0
- package/pulumi/utils/index.js +7 -0
- package/pulumi/utils/index.js.map +1 -0
- package/pulumi/utils/lambdaEnvVariables.d.ts +20 -0
- package/pulumi/utils/lambdaEnvVariables.js +62 -0
- package/pulumi/utils/lambdaEnvVariables.js.map +1 -0
- package/pulumi/utils/tagResources.d.ts +5 -0
- package/pulumi/utils/tagResources.js +33 -0
- package/pulumi/utils/tagResources.js.map +1 -0
- package/pulumi/utils/uploadFolderToS3.d.ts +26 -0
- package/pulumi/utils/uploadFolderToS3.js +147 -0
- package/pulumi/utils/uploadFolderToS3.js.map +1 -0
- package/pulumi/utils/withServiceManifest.d.ts +14 -0
- package/pulumi/utils/withServiceManifest.js +45 -0
- package/pulumi/utils/withServiceManifest.js.map +1 -0
- package/security.d.ts +356 -0
- package/security.js +53 -0
- package/security.js.map +1 -0
- package/services/AdminStackOutputService.d.ts +10 -0
- package/services/AdminStackOutputService.js +16 -0
- package/services/AdminStackOutputService.js.map +1 -0
- package/services/ApiStackOutputService.d.ts +10 -0
- package/services/ApiStackOutputService.js +16 -0
- package/services/ApiStackOutputService.js.map +1 -0
- package/services/CoreStackOutputService.d.ts +10 -0
- package/services/CoreStackOutputService.js +16 -0
- package/services/CoreStackOutputService.js.map +1 -0
- package/utils/getTemplatesFolderPath.d.ts +1 -0
- package/utils/getTemplatesFolderPath.js +16 -0
- package/utils/getTemplatesFolderPath.js.map +1 -0
- package/utils/index.d.ts +1 -0
- package/utils/index.js +3 -0
- package/utils/index.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getStackOutput","apps","removeProtocol","url","replace","getApiDomainName","results","name","api","find","r","app","stack","apiDomain","Error","getAdminDomainName","admin","appDomain","getEnv","env","getVariant","variant","getApplicationDomains","params","promises","stacks","push","Promise","resolve","result","all","deployments","names","map","s","ex","console","error","message"],"sources":["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"],"mappings":"AAAA,SAAuBA,cAAc,QAAQ,iBAAiB;AAa9D,MAAMC,IAAe,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC;AAqBxC,MAAMC,cAAc,GAAIC,GAAW,IAAa;EAC5C,OAAOA,GAAG,CAACC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;AAC1C,CAAC;AAED,MAAMC,gBAAgB,GAAGA,CAACC,OAAyB,EAAEC,IAAY,KAAa;EAC1E,MAAMC,GAAG,GAAGF,OAAO,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACH,IAAI,KAAKA,IAAI,IAAIG,CAAC,CAACC,GAAG,KAAK,KAAK,CAAC;EACjE,IAAI,CAACH,GAAG,EAAEI,KAAK,EAAEC,SAAS,EAAE;IACxB,MAAM,IAAIC,KAAK,CAAC,0BAA0BP,IAAI,eAAe,CAAC;EAClE;EACA,OAAOL,cAAc,CAACM,GAAG,CAACI,KAAK,CAACC,SAAS,CAAC;AAC9C,CAAC;AAED,MAAME,kBAAkB,GAAGA,CAACT,OAAyB,EAAEC,IAAY,KAAa;EAC5E,MAAMS,KAAK,GAAGV,OAAO,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACH,IAAI,KAAKA,IAAI,IAAIG,CAAC,CAACC,GAAG,KAAK,OAAO,CAAC;EACrE,IAAI,CAACK,KAAK,EAAEJ,KAAK,EAAEK,SAAS,EAAE;IAC1B,MAAM,IAAIH,KAAK,CAAC,4BAA4BP,IAAI,eAAe,CAAC;EACpE;EACA,OAAOL,cAAc,CAACc,KAAK,CAACJ,KAAK,CAACK,SAAS,CAAC;AAChD,CAAC;AAED,MAAMC,MAAM,GAAGA,CAACZ,OAAyB,EAAEC,IAAY,KAAa;EAChE,MAAMY,GAAG,GAAGb,OAAO,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACH,IAAI,KAAKA,IAAI,CAAC;EAC9C,IAAI,CAACY,GAAG,EAAE;IACN,MAAM,IAAIL,KAAK,CAAC,4BAA4BP,IAAI,eAAe,CAAC;EACpE;EACA,OAAOY,GAAG,CAACA,GAAG;AAClB,CAAC;AAED,MAAMC,UAAU,GAAGA,CAACd,OAAyB,EAAEC,IAAY,KAAyB;EAChF,MAAMc,OAAO,GAAGf,OAAO,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACH,IAAI,KAAKA,IAAI,CAAC;EAClD,IAAI,CAACc,OAAO,EAAE;IACV,MAAM,IAAIP,KAAK,CAAC,wBAAwBP,IAAI,eAAe,CAAC;EAChE;EACA,OAAOc,OAAO,CAACA,OAAO;AAC1B,CAAC;AAED,OAAO,MAAMC,qBAAqB,GAAG,MACjCC,MAA6B,IACU;EACvC,MAAMC,QAAmC,GAAG,EAAE;EAE9C,KAAK,MAAMZ,KAAK,IAAIW,MAAM,CAACE,MAAM,EAAE;IAC/B,KAAK,MAAMd,GAAG,IAAIV,IAAI,EAAE;MACpBuB,QAAQ,CAACE,IAAI,CACT,IAAIC,OAAO,CAAiB,MAAMC,OAAO,IAAI;QACzC,MAAMC,MAAM,GAAG,MAAM7B,cAAc,CAAsBW,GAAG,CAAC;QAE7DiB,OAAO,CAAC;UACJT,GAAG,EAAEP,KAAK,CAACO,GAAG;UACdE,OAAO,EAAET,KAAK,CAACS,OAAO;UACtBd,IAAI,EAAEK,KAAK,CAACL,IAAI;UAChBI,GAAG;UACHC,KAAK,EAAEiB;QACX,CAAC,CAAC;MACN,CAAC,CACL,CAAC;IACL;EACJ;EACA,MAAMvB,OAAO,GAAG,MAAMqB,OAAO,CAACG,GAAG,CAACN,QAAQ,CAAC;EAC3C,MAAMO,WAAwC,GAAG,CAAC,CAAC;EACnD,MAAMC,KAAK,GAAGT,MAAM,CAACE,MAAM,CAACQ,GAAG,CAACC,CAAC,IAAIA,CAAC,CAAC3B,IAAI,CAAC;EAC5C,IAAI;IACA,KAAK,MAAMA,IAAI,IAAIyB,KAAK,EAAE;MACtB,MAAMb,GAAG,GAAGD,MAAM,CAACZ,OAAO,EAAEC,IAAI,CAAC;MACjC,MAAMc,OAAO,GAAGD,UAAU,CAACd,OAAO,EAAEC,IAAI,CAAC;MACzC,MAAMC,GAAG,GAAGH,gBAAgB,CAACC,OAAO,EAAEC,IAAI,CAAC;MAC3C,MAAMS,KAAK,GAAGD,kBAAkB,CAACT,OAAO,EAAEC,IAAI,CAAC;MAE/CwB,WAAW,CAACxB,IAAI,CAAC,GAAG;QAChBY,GAAG;QACHE,OAAO;QACPb,GAAG;QACHQ;MACJ,CAAC;IACL;IACA,OAAOe,WAAW;EACtB,CAAC,CAAC,OAAOI,EAAE,EAAE;IACTC,OAAO,CAACC,KAAK,CAACF,EAAE,CAACG,OAAO,CAAC;IACzB,MAAMH,EAAE;EACZ;AACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IAttachedDomains, IDeploymentsDomains, IResolvedDomains } from "../types.js";
|
|
2
|
+
export interface IResolveDomainsParams {
|
|
3
|
+
attachedDomains: IAttachedDomains;
|
|
4
|
+
deploymentsDomains: IDeploymentsDomains;
|
|
5
|
+
}
|
|
6
|
+
export declare const resolveDomains: (params: IResolveDomainsParams) => IResolvedDomains;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export const resolveDomains = params => {
|
|
2
|
+
const {
|
|
3
|
+
attachedDomains,
|
|
4
|
+
deploymentsDomains
|
|
5
|
+
} = params;
|
|
6
|
+
const domains = attachedDomains.domains;
|
|
7
|
+
if (!domains) {
|
|
8
|
+
return [];
|
|
9
|
+
}
|
|
10
|
+
const types = Object.keys(domains).filter(key => {
|
|
11
|
+
return !!domains[key];
|
|
12
|
+
});
|
|
13
|
+
return types.reduce((output, type) => {
|
|
14
|
+
const value = domains[type];
|
|
15
|
+
/**
|
|
16
|
+
* Should not happen because we are filtering out undefined values when creating the `types` array.
|
|
17
|
+
*/
|
|
18
|
+
if (!value) {
|
|
19
|
+
return output;
|
|
20
|
+
} else if (value.length === 0) {
|
|
21
|
+
throw new Error(`Missing domains for "${type}" deployment.`);
|
|
22
|
+
}
|
|
23
|
+
for (const domain of deploymentsDomains) {
|
|
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
|
+
}, []);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=resolveDomains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["resolveDomains","params","attachedDomains","deploymentsDomains","domains","types","Object","keys","filter","key","reduce","output","type","value","length","Error","domain","target","name","push","env","variant","sources"],"sources":["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"],"mappings":"AAYA,OAAO,MAAMA,cAAc,GAAIC,MAA6B,IAAuB;EAC/E,MAAM;IAAEC,eAAe;IAAEC;EAAmB,CAAC,GAAGF,MAAM;EAEtD,MAAMG,OAAO,GAAGF,eAAe,CAACE,OAAO;EAEvC,IAAI,CAACA,OAAO,EAAE;IACV,OAAO,EAAE;EACb;EACA,MAAMC,KAAK,GAAGC,MAAM,CAACC,IAAI,CAACH,OAAO,CAAC,CAACI,MAAM,CAACC,GAAG,IAAI;IAC7C,OAAO,CAAC,CAACL,OAAO,CAACK,GAAG,CAAuB;EAC/C,CAAC,CAAyB;EAE1B,OAAOJ,KAAK,CAACK,MAAM,CAAmB,CAACC,MAAM,EAAEC,IAAI,KAAK;IACpD,MAAMC,KAAK,GAAGT,OAAO,CAACQ,IAAI,CAAC;IAC3B;AACR;AACA;IACQ,IAAI,CAACC,KAAK,EAAE;MACR,OAAOF,MAAM;IACjB,CAAC,MAAM,IAAIE,KAAK,CAACC,MAAM,KAAK,CAAC,EAAE;MAC3B,MAAM,IAAIC,KAAK,CAAC,wBAAwBH,IAAI,eAAe,CAAC;IAChE;IACA,KAAK,MAAMI,MAAM,IAAIb,kBAAkB,EAAE;MACrC,MAAMc,MAAM,GAAGD,MAAM,CAACZ,OAAO,CAACQ,IAAI,CAAC;MACnC,IAAI,CAACK,MAAM,EAAE;QACT,MAAM,IAAIF,KAAK,CAAC,YAAYH,IAAI,2BAA2BI,MAAM,CAACE,IAAI,IAAI,CAAC;MAC/E;MAEAP,MAAM,CAACQ,IAAI,CAAC;QACRP,IAAI;QACJQ,GAAG,EAAEJ,MAAM,CAACI,GAAG;QACfC,OAAO,EAAEL,MAAM,CAACK,OAAO;QACvBH,IAAI,EAAEF,MAAM,CAACE,IAAI;QACjBI,OAAO,EAAET,KAAK;QACdI;MACJ,CAAC,CAAC;IACN;IAEA,OAAON,MAAM;EACjB,CAAC,EAAE,EAAE,CAAC;AACV,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface IBuildRequestFunctionParamsDomain {
|
|
2
|
+
/**
|
|
3
|
+
* Name of the deployment (eg. green, blue, orange, etc.).
|
|
4
|
+
*/
|
|
5
|
+
name: string;
|
|
6
|
+
sourceDomain: string;
|
|
7
|
+
targetOriginId: string;
|
|
8
|
+
targetDomain: string;
|
|
9
|
+
}
|
|
10
|
+
export interface IBuildRequestFunctionParams {
|
|
11
|
+
storeId: string;
|
|
12
|
+
storeKey: string;
|
|
13
|
+
domains: IBuildRequestFunctionParamsDomain[];
|
|
14
|
+
}
|
|
15
|
+
export declare const buildHandlerFunction: ({ storeId, storeKey, domains }: IBuildRequestFunctionParams) => string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "fs";
|
|
2
|
+
export const buildHandlerFunction = ({
|
|
3
|
+
storeId,
|
|
4
|
+
storeKey,
|
|
5
|
+
domains
|
|
6
|
+
}) => {
|
|
7
|
+
const target = __dirname + `/handler.mjs`;
|
|
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));
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=buildHandlerFunction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["existsSync","readFileSync","buildHandlerFunction","storeId","storeKey","domains","target","__dirname","Error","content","replace","JSON","stringify"],"sources":["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"],"mappings":"AAAA,SAASA,UAAU,EAAEC,YAAY,QAAQ,IAAI;AAkB7C,OAAO,MAAMC,oBAAoB,GAAGA,CAAC;EACjCC,OAAO;EACPC,QAAQ;EACRC;AACyB,CAAC,KAAa;EACvC,MAAMC,MAAM,GAAGC,SAAS,GAAG,cAAc;EACzC,IAAI,CAACP,UAAU,CAACM,MAAM,CAAC,EAAE;IACrB,MAAM,IAAIE,KAAK,CAAC,SAASF,MAAM,mBAAmB,CAAC;EACvD;EACA,MAAMG,OAAO,GAAGR,YAAY,CAACK,MAAM,EAAE,MAAM,CAAC;EAC5C,IAAI,CAACG,OAAO,EAAE;IACV,MAAM,IAAID,KAAK,CAAC,SAASF,MAAM,aAAa,CAAC;EACjD;EAEA,OAAOG,OAAO,CACTC,OAAO,CAAC,8BAA8B,EAAEP,OAAO,CAAC,CAChDO,OAAO,CAAC,+BAA+B,EAAEN,QAAQ,CAAC,CAClDM,OAAO,CAAC,+BAA+B,EAAEC,IAAI,CAACC,SAAS,CAACP,OAAO,CAAC,CAAC;AAC1E,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
const cf = require("cloudfront");
|
|
2
|
+
const BLUE_GREEN_ROUTER_STORE_ID = "{BLUE_GREEN_ROUTER_STORE_ID}";
|
|
3
|
+
const BLUE_GREEN_ROUTER_STORE_KEY = "{BLUE_GREEN_ROUTER_STORE_KEY}";
|
|
4
|
+
const BLUE_GREEN_ROUTER_DOMAINS = "{BLUE_GREEN_ROUTER_DOMAINS}";
|
|
5
|
+
const store = cf.kvs(BLUE_GREEN_ROUTER_STORE_ID);
|
|
6
|
+
function removeProtocol(url) {
|
|
7
|
+
return url.replace(/^https?:\/\//, "");
|
|
8
|
+
}
|
|
9
|
+
function requestWithError(request, error) {
|
|
10
|
+
console.log(`There is an error: ${error.message}`);
|
|
11
|
+
const properties = Object.getOwnPropertyNames(error);
|
|
12
|
+
for (const property in properties) {
|
|
13
|
+
console.log(`${property}: ${error[property]}`);
|
|
14
|
+
}
|
|
15
|
+
request.headers["x-webiny-debug-log"] = {
|
|
16
|
+
value: error.message
|
|
17
|
+
};
|
|
18
|
+
return request;
|
|
19
|
+
}
|
|
20
|
+
function getTargetDomain(headers, active) {
|
|
21
|
+
const values = headers.host;
|
|
22
|
+
if (!values) {
|
|
23
|
+
throw new Error("Missing the 'host' header.");
|
|
24
|
+
}
|
|
25
|
+
const initialHost = Array.isArray(values) ? values[0].value : values.value;
|
|
26
|
+
if (!initialHost) {
|
|
27
|
+
throw new Error("Missing the 'host' header value.");
|
|
28
|
+
}
|
|
29
|
+
const host = removeProtocol(initialHost);
|
|
30
|
+
const domain = BLUE_GREEN_ROUTER_DOMAINS.find(domain => domain.name === active && domain.sourceDomain === host);
|
|
31
|
+
if (domain) {
|
|
32
|
+
return domain;
|
|
33
|
+
}
|
|
34
|
+
throw new Error(`Could not find a domain mapping for ${host}.`);
|
|
35
|
+
}
|
|
36
|
+
function handleRequest(request, active) {
|
|
37
|
+
const targetDomain = getTargetDomain(request.headers || {}, active);
|
|
38
|
+
cf.updateRequestOrigin({
|
|
39
|
+
domainName: targetDomain.targetDomain
|
|
40
|
+
});
|
|
41
|
+
return request;
|
|
42
|
+
}
|
|
43
|
+
async function handler(event) {
|
|
44
|
+
const context = event.context;
|
|
45
|
+
const request = event.request;
|
|
46
|
+
try {
|
|
47
|
+
if (context.eventType !== "viewer-request") {
|
|
48
|
+
new Error("This function only supports viewer-request events.");
|
|
49
|
+
}
|
|
50
|
+
const active = await store.get(BLUE_GREEN_ROUTER_STORE_KEY);
|
|
51
|
+
if (!active) {
|
|
52
|
+
throw new Error("Blue/Green system is not configured.");
|
|
53
|
+
}
|
|
54
|
+
return await handleRequest(request, active);
|
|
55
|
+
} catch (ex) {
|
|
56
|
+
return requestWithError(request, ex);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["cf","require","BLUE_GREEN_ROUTER_STORE_ID","BLUE_GREEN_ROUTER_STORE_KEY","BLUE_GREEN_ROUTER_DOMAINS","store","kvs","removeProtocol","url","replace","requestWithError","request","error","console","log","message","properties","Object","getOwnPropertyNames","property","headers","value","getTargetDomain","active","values","host","Error","initialHost","Array","isArray","domain","find","name","sourceDomain","handleRequest","targetDomain","updateRequestOrigin","domainName","handler","event","context","eventType","get","ex"],"sources":["handler.js"],"sourcesContent":["const 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"],"mappings":"AAAA,MAAMA,EAAE,GAAGC,OAAO,CAAC,YAAY,CAAC;AAEhC,MAAMC,0BAA0B,GAAG,8BAA8B;AACjE,MAAMC,2BAA2B,GAAG,+BAA+B;AACnE,MAAMC,yBAAyB,GAAG,6BAA6B;AAE/D,MAAMC,KAAK,GAAGL,EAAE,CAACM,GAAG,CAACJ,0BAA0B,CAAC;AAEhD,SAASK,cAAcA,CAACC,GAAG,EAAE;EACzB,OAAOA,GAAG,CAACC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;AAC1C;AACA,SAASC,gBAAgBA,CAACC,OAAO,EAAEC,KAAK,EAAE;EACtCC,OAAO,CAACC,GAAG,CAAC,sBAAsBF,KAAK,CAACG,OAAO,EAAE,CAAC;EAClD,MAAMC,UAAU,GAAGC,MAAM,CAACC,mBAAmB,CAACN,KAAK,CAAC;EACpD,KAAK,MAAMO,QAAQ,IAAIH,UAAU,EAAE;IAC/BH,OAAO,CAACC,GAAG,CAAC,GAAGK,QAAQ,KAAKP,KAAK,CAACO,QAAQ,CAAC,EAAE,CAAC;EAClD;EACAR,OAAO,CAACS,OAAO,CAAC,oBAAoB,CAAC,GAAG;IACpCC,KAAK,EAAET,KAAK,CAACG;EACjB,CAAC;EAED,OAAOJ,OAAO;AAClB;AAEA,SAASW,eAAeA,CAACF,OAAO,EAAEG,MAAM,EAAE;EACtC,MAAMC,MAAM,GAAGJ,OAAO,CAACK,IAAI;EAC3B,IAAI,CAACD,MAAM,EAAE;IACT,MAAM,IAAIE,KAAK,CAAC,4BAA4B,CAAC;EACjD;EACA,MAAMC,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACL,MAAM,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC,CAACH,KAAK,GAAGG,MAAM,CAACH,KAAK;EAC1E,IAAI,CAACM,WAAW,EAAE;IACd,MAAM,IAAID,KAAK,CAAC,kCAAkC,CAAC;EACvD;EACA,MAAMD,IAAI,GAAGlB,cAAc,CAACoB,WAAW,CAAC;EAExC,MAAMG,MAAM,GAAG1B,yBAAyB,CAAC2B,IAAI,CACzCD,MAAM,IAAIA,MAAM,CAACE,IAAI,KAAKT,MAAM,IAAIO,MAAM,CAACG,YAAY,KAAKR,IAChE,CAAC;EACD,IAAIK,MAAM,EAAE;IACR,OAAOA,MAAM;EACjB;EACA,MAAM,IAAIJ,KAAK,CAAC,uCAAuCD,IAAI,GAAG,CAAC;AACnE;AAEA,SAASS,aAAaA,CAACvB,OAAO,EAAEY,MAAM,EAAE;EACpC,MAAMY,YAAY,GAAGb,eAAe,CAACX,OAAO,CAACS,OAAO,IAAI,CAAC,CAAC,EAAEG,MAAM,CAAC;EAEnEvB,EAAE,CAACoC,mBAAmB,CAAC;IACnBC,UAAU,EAAEF,YAAY,CAACA;EAC7B,CAAC,CAAC;EAEF,OAAOxB,OAAO;AAClB;AAEA,eAAe2B,OAAOA,CAACC,KAAK,EAAE;EAC1B,MAAMC,OAAO,GAAGD,KAAK,CAACC,OAAO;EAC7B,MAAM7B,OAAO,GAAG4B,KAAK,CAAC5B,OAAO;EAE7B,IAAI;IACA,IAAI6B,OAAO,CAACC,SAAS,KAAK,gBAAgB,EAAE;MACxC,IAAIf,KAAK,CAAC,oDAAoD,CAAC;IACnE;IACA,MAAMH,MAAM,GAAG,MAAMlB,KAAK,CAACqC,GAAG,CAACvC,2BAA2B,CAAC;IAC3D,IAAI,CAACoB,MAAM,EAAE;MACT,MAAM,IAAIG,KAAK,CAAC,sCAAsC,CAAC;IAC3D;IAEA,OAAO,MAAMQ,aAAa,CAACvB,OAAO,EAAEY,MAAM,CAAC;EAC/C,CAAC,CAAC,OAAOoB,EAAE,EAAE;IACT,OAAOjC,gBAAgB,CAACC,OAAO,EAAEgC,EAAE,CAAC;EACxC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { IStackOutput } from "@webiny/project";
|
|
2
|
+
export type GenericRecord<K extends PropertyKey = PropertyKey, V = any> = Record<K, V>;
|
|
3
|
+
export type NonEmptyArray<T> = [T, ...T[]];
|
|
4
|
+
export interface IDeploymentDomain {
|
|
5
|
+
/**
|
|
6
|
+
* A name of the deployment (e.g. "green" or "blue").
|
|
7
|
+
*/
|
|
8
|
+
name: string;
|
|
9
|
+
env: string;
|
|
10
|
+
variant: string | undefined;
|
|
11
|
+
domains: {
|
|
12
|
+
api: string;
|
|
13
|
+
admin: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export type IDeploymentsDomains = [IDeploymentDomain, IDeploymentDomain];
|
|
17
|
+
export interface IBlueGreenDeployment {
|
|
18
|
+
/**
|
|
19
|
+
* Name by this deployment will be accessible in the Pulumi program.
|
|
20
|
+
*/
|
|
21
|
+
name: string;
|
|
22
|
+
env: string;
|
|
23
|
+
variant: string | undefined;
|
|
24
|
+
}
|
|
25
|
+
export interface IAttachedDomainsTypes {
|
|
26
|
+
api: NonEmptyArray<string>;
|
|
27
|
+
admin: NonEmptyArray<string>;
|
|
28
|
+
}
|
|
29
|
+
export interface IAttachedDomains {
|
|
30
|
+
acmCertificateArn: string;
|
|
31
|
+
sslSupportMethod?: string;
|
|
32
|
+
/**
|
|
33
|
+
* We need to allow system to be deployed without any domains for start.
|
|
34
|
+
* User can attach domains later.
|
|
35
|
+
*/
|
|
36
|
+
domains?: IAttachedDomainsTypes;
|
|
37
|
+
}
|
|
38
|
+
export interface IAttachDomainsCallableParams {
|
|
39
|
+
env: string;
|
|
40
|
+
}
|
|
41
|
+
export interface IAttachDomainsCallable {
|
|
42
|
+
(params: IAttachDomainsCallableParams): IAttachedDomains;
|
|
43
|
+
}
|
|
44
|
+
export type IAttachedDomainKey = keyof IAttachedDomainsTypes;
|
|
45
|
+
export interface IResolvedDomain {
|
|
46
|
+
/**
|
|
47
|
+
* Environment and variant of the deployment.
|
|
48
|
+
*/
|
|
49
|
+
env: string;
|
|
50
|
+
variant: string | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Name of the deployment (e.g. "green" or "blue").
|
|
53
|
+
*/
|
|
54
|
+
name: string;
|
|
55
|
+
/**
|
|
56
|
+
* Type of the domain (e.g. "api", "admin").
|
|
57
|
+
*/
|
|
58
|
+
type: IAttachedDomainKey;
|
|
59
|
+
/**
|
|
60
|
+
* List of domains that will be used as source and transferred to the target domain.
|
|
61
|
+
*/
|
|
62
|
+
sources: NonEmptyArray<string>;
|
|
63
|
+
/**
|
|
64
|
+
* The target CloudFront domain of the deployment.
|
|
65
|
+
*/
|
|
66
|
+
target: string;
|
|
67
|
+
}
|
|
68
|
+
export type IResolvedDomains = IResolvedDomain[];
|
|
69
|
+
export interface IBlueGreenStackOutput extends IStackOutput {
|
|
70
|
+
distributionDomain: string;
|
|
71
|
+
distributionUrl: string;
|
|
72
|
+
/**
|
|
73
|
+
* TODO fix later
|
|
74
|
+
*/
|
|
75
|
+
environments?: IResolvedDomains;
|
|
76
|
+
domains?: string[];
|
|
77
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { IStackOutput } from \"@webiny/project\";\n\nexport type GenericRecord<K extends PropertyKey = PropertyKey, V = any> = Record<K, V>;\n\nexport type NonEmptyArray<T> = [T, ...T[]];\n\nexport interface IDeploymentDomain {\n /**\n * A name of the deployment (e.g. \"green\" or \"blue\").\n */\n name: string;\n env: string;\n variant: string | undefined;\n domains: {\n api: string;\n admin: string;\n };\n}\n\nexport type IDeploymentsDomains = [IDeploymentDomain, IDeploymentDomain];\n\nexport interface IBlueGreenDeployment {\n /**\n * Name by this deployment will be accessible in the Pulumi program.\n */\n name: string;\n env: string;\n variant: string | undefined;\n}\n\nexport interface IAttachedDomainsTypes {\n api: NonEmptyArray<string>;\n admin: NonEmptyArray<string>;\n}\n\nexport interface IAttachedDomains {\n acmCertificateArn: string;\n sslSupportMethod?: string;\n /**\n * We need to allow system to be deployed without any domains for start.\n * User can attach domains later.\n */\n domains?: IAttachedDomainsTypes;\n}\n\nexport interface IAttachDomainsCallableParams {\n env: string;\n}\n\nexport interface IAttachDomainsCallable {\n (params: IAttachDomainsCallableParams): IAttachedDomains;\n}\n\nexport type IAttachedDomainKey = keyof IAttachedDomainsTypes;\n\nexport interface IResolvedDomain {\n /**\n * Environment and variant of the deployment.\n */\n env: string;\n variant: string | undefined;\n /**\n * Name of the deployment (e.g. \"green\" or \"blue\").\n */\n name: string;\n /**\n * Type of the domain (e.g. \"api\", \"admin\").\n */\n type: IAttachedDomainKey;\n /**\n * List of domains that will be used as source and transferred to the target domain.\n */\n sources: NonEmptyArray<string>;\n /**\n * The target CloudFront domain of the deployment.\n */\n target: string;\n}\n\nexport type IResolvedDomains = IResolvedDomain[];\n\nexport interface IBlueGreenStackOutput extends IStackOutput {\n distributionDomain: string;\n distributionUrl: string;\n /**\n * TODO fix later\n */\n // @ts-expect-error\n environments?: IResolvedDomains;\n domains?: string[];\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import zod from "zod";
|
|
2
|
+
import { createZodError } from "@webiny/utils/createZodError.js";
|
|
3
|
+
const schema = zod.array(zod.object({
|
|
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
|
+
}, {
|
|
11
|
+
message: "Names must be unique."
|
|
12
|
+
}).refine(items => {
|
|
13
|
+
const checks = new Set(items.map(item => {
|
|
14
|
+
return `${item.env}#${item.variant || "not-set"}`;
|
|
15
|
+
}));
|
|
16
|
+
return checks.size === items.length;
|
|
17
|
+
}, {
|
|
18
|
+
message: "Environment / variant combinations must be unique."
|
|
19
|
+
});
|
|
20
|
+
export const validateDeployments = deployments => {
|
|
21
|
+
const result = schema.safeParse(deployments);
|
|
22
|
+
if (result.error) {
|
|
23
|
+
throw createZodError(result.error);
|
|
24
|
+
}
|
|
25
|
+
return result.data.map(item => {
|
|
26
|
+
return {
|
|
27
|
+
...item,
|
|
28
|
+
variant: item.variant
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=validateDeployments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["zod","createZodError","schema","array","object","name","string","env","variant","optional","min","max","refine","items","check","Set","map","i","size","length","message","checks","item","validateDeployments","deployments","result","safeParse","error","data"],"sources":["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"],"mappings":"AAAA,OAAOA,GAAG,MAAM,KAAK;AACrB,SAASC,cAAc,QAAQ,iCAAiC;AAGhE,MAAMC,MAAM,GAAGF,GAAG,CACbG,KAAK,CACFH,GAAG,CAACI,MAAM,CAAC;EACPC,IAAI,EAAEL,GAAG,CAACM,MAAM,CAAC,CAAC;EAClBC,GAAG,EAAEP,GAAG,CAACM,MAAM,CAAC,CAAC;EACjBE,OAAO,EAAER,GAAG,CAACM,MAAM,CAAC,CAAC,CAACG,QAAQ,CAAC;AACnC,CAAC,CACL,CAAC,CACAC,GAAG,CAAC,CAAC,CAAC,CACNC,GAAG,CAAC,CAAC,CAAC,CACNC,MAAM,CACHC,KAAK,IAAI;EACL,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAACF,KAAK,CAACG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACZ,IAAI,CAAC,CAAC;EAC7C,OAAOS,KAAK,CAACI,IAAI,KAAKL,KAAK,CAACM,MAAM;AACtC,CAAC,EACD;EACIC,OAAO,EAAE;AACb,CACJ,CAAC,CACAR,MAAM,CACHC,KAAK,IAAI;EACL,MAAMQ,MAAM,GAAG,IAAIN,GAAG,CAClBF,KAAK,CAACG,GAAG,CAACM,IAAI,IAAI;IACd,OAAO,GAAGA,IAAI,CAACf,GAAG,IAAIe,IAAI,CAACd,OAAO,IAAI,SAAS,EAAE;EACrD,CAAC,CACL,CAAC;EACD,OAAOa,MAAM,CAACH,IAAI,KAAKL,KAAK,CAACM,MAAM;AACvC,CAAC,EACD;EACIC,OAAO,EAAE;AACb,CACJ,CAAC;AAEL,OAAO,MAAMG,mBAAmB,GAAIC,WAAoB,IAA6B;EACjF,MAAMC,MAAM,GAAGvB,MAAM,CAACwB,SAAS,CAACF,WAAW,CAAC;EAC5C,IAAIC,MAAM,CAACE,KAAK,EAAE;IACd,MAAM1B,cAAc,CAACwB,MAAM,CAACE,KAAK,CAAC;EACtC;EACA,OAAOF,MAAM,CAACG,IAAI,CAACZ,GAAG,CAACM,IAAI,IAAI;IAC3B,OAAO;MACH,GAAGA,IAAI;MACPd,OAAO,EAAEc,IAAI,CAACd;IAClB,CAAC;EACL,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type PulumiAppModule } from "@webiny/pulumi";
|
|
2
|
+
export type CoreOutput = PulumiAppModule<typeof CoreOutput>;
|
|
3
|
+
export interface ICoreOutput {
|
|
4
|
+
deploymentId: string;
|
|
5
|
+
region: string;
|
|
6
|
+
dynamoDbTable: string;
|
|
7
|
+
iotAuthorizerName: string;
|
|
8
|
+
cognitoUserPoolArn: string;
|
|
9
|
+
cognitoAppClientId: string;
|
|
10
|
+
cognitoUserPoolId: string;
|
|
11
|
+
cognitoUserPoolPasswordPolicy: string;
|
|
12
|
+
fileManagerBucketId: string;
|
|
13
|
+
fileManagerBucketArn: string;
|
|
14
|
+
primaryDynamodbTableArn: string;
|
|
15
|
+
primaryDynamodbTableName: string;
|
|
16
|
+
primaryDynamodbTableHashKey: string;
|
|
17
|
+
primaryDynamodbTableRangeKey: string;
|
|
18
|
+
logDynamodbTableArn: string;
|
|
19
|
+
logDynamodbTableName: string;
|
|
20
|
+
logDynamodbTableHashKey: string;
|
|
21
|
+
logDynamodbTableRangeKey: string;
|
|
22
|
+
auditLogsDynamodbTableArn: string;
|
|
23
|
+
auditLogsDynamodbTableName: string;
|
|
24
|
+
auditLogsDynamodbTableHashKey: string;
|
|
25
|
+
auditLogsDynamodbTableRangeKey: string;
|
|
26
|
+
eventBusName: string;
|
|
27
|
+
eventBusArn: string;
|
|
28
|
+
vpcPublicSubnetIds: string[] | undefined;
|
|
29
|
+
vpcPrivateSubnetIds: string[] | undefined;
|
|
30
|
+
vpcSecurityGroupIds: string[] | undefined;
|
|
31
|
+
opensearchDomainArn: string | undefined;
|
|
32
|
+
opensearchDomainEndpoint: string | undefined;
|
|
33
|
+
opensearchDynamodbTableHashKey: string;
|
|
34
|
+
opensearchDynamodbTableRangeKey: string;
|
|
35
|
+
opensearchDynamodbTableArn: string | undefined;
|
|
36
|
+
opensearchDynamodbTableName: string | undefined;
|
|
37
|
+
}
|
|
38
|
+
export declare const CoreOutput: import("@webiny/pulumi").PulumiAppModuleDefinition<import("@pulumi/pulumi").Output<import("@pulumi/pulumi").UnwrappedObject<ICoreOutput>>, void>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { createAppModule } from "@webiny/pulumi";
|
|
2
|
+
import { ProjectSdk } from "@webiny/project";
|
|
3
|
+
export 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) {
|
|
10
|
+
throw new Error("Core application is not deployed.");
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
fileManagerBucketId: output["fileManagerBucketId"],
|
|
14
|
+
primaryDynamodbTableArn: output["primaryDynamodbTableArn"],
|
|
15
|
+
primaryDynamodbTableName: output["primaryDynamodbTableName"],
|
|
16
|
+
primaryDynamodbTableHashKey: output["primaryDynamodbTableHashKey"],
|
|
17
|
+
primaryDynamodbTableRangeKey: output["primaryDynamodbTableRangeKey"],
|
|
18
|
+
logDynamodbTableArn: output["logDynamodbTableArn"],
|
|
19
|
+
logDynamodbTableName: output["logDynamodbTableName"],
|
|
20
|
+
logDynamodbTableHashKey: output["logDynamodbTableHashKey"],
|
|
21
|
+
logDynamodbTableRangeKey: output["logDynamodbTableRangeKey"],
|
|
22
|
+
auditLogsDynamodbTableArn: output["auditLogsDynamodbTableArn"],
|
|
23
|
+
auditLogsDynamodbTableName: output["auditLogsDynamodbTableName"],
|
|
24
|
+
auditLogsDynamodbTableHashKey: output["auditLogsDynamodbTableHashKey"],
|
|
25
|
+
auditLogsDynamodbTableRangeKey: output["auditLogsDynamodbTableRangeKey"],
|
|
26
|
+
cognitoUserPoolId: output["cognitoUserPoolId"],
|
|
27
|
+
cognitoUserPoolArn: output["cognitoUserPoolArn"],
|
|
28
|
+
cognitoUserPoolPasswordPolicy: output["cognitoUserPoolPasswordPolicy"],
|
|
29
|
+
cognitoAppClientId: output["cognitoAppClientId"],
|
|
30
|
+
eventBusName: output["eventBusName"],
|
|
31
|
+
eventBusArn: output["eventBusArn"],
|
|
32
|
+
// These outputs are optional, since VPC is not always enabled.
|
|
33
|
+
vpcPublicSubnetIds: output["vpcPublicSubnetIds"],
|
|
34
|
+
vpcPrivateSubnetIds: output["vpcPrivateSubnetIds"],
|
|
35
|
+
vpcSecurityGroupIds: output["vpcSecurityGroupIds"],
|
|
36
|
+
// These outputs are optional, since Opensearch is not always enabled.
|
|
37
|
+
opensearchDomainArn: output["opensearchDomainArn"],
|
|
38
|
+
opensearchDomainEndpoint: output["opensearchDomainEndpoint"],
|
|
39
|
+
opensearchDynamodbTableArn: output["opensearchDynamodbTableArn"],
|
|
40
|
+
opensearchDynamodbTableName: output["opensearchDynamodbTableName"]
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=CoreOutput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAppModule","ProjectSdk","CoreOutput","name","config","app","addHandler","sdk","init","output","getAppStackOutput","Error","fileManagerBucketId","primaryDynamodbTableArn","primaryDynamodbTableName","primaryDynamodbTableHashKey","primaryDynamodbTableRangeKey","logDynamodbTableArn","logDynamodbTableName","logDynamodbTableHashKey","logDynamodbTableRangeKey","auditLogsDynamodbTableArn","auditLogsDynamodbTableName","auditLogsDynamodbTableHashKey","auditLogsDynamodbTableRangeKey","cognitoUserPoolId","cognitoUserPoolArn","cognitoUserPoolPasswordPolicy","cognitoAppClientId","eventBusName","eventBusArn","vpcPublicSubnetIds","vpcPrivateSubnetIds","vpcSecurityGroupIds","opensearchDomainArn","opensearchDomainEndpoint","opensearchDynamodbTableArn","opensearchDynamodbTableName"],"sources":["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 logDynamodbTableArn: string;\n logDynamodbTableName: string;\n logDynamodbTableHashKey: string;\n logDynamodbTableRangeKey: 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 logDynamodbTableArn: output[\"logDynamodbTableArn\"],\n logDynamodbTableName: output[\"logDynamodbTableName\"],\n logDynamodbTableHashKey: output[\"logDynamodbTableHashKey\"],\n logDynamodbTableRangeKey: output[\"logDynamodbTableRangeKey\"],\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"],"mappings":"AAAA,SAASA,eAAe,QAA8B,gBAAgB;AACtE,SAASC,UAAU,QAAQ,iBAAiB;AAwC5C,OAAO,MAAMC,UAAU,GAAGF,eAAe,CAAC;EACtCG,IAAI,EAAE,YAAY;EAClBC,MAAMA,CAACC,GAAG,EAAE;IACR,OAAOA,GAAG,CAACC,UAAU,CAAC,YAAY;MAC9B,MAAMC,GAAG,GAAG,MAAMN,UAAU,CAACO,IAAI,CAAC,CAAC;MAEnC,MAAMC,MAAM,GAAG,MAAMF,GAAG,CAACG,iBAAiB,CAAC,MAAM,CAAC;MAClD,IAAI,CAACD,MAAM,EAAE;QACT,MAAM,IAAIE,KAAK,CAAC,mCAAmC,CAAC;MACxD;MAEA,OAAO;QACHC,mBAAmB,EAAEH,MAAM,CAAC,qBAAqB,CAAC;QAClDI,uBAAuB,EAAEJ,MAAM,CAAC,yBAAyB,CAAC;QAC1DK,wBAAwB,EAAEL,MAAM,CAAC,0BAA0B,CAAC;QAC5DM,2BAA2B,EAAEN,MAAM,CAAC,6BAA6B,CAAC;QAClEO,4BAA4B,EAAEP,MAAM,CAAC,8BAA8B,CAAC;QACpEQ,mBAAmB,EAAER,MAAM,CAAC,qBAAqB,CAAC;QAClDS,oBAAoB,EAAET,MAAM,CAAC,sBAAsB,CAAC;QACpDU,uBAAuB,EAAEV,MAAM,CAAC,yBAAyB,CAAC;QAC1DW,wBAAwB,EAAEX,MAAM,CAAC,0BAA0B,CAAC;QAC5DY,yBAAyB,EAAEZ,MAAM,CAAC,2BAA2B,CAAC;QAC9Da,0BAA0B,EAAEb,MAAM,CAAC,4BAA4B,CAAC;QAChEc,6BAA6B,EAAEd,MAAM,CAAC,+BAA+B,CAAC;QACtEe,8BAA8B,EAAEf,MAAM,CAAC,gCAAgC,CAAC;QACxEgB,iBAAiB,EAAEhB,MAAM,CAAC,mBAAmB,CAAC;QAC9CiB,kBAAkB,EAAEjB,MAAM,CAAC,oBAAoB,CAAC;QAChDkB,6BAA6B,EAAElB,MAAM,CAAC,+BAA+B,CAAC;QACtEmB,kBAAkB,EAAEnB,MAAM,CAAC,oBAAoB,CAAC;QAChDoB,YAAY,EAAEpB,MAAM,CAAC,cAAc,CAAC;QACpCqB,WAAW,EAAErB,MAAM,CAAC,aAAa,CAAC;QAClC;QACAsB,kBAAkB,EAAEtB,MAAM,CAAC,oBAAoB,CAAC;QAChDuB,mBAAmB,EAAEvB,MAAM,CAAC,qBAAqB,CAAC;QAClDwB,mBAAmB,EAAExB,MAAM,CAAC,qBAAqB,CAAC;QAClD;QACAyB,mBAAmB,EAAEzB,MAAM,CAAC,qBAAqB,CAAC;QAClD0B,wBAAwB,EAAE1B,MAAM,CAAC,0BAA0B,CAAC;QAC5D2B,0BAA0B,EAAE3B,MAAM,CAAC,4BAA4B,CAAC;QAChE4B,2BAA2B,EAAE5B,MAAM,CAAC,6BAA6B;MACrE,CAAC;IACL,CAAC,CAAC;EACN;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as aws from "@pulumi/aws";
|
|
2
|
+
export interface VpcParams {
|
|
3
|
+
enabled: boolean | undefined;
|
|
4
|
+
}
|
|
5
|
+
export declare const VpcConfig: import("@webiny/pulumi").PulumiAppModuleDefinition<import("@pulumi/pulumi").Output<{
|
|
6
|
+
functionVpcConfig: aws.types.input.lambda.FunctionVpcConfig;
|
|
7
|
+
enabled: boolean;
|
|
8
|
+
}>, VpcParams>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createAppModule } from "@webiny/pulumi";
|
|
2
|
+
import { CoreOutput } from "./CoreOutput.js";
|
|
3
|
+
export const VpcConfig = createAppModule({
|
|
4
|
+
name: "VpcConfig",
|
|
5
|
+
config(app, params) {
|
|
6
|
+
return app.getModule(CoreOutput).apply(core => {
|
|
7
|
+
const functionVpcConfig = {
|
|
8
|
+
subnetIds: [],
|
|
9
|
+
securityGroupIds: []
|
|
10
|
+
};
|
|
11
|
+
const enabled = Boolean(params.enabled);
|
|
12
|
+
if (enabled) {
|
|
13
|
+
// If VPC is not manually disabled we extract details from core.
|
|
14
|
+
functionVpcConfig.subnetIds = core.vpcPrivateSubnetIds || [];
|
|
15
|
+
functionVpcConfig.securityGroupIds = core.vpcSecurityGroupIds || [];
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
functionVpcConfig,
|
|
19
|
+
enabled
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=VpcConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAppModule","CoreOutput","VpcConfig","name","config","app","params","getModule","apply","core","functionVpcConfig","subnetIds","securityGroupIds","enabled","Boolean","vpcPrivateSubnetIds","vpcSecurityGroupIds"],"sources":["VpcConfig.ts"],"sourcesContent":["import type * as aws from \"@pulumi/aws\";\nimport { createAppModule } from \"@webiny/pulumi\";\nimport { CoreOutput } from \"./CoreOutput.js\";\n\nexport interface VpcParams {\n enabled: boolean | undefined;\n}\n\nexport const VpcConfig = createAppModule({\n name: \"VpcConfig\",\n config(app, params: VpcParams) {\n return app.getModule(CoreOutput).apply(core => {\n const functionVpcConfig: aws.types.input.lambda.FunctionVpcConfig = {\n subnetIds: [],\n securityGroupIds: []\n };\n\n const enabled = Boolean(params.enabled);\n\n if (enabled) {\n // If VPC is not manually disabled we extract details from core.\n functionVpcConfig.subnetIds = core.vpcPrivateSubnetIds || [];\n functionVpcConfig.securityGroupIds = core.vpcSecurityGroupIds || [];\n }\n\n return {\n functionVpcConfig,\n enabled\n };\n });\n }\n});\n"],"mappings":"AACA,SAASA,eAAe,QAAQ,gBAAgB;AAChD,SAASC,UAAU;AAMnB,OAAO,MAAMC,SAAS,GAAGF,eAAe,CAAC;EACrCG,IAAI,EAAE,WAAW;EACjBC,MAAMA,CAACC,GAAG,EAAEC,MAAiB,EAAE;IAC3B,OAAOD,GAAG,CAACE,SAAS,CAACN,UAAU,CAAC,CAACO,KAAK,CAACC,IAAI,IAAI;MAC3C,MAAMC,iBAA2D,GAAG;QAChEC,SAAS,EAAE,EAAE;QACbC,gBAAgB,EAAE;MACtB,CAAC;MAED,MAAMC,OAAO,GAAGC,OAAO,CAACR,MAAM,CAACO,OAAO,CAAC;MAEvC,IAAIA,OAAO,EAAE;QACT;QACAH,iBAAiB,CAACC,SAAS,GAAGF,IAAI,CAACM,mBAAmB,IAAI,EAAE;QAC5DL,iBAAiB,CAACE,gBAAgB,GAAGH,IAAI,CAACO,mBAAmB,IAAI,EAAE;MACvE;MAEA,OAAO;QACHN,iBAAiB;QACjBG;MACJ,CAAC;IACL,CAAC,CAAC;EACN;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./CoreOutput.js\";\nexport * from \"./VpcConfig.js\";\n"],"mappings":"AAAA;AACA","ignoreList":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PulumiAppModule } from "@webiny/pulumi";
|
|
2
|
+
export type CoreAuditLogsDynamo = PulumiAppModule<typeof CoreAuditLogsDynamo>;
|
|
3
|
+
export declare const CoreAuditLogsDynamo: import("@webiny/pulumi").PulumiAppModuleDefinition<import("@webiny/pulumi").PulumiAppResource<typeof import("@pulumi/aws/dynamodb/table").Table>, {
|
|
4
|
+
protect: boolean;
|
|
5
|
+
}>;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import * as aws from "@pulumi/aws";
|
|
2
|
+
import { createAppModule } from "@webiny/pulumi";
|
|
3
|
+
export const CoreAuditLogsDynamo = createAppModule({
|
|
4
|
+
name: "AuditLogsDynamoDb",
|
|
5
|
+
config(app, params) {
|
|
6
|
+
return app.addResource(aws.dynamodb.Table, {
|
|
7
|
+
name: "webiny-audit-logs",
|
|
8
|
+
config: {
|
|
9
|
+
attributes: [{
|
|
10
|
+
name: "PK",
|
|
11
|
+
type: "S"
|
|
12
|
+
}, {
|
|
13
|
+
name: "SK",
|
|
14
|
+
type: "S"
|
|
15
|
+
}, {
|
|
16
|
+
name: "GSI_TENANT",
|
|
17
|
+
type: "S"
|
|
18
|
+
}, {
|
|
19
|
+
name: "GSI1_PK",
|
|
20
|
+
type: "S"
|
|
21
|
+
}, {
|
|
22
|
+
name: "GSI1_SK",
|
|
23
|
+
type: "N"
|
|
24
|
+
}, {
|
|
25
|
+
name: "GSI2_PK",
|
|
26
|
+
type: "S"
|
|
27
|
+
}, {
|
|
28
|
+
name: "GSI2_SK",
|
|
29
|
+
type: "N"
|
|
30
|
+
}, {
|
|
31
|
+
name: "GSI3_PK",
|
|
32
|
+
type: "S"
|
|
33
|
+
}, {
|
|
34
|
+
name: "GSI3_SK",
|
|
35
|
+
type: "N"
|
|
36
|
+
}, {
|
|
37
|
+
name: "GSI4_PK",
|
|
38
|
+
type: "S"
|
|
39
|
+
}, {
|
|
40
|
+
name: "GSI4_SK",
|
|
41
|
+
type: "N"
|
|
42
|
+
}, {
|
|
43
|
+
name: "GSI5_PK",
|
|
44
|
+
type: "S"
|
|
45
|
+
}, {
|
|
46
|
+
name: "GSI5_SK",
|
|
47
|
+
type: "N"
|
|
48
|
+
}, {
|
|
49
|
+
name: "GSI6_PK",
|
|
50
|
+
type: "S"
|
|
51
|
+
}, {
|
|
52
|
+
name: "GSI6_SK",
|
|
53
|
+
type: "N"
|
|
54
|
+
}, {
|
|
55
|
+
name: "GSI7_PK",
|
|
56
|
+
type: "S"
|
|
57
|
+
}, {
|
|
58
|
+
name: "GSI7_SK",
|
|
59
|
+
type: "N"
|
|
60
|
+
}, {
|
|
61
|
+
name: "GSI8_PK",
|
|
62
|
+
type: "S"
|
|
63
|
+
}, {
|
|
64
|
+
name: "GSI8_SK",
|
|
65
|
+
type: "N"
|
|
66
|
+
}, {
|
|
67
|
+
name: "GSI9_PK",
|
|
68
|
+
type: "S"
|
|
69
|
+
}, {
|
|
70
|
+
name: "GSI9_SK",
|
|
71
|
+
type: "N"
|
|
72
|
+
}],
|
|
73
|
+
billingMode: "PAY_PER_REQUEST",
|
|
74
|
+
hashKey: "PK",
|
|
75
|
+
rangeKey: "SK",
|
|
76
|
+
globalSecondaryIndexes: [{
|
|
77
|
+
name: "GSI_TENANT",
|
|
78
|
+
hashKey: "GSI_TENANT",
|
|
79
|
+
projectionType: "KEYS_ONLY"
|
|
80
|
+
}, {
|
|
81
|
+
name: "GSI1",
|
|
82
|
+
hashKey: "GSI1_PK",
|
|
83
|
+
rangeKey: "GSI1_SK",
|
|
84
|
+
projectionType: "KEYS_ONLY"
|
|
85
|
+
}, {
|
|
86
|
+
name: "GSI2",
|
|
87
|
+
hashKey: "GSI2_PK",
|
|
88
|
+
rangeKey: "GSI2_SK",
|
|
89
|
+
projectionType: "KEYS_ONLY"
|
|
90
|
+
}, {
|
|
91
|
+
name: "GSI3",
|
|
92
|
+
hashKey: "GSI3_PK",
|
|
93
|
+
rangeKey: "GSI3_SK",
|
|
94
|
+
projectionType: "KEYS_ONLY"
|
|
95
|
+
}, {
|
|
96
|
+
name: "GSI4",
|
|
97
|
+
hashKey: "GSI4_PK",
|
|
98
|
+
rangeKey: "GSI4_SK",
|
|
99
|
+
projectionType: "KEYS_ONLY"
|
|
100
|
+
}, {
|
|
101
|
+
name: "GSI5",
|
|
102
|
+
hashKey: "GSI5_PK",
|
|
103
|
+
rangeKey: "GSI5_SK",
|
|
104
|
+
projectionType: "KEYS_ONLY"
|
|
105
|
+
}, {
|
|
106
|
+
name: "GSI6",
|
|
107
|
+
hashKey: "GSI6_PK",
|
|
108
|
+
rangeKey: "GSI6_SK",
|
|
109
|
+
projectionType: "KEYS_ONLY"
|
|
110
|
+
}, {
|
|
111
|
+
name: "GSI7",
|
|
112
|
+
hashKey: "GSI7_PK",
|
|
113
|
+
rangeKey: "GSI7_SK",
|
|
114
|
+
projectionType: "KEYS_ONLY"
|
|
115
|
+
}, {
|
|
116
|
+
name: "GSI8",
|
|
117
|
+
hashKey: "GSI8_PK",
|
|
118
|
+
rangeKey: "GSI8_SK",
|
|
119
|
+
projectionType: "KEYS_ONLY"
|
|
120
|
+
}, {
|
|
121
|
+
name: "GSI9",
|
|
122
|
+
hashKey: "GSI9_PK",
|
|
123
|
+
rangeKey: "GSI9_SK",
|
|
124
|
+
projectionType: "KEYS_ONLY"
|
|
125
|
+
}],
|
|
126
|
+
ttl: {
|
|
127
|
+
attributeName: "expiresAt",
|
|
128
|
+
enabled: true
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
opts: {
|
|
132
|
+
protect: params.protect
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
//# sourceMappingURL=CoreAuditLogsDynamo.js.map
|