@webiny/project-aws 0.0.0-unstable.3c5210ad37
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 +43 -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/ApiLambdaFunction/package.json +9 -0
- package/_templates/extensions/ApiLambdaFunction/tsconfig.json +7 -0
- package/_templates/extensions/ApiLambdaFunction/webiny.config.ts +8 -0
- package/_templates/extensions/OpenSearch/api/graphql/src/index.ts +90 -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 +15 -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 +5 -0
- package/exports/extensions.js +7 -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/exports/infra/index.d.ts +1 -0
- package/exports/infra/index.js +3 -0
- package/exports/infra/index.js.map +1 -0
- package/extensions/ApiLambdaFunction.d.ts +11 -0
- package/extensions/ApiLambdaFunction.js +68 -0
- package/extensions/ApiLambdaFunction.js.map +1 -0
- package/extensions/AwsDefaultRegion.d.ts +8 -0
- package/extensions/AwsDefaultRegion.js +22 -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 +35 -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 +9 -0
- package/extensions/ProjectAws/definitions.js.map +1 -0
- package/extensions/ProjectAws.d.ts +2 -0
- package/extensions/ProjectAws.js +52 -0
- package/extensions/ProjectAws.js.map +1 -0
- package/extensions/definitions.d.ts +3 -0
- package/extensions/definitions.js +6 -0
- package/extensions/definitions.js.map +1 -0
- package/extensions/index.d.ts +5 -0
- package/extensions/index.js +7 -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 +6 -0
- package/index.js +8 -0
- package/index.js.map +1 -0
- package/infra.d.ts +425 -0
- package/infra.js +54 -0
- package/infra.js.map +1 -0
- package/package.json +60 -0
- package/project.d.ts +139 -0
- package/project.js +10 -0
- package/project.js.map +1 -0
- package/pulumi/apps/admin/createAdminPulumiApp.d.ts +12 -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 +281 -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 +186 -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 +74 -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 +11 -0
- package/pulumi/apps/core/CoreFileManager.js +72 -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 +122 -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 +295 -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 +17 -0
- package/pulumi/apps/createAppBucket.js +152 -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 +32 -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/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,17 @@
|
|
|
1
|
+
import { ApiAfterDeploy } from "@webiny/project/abstractions/index.js";
|
|
2
|
+
import { UiService } from "@webiny/project/abstractions/services/UiService.js";
|
|
3
|
+
import { LoggerService } from "@webiny/project/abstractions/services/LoggerService.js";
|
|
4
|
+
import { GetProjectConfigService } from "@webiny/project/abstractions";
|
|
5
|
+
import { ApiGqlClient } from "../../../abstractions/ApiGqlClient.js";
|
|
6
|
+
declare class AutoInstallAfterApiDeployImpl implements ApiAfterDeploy.Interface {
|
|
7
|
+
private apiGqlClient;
|
|
8
|
+
private ui;
|
|
9
|
+
private getProjectConfig;
|
|
10
|
+
private logger;
|
|
11
|
+
constructor(apiGqlClient: ApiGqlClient.Interface, ui: UiService.Interface, getProjectConfig: GetProjectConfigService.Interface, logger: LoggerService.Interface);
|
|
12
|
+
execute(params: ApiAfterDeploy.Params): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export declare const AutoInstallAfterApiDeploy: typeof AutoInstallAfterApiDeployImpl & {
|
|
15
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/project/abstractions/index.js").IApiAfterDeploy>;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { ApiAfterDeploy } from "@webiny/project/abstractions/index.js";
|
|
2
|
+
import { UiService } from "@webiny/project/abstractions/services/UiService.js";
|
|
3
|
+
import { LoggerService } from "@webiny/project/abstractions/services/LoggerService.js";
|
|
4
|
+
import { GetProjectConfigService } from "@webiny/project/abstractions";
|
|
5
|
+
import { ApiGqlClient } from "../../../abstractions/ApiGqlClient.js";
|
|
6
|
+
const IS_INSTALLED_QUERY = `
|
|
7
|
+
query IsSystemInstalled {
|
|
8
|
+
system {
|
|
9
|
+
isSystemInstalled {
|
|
10
|
+
data
|
|
11
|
+
error {
|
|
12
|
+
message
|
|
13
|
+
code
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`;
|
|
19
|
+
const INSTALL_MUTATION = `
|
|
20
|
+
mutation InstallSystem($installationInput: JSON!) {
|
|
21
|
+
system {
|
|
22
|
+
installSystem(installationInput: $installationInput) {
|
|
23
|
+
data
|
|
24
|
+
error {
|
|
25
|
+
message
|
|
26
|
+
code
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
`;
|
|
32
|
+
class AutoInstallAfterApiDeployImpl {
|
|
33
|
+
constructor(apiGqlClient, ui, getProjectConfig, logger) {
|
|
34
|
+
this.apiGqlClient = apiGqlClient;
|
|
35
|
+
this.ui = ui;
|
|
36
|
+
this.getProjectConfig = getProjectConfig;
|
|
37
|
+
this.logger = logger;
|
|
38
|
+
}
|
|
39
|
+
async execute(params) {
|
|
40
|
+
if (params.preview) {
|
|
41
|
+
// Skip auto-install on preview deployments
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const projectConfig = await this.getProjectConfig.execute();
|
|
45
|
+
const adminAutoInstallExtensions = projectConfig.extensionsByType("Project/AutoInstall");
|
|
46
|
+
if (adminAutoInstallExtensions.length === 0) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const config = adminAutoInstallExtensions[0].params;
|
|
50
|
+
|
|
51
|
+
// Check if system is already installed
|
|
52
|
+
this.ui.info("Checking if system is already installed...");
|
|
53
|
+
try {
|
|
54
|
+
const isInstalledResponse = await this.apiGqlClient.query({
|
|
55
|
+
query: IS_INSTALLED_QUERY
|
|
56
|
+
});
|
|
57
|
+
if (isInstalledResponse.data?.system.isSystemInstalled.data === true) {
|
|
58
|
+
this.ui.info("System is already installed, skipping auto-install.");
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
} catch (error) {
|
|
62
|
+
this.logger.error("Failed to check installation status", {
|
|
63
|
+
error
|
|
64
|
+
});
|
|
65
|
+
this.ui.warning(`Could not check installation status: ${error.message}`);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
this.ui.info("Auto-installing...");
|
|
69
|
+
const adminUser = config.adminUser || {
|
|
70
|
+
firstName: "John",
|
|
71
|
+
lastName: "Smith",
|
|
72
|
+
email: "admin@webiny.com",
|
|
73
|
+
password: "12345678"
|
|
74
|
+
};
|
|
75
|
+
const variables = {
|
|
76
|
+
installationInput: [{
|
|
77
|
+
app: "Cognito",
|
|
78
|
+
data: adminUser
|
|
79
|
+
}]
|
|
80
|
+
};
|
|
81
|
+
const installResponse = await this.apiGqlClient.mutation({
|
|
82
|
+
mutation: INSTALL_MUTATION,
|
|
83
|
+
variables
|
|
84
|
+
});
|
|
85
|
+
if (installResponse.data?.system.installSystem.error) {
|
|
86
|
+
const {
|
|
87
|
+
message,
|
|
88
|
+
code
|
|
89
|
+
} = installResponse.data.system.installSystem.error;
|
|
90
|
+
this.logger.error("Installation failed", {
|
|
91
|
+
message,
|
|
92
|
+
code
|
|
93
|
+
});
|
|
94
|
+
this.ui.error(`Installation failed: ${message} (${code})`);
|
|
95
|
+
throw new Error(message);
|
|
96
|
+
}
|
|
97
|
+
this.ui.success("System installed successfully!");
|
|
98
|
+
this.ui.info("Admin credentials:");
|
|
99
|
+
this.ui.info(` Email: ${adminUser.email}`);
|
|
100
|
+
this.ui.info(` Password: ${adminUser.password}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export const AutoInstallAfterApiDeploy = ApiAfterDeploy.createImplementation({
|
|
104
|
+
implementation: AutoInstallAfterApiDeployImpl,
|
|
105
|
+
dependencies: [ApiGqlClient, UiService, GetProjectConfigService, LoggerService]
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
//# sourceMappingURL=AutoInstallAfterApiDeploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ApiAfterDeploy","UiService","LoggerService","GetProjectConfigService","ApiGqlClient","IS_INSTALLED_QUERY","INSTALL_MUTATION","AutoInstallAfterApiDeployImpl","constructor","apiGqlClient","ui","getProjectConfig","logger","execute","params","preview","projectConfig","adminAutoInstallExtensions","extensionsByType","length","config","info","isInstalledResponse","query","data","system","isSystemInstalled","error","warning","message","adminUser","firstName","lastName","email","password","variables","installationInput","app","installResponse","mutation","installSystem","code","Error","success","AutoInstallAfterApiDeploy","createImplementation","implementation","dependencies"],"sources":["AutoInstallAfterApiDeploy.ts"],"sourcesContent":["import { ApiAfterDeploy } from \"@webiny/project/abstractions/index.js\";\nimport { UiService } from \"@webiny/project/abstractions/services/UiService.js\";\nimport { LoggerService } from \"@webiny/project/abstractions/services/LoggerService.js\";\nimport { GetProjectConfigService } from \"@webiny/project/abstractions\";\nimport { ApiGqlClient } from \"~/abstractions/ApiGqlClient.js\";\n\nconst IS_INSTALLED_QUERY = `\n query IsSystemInstalled {\n system {\n isSystemInstalled {\n data\n error {\n message\n code\n }\n }\n }\n }\n`;\n\nconst INSTALL_MUTATION = `\n mutation InstallSystem($installationInput: JSON!) {\n system {\n installSystem(installationInput: $installationInput) {\n data\n error {\n message\n code\n }\n }\n }\n }\n`;\n\ninterface IsInstalledResponse {\n system: {\n isSystemInstalled: {\n data: boolean;\n error?: {\n message: string;\n code: string;\n };\n };\n };\n}\n\ninterface InstallResponse {\n system: {\n installSystem: {\n data: boolean;\n error?: {\n message: string;\n code: string;\n };\n };\n };\n}\n\nclass AutoInstallAfterApiDeployImpl implements ApiAfterDeploy.Interface {\n constructor(\n private apiGqlClient: ApiGqlClient.Interface,\n private ui: UiService.Interface,\n private getProjectConfig: GetProjectConfigService.Interface,\n private logger: LoggerService.Interface\n ) {}\n\n async execute(params: ApiAfterDeploy.Params): Promise<void> {\n if (params.preview) {\n // Skip auto-install on preview deployments\n return;\n }\n\n const projectConfig = await this.getProjectConfig.execute();\n const adminAutoInstallExtensions = projectConfig.extensionsByType(\"Project/AutoInstall\");\n\n if (adminAutoInstallExtensions.length === 0) {\n return;\n }\n\n const config = adminAutoInstallExtensions[0].params;\n\n // Check if system is already installed\n this.ui.info(\"Checking if system is already installed...\");\n\n try {\n const isInstalledResponse = await this.apiGqlClient.query<IsInstalledResponse>({\n query: IS_INSTALLED_QUERY\n });\n\n if (isInstalledResponse.data?.system.isSystemInstalled.data === true) {\n this.ui.info(\"System is already installed, skipping auto-install.\");\n return;\n }\n } catch (error: any) {\n this.logger.error(\"Failed to check installation status\", { error });\n this.ui.warning(`Could not check installation status: ${error.message}`);\n return;\n }\n\n this.ui.info(\"Auto-installing...\");\n\n const adminUser = config.adminUser || {\n firstName: \"John\",\n lastName: \"Smith\",\n email: \"admin@webiny.com\",\n password: \"12345678\"\n };\n\n const variables = {\n installationInput: [\n {\n app: \"Cognito\",\n data: adminUser\n }\n ]\n };\n\n const installResponse = await this.apiGqlClient.mutation<InstallResponse>({\n mutation: INSTALL_MUTATION,\n variables\n });\n\n if (installResponse.data?.system.installSystem.error) {\n const { message, code } = installResponse.data.system.installSystem.error;\n this.logger.error(\"Installation failed\", { message, code });\n this.ui.error(`Installation failed: ${message} (${code})`);\n throw new Error(message);\n }\n\n this.ui.success(\"System installed successfully!\");\n this.ui.info(\"Admin credentials:\");\n this.ui.info(` Email: ${adminUser.email}`);\n this.ui.info(` Password: ${adminUser.password}`);\n }\n}\n\nexport const AutoInstallAfterApiDeploy = ApiAfterDeploy.createImplementation({\n implementation: AutoInstallAfterApiDeployImpl,\n dependencies: [ApiGqlClient, UiService, GetProjectConfigService, LoggerService]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const AutoInstall: import("@webiny/project/defineExtension/defineExtension").ExtensionComponent<z.ZodObject<{
|
|
3
|
+
adminUser: z.ZodObject<{
|
|
4
|
+
firstName: z.ZodString;
|
|
5
|
+
lastName: z.ZodString;
|
|
6
|
+
email: z.ZodString;
|
|
7
|
+
password: z.ZodString;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
firstName: string;
|
|
10
|
+
lastName: string;
|
|
11
|
+
email: string;
|
|
12
|
+
password: string;
|
|
13
|
+
}, {
|
|
14
|
+
firstName: string;
|
|
15
|
+
lastName: string;
|
|
16
|
+
email: string;
|
|
17
|
+
password: string;
|
|
18
|
+
}>;
|
|
19
|
+
}, "strip", z.ZodTypeAny, {
|
|
20
|
+
adminUser: {
|
|
21
|
+
firstName: string;
|
|
22
|
+
lastName: string;
|
|
23
|
+
email: string;
|
|
24
|
+
password: string;
|
|
25
|
+
};
|
|
26
|
+
}, {
|
|
27
|
+
adminUser: {
|
|
28
|
+
firstName: string;
|
|
29
|
+
lastName: string;
|
|
30
|
+
email: string;
|
|
31
|
+
password: string;
|
|
32
|
+
};
|
|
33
|
+
}>>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { defineExtension } from "@webiny/project/defineExtension/index.js";
|
|
3
|
+
export const AutoInstall = defineExtension({
|
|
4
|
+
type: "Project/AutoInstall",
|
|
5
|
+
tags: {
|
|
6
|
+
runtimeContext: "project"
|
|
7
|
+
},
|
|
8
|
+
description: "Auto-install Webiny with admin user credentials on first deploy.",
|
|
9
|
+
paramsSchema: z.object({
|
|
10
|
+
adminUser: z.object({
|
|
11
|
+
firstName: z.string().describe("Admin user first name"),
|
|
12
|
+
lastName: z.string().describe("Admin user last name"),
|
|
13
|
+
email: z.string().email().describe("Admin user email"),
|
|
14
|
+
password: z.string().min(8).describe("Admin user password (minimum 8 characters)")
|
|
15
|
+
}).describe("Admin user credentials for installation")
|
|
16
|
+
})
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=AutoInstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["z","defineExtension","AutoInstall","type","tags","runtimeContext","description","paramsSchema","object","adminUser","firstName","string","describe","lastName","email","password","min"],"sources":["AutoInstall.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { defineExtension } from \"@webiny/project/defineExtension/index.js\";\n\nexport const AutoInstall = defineExtension({\n type: \"Project/AutoInstall\",\n tags: { runtimeContext: \"project\" },\n description: \"Auto-install Webiny with admin user credentials on first deploy.\",\n paramsSchema: z.object({\n adminUser: z\n .object({\n firstName: z.string().describe(\"Admin user first name\"),\n lastName: z.string().describe(\"Admin user last name\"),\n email: z.string().email().describe(\"Admin user email\"),\n password: z.string().min(8).describe(\"Admin user password (minimum 8 characters)\")\n })\n .describe(\"Admin user credentials for installation\")\n })\n});\n"],"mappings":"AAAA,SAASA,CAAC,QAAQ,KAAK;AACvB,SAASC,eAAe,QAAQ,0CAA0C;AAE1E,OAAO,MAAMC,WAAW,GAAGD,eAAe,CAAC;EACvCE,IAAI,EAAE,qBAAqB;EAC3BC,IAAI,EAAE;IAAEC,cAAc,EAAE;EAAU,CAAC;EACnCC,WAAW,EAAE,kEAAkE;EAC/EC,YAAY,EAAEP,CAAC,CAACQ,MAAM,CAAC;IACnBC,SAAS,EAAET,CAAC,CACPQ,MAAM,CAAC;MACJE,SAAS,EAAEV,CAAC,CAACW,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,uBAAuB,CAAC;MACvDC,QAAQ,EAAEb,CAAC,CAACW,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,sBAAsB,CAAC;MACrDE,KAAK,EAAEd,CAAC,CAACW,MAAM,CAAC,CAAC,CAACG,KAAK,CAAC,CAAC,CAACF,QAAQ,CAAC,kBAAkB,CAAC;MACtDG,QAAQ,EAAEf,CAAC,CAACW,MAAM,CAAC,CAAC,CAACK,GAAG,CAAC,CAAC,CAAC,CAACJ,QAAQ,CAAC,4CAA4C;IACrF,CAAC,CAAC,CACDA,QAAQ,CAAC,yCAAyC;EAC3D,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BeforeDeploy, ProjectSdkParamsService } from "@webiny/project/abstractions/index.js";
|
|
2
|
+
declare class PrintDeploymentInfoAfterDeployImpl implements BeforeDeploy.Interface {
|
|
3
|
+
private projectSdkParamsService;
|
|
4
|
+
constructor(projectSdkParamsService: ProjectSdkParamsService.Interface);
|
|
5
|
+
execute(params: BeforeDeploy.Params): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export declare const EnsureVariantBeforeDeploy: typeof PrintDeploymentInfoAfterDeployImpl & {
|
|
8
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/project/abstractions/index.js").IBeforeDeploy>;
|
|
9
|
+
};
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BeforeDeploy, ProjectSdkParamsService } from "@webiny/project/abstractions/index.js";
|
|
2
|
+
class PrintDeploymentInfoAfterDeployImpl {
|
|
3
|
+
constructor(projectSdkParamsService) {
|
|
4
|
+
this.projectSdkParamsService = projectSdkParamsService;
|
|
5
|
+
}
|
|
6
|
+
async execute(params) {
|
|
7
|
+
if (params.app !== "blueGreen") {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const sdkParams = this.projectSdkParamsService.get();
|
|
11
|
+
const {
|
|
12
|
+
env,
|
|
13
|
+
variant
|
|
14
|
+
} = sdkParams;
|
|
15
|
+
if (!variant?.length) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const message = `Cannot deploy Blue / Green system environment (${env}) with a variant (${variant}).`;
|
|
19
|
+
throw new Error(message);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export const EnsureVariantBeforeDeploy = BeforeDeploy.createImplementation({
|
|
23
|
+
implementation: PrintDeploymentInfoAfterDeployImpl,
|
|
24
|
+
dependencies: [ProjectSdkParamsService]
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=EnsureVariantBeforeDeploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BeforeDeploy","ProjectSdkParamsService","PrintDeploymentInfoAfterDeployImpl","constructor","projectSdkParamsService","execute","params","app","sdkParams","get","env","variant","length","message","Error","EnsureVariantBeforeDeploy","createImplementation","implementation","dependencies"],"sources":["EnsureVariantBeforeDeploy.ts"],"sourcesContent":["import { BeforeDeploy, ProjectSdkParamsService } from \"@webiny/project/abstractions/index.js\";\n\nclass PrintDeploymentInfoAfterDeployImpl implements BeforeDeploy.Interface {\n constructor(private projectSdkParamsService: ProjectSdkParamsService.Interface) {}\n\n async execute(params: BeforeDeploy.Params) {\n if (params.app !== \"blueGreen\") {\n return;\n }\n\n const sdkParams = this.projectSdkParamsService.get();\n const { env, variant } = sdkParams;\n\n if (!variant?.length) {\n return;\n }\n const message = `Cannot deploy Blue / Green system environment (${env}) with a variant (${variant}).`;\n throw new Error(message);\n }\n}\n\nexport const EnsureVariantBeforeDeploy = BeforeDeploy.createImplementation({\n implementation: PrintDeploymentInfoAfterDeployImpl,\n dependencies: [ProjectSdkParamsService]\n});\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,uBAAuB,QAAQ,uCAAuC;AAE7F,MAAMC,kCAAkC,CAAmC;EACvEC,WAAWA,CAASC,uBAA0D,EAAE;IAAA,KAA5DA,uBAA0D,GAA1DA,uBAA0D;EAAG;EAEjF,MAAMC,OAAOA,CAACC,MAA2B,EAAE;IACvC,IAAIA,MAAM,CAACC,GAAG,KAAK,WAAW,EAAE;MAC5B;IACJ;IAEA,MAAMC,SAAS,GAAG,IAAI,CAACJ,uBAAuB,CAACK,GAAG,CAAC,CAAC;IACpD,MAAM;MAAEC,GAAG;MAAEC;IAAQ,CAAC,GAAGH,SAAS;IAElC,IAAI,CAACG,OAAO,EAAEC,MAAM,EAAE;MAClB;IACJ;IACA,MAAMC,OAAO,GAAG,kDAAkDH,GAAG,qBAAqBC,OAAO,IAAI;IACrG,MAAM,IAAIG,KAAK,CAACD,OAAO,CAAC;EAC5B;AACJ;AAEA,OAAO,MAAME,yBAAyB,GAAGf,YAAY,CAACgB,oBAAoB,CAAC;EACvEC,cAAc,EAAEf,kCAAkC;EAClDgB,YAAY,EAAE,CAACjB,uBAAuB;AAC1C,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AfterDeploy, GetAppStackOutput, ProjectSdkParamsService, UiService } from "@webiny/project/abstractions/index.js";
|
|
2
|
+
export interface IEnvironment {
|
|
3
|
+
name: string;
|
|
4
|
+
env: string;
|
|
5
|
+
variant: string | undefined;
|
|
6
|
+
domains: {
|
|
7
|
+
[key: string]: string;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
declare class PrintDeploymentInfoAfterDeployImpl implements AfterDeploy.Interface {
|
|
11
|
+
private ui;
|
|
12
|
+
private getAppStackOutput;
|
|
13
|
+
private projectSdkParamsService;
|
|
14
|
+
constructor(ui: UiService.Interface, getAppStackOutput: GetAppStackOutput.Interface, projectSdkParamsService: ProjectSdkParamsService.Interface);
|
|
15
|
+
execute(params: AfterDeploy.Params): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
export declare const PrintDeploymentInfoAfterDeploy: typeof PrintDeploymentInfoAfterDeployImpl & {
|
|
18
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/project/abstractions/index.js").IAfterDeploy>;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { AfterDeploy, GetAppStackOutput, ProjectSdkParamsService, UiService } from "@webiny/project/abstractions/index.js";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
class PrintDeploymentInfoAfterDeployImpl {
|
|
4
|
+
constructor(ui, getAppStackOutput, projectSdkParamsService) {
|
|
5
|
+
this.ui = ui;
|
|
6
|
+
this.getAppStackOutput = getAppStackOutput;
|
|
7
|
+
this.projectSdkParamsService = projectSdkParamsService;
|
|
8
|
+
}
|
|
9
|
+
async execute(params) {
|
|
10
|
+
if (params.app !== "blueGreen") {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const {
|
|
14
|
+
blue,
|
|
15
|
+
green
|
|
16
|
+
} = chalk;
|
|
17
|
+
const bg = await this.getAppStackOutput.execute("blueGreen");
|
|
18
|
+
if (!bg) {
|
|
19
|
+
this.ui.info("Blue / Green deployment info could not be printed because the Blue / Green app is not deployed.");
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const sdkParams = this.projectSdkParamsService.get();
|
|
23
|
+
const domains = Array.isArray(bg.domains) ? bg.domains : [];
|
|
24
|
+
const environments = (bg.environments || []).reduce((items, item) => {
|
|
25
|
+
const index = items.findIndex(i => i.name === item.name);
|
|
26
|
+
if (index >= 0) {
|
|
27
|
+
items[index].domains[item.type] = item.target;
|
|
28
|
+
return items;
|
|
29
|
+
}
|
|
30
|
+
items.push({
|
|
31
|
+
name: item.name,
|
|
32
|
+
env: item.env,
|
|
33
|
+
variant: item.variant,
|
|
34
|
+
domains: {
|
|
35
|
+
[item.type]: item.target
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return items;
|
|
39
|
+
}, []);
|
|
40
|
+
const output = ["", green(`Blue / Green Router`), `‣ Environment name: ${blue(sdkParams.env)}`, `‣ CloudFront domain: ${bg.distributionDomain}`, `‣ CloudFront URL: ${bg.distributionUrl}`, "", `‣ Domains attached: `, ...domains.map(domain => ` - https://${domain}`), "", `‣ Environments: `, ...environments.map(item => {
|
|
41
|
+
const envVariant = `env: ${item.env}${item.variant ? ` / variant: ${item.variant}` : ""}`;
|
|
42
|
+
return [` - ${blue(item.name)} (${envVariant})`, ...Object.keys(item.domains).map(type => {
|
|
43
|
+
return ` - ${type}: https://${item.domains[type]}`;
|
|
44
|
+
})].join("\n");
|
|
45
|
+
}), ""];
|
|
46
|
+
console.log(output.join("\n"));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export const PrintDeploymentInfoAfterDeploy = AfterDeploy.createImplementation({
|
|
50
|
+
implementation: PrintDeploymentInfoAfterDeployImpl,
|
|
51
|
+
dependencies: [UiService, GetAppStackOutput, ProjectSdkParamsService]
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=PrintDeploymentInfoAfterDeploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AfterDeploy","GetAppStackOutput","ProjectSdkParamsService","UiService","chalk","PrintDeploymentInfoAfterDeployImpl","constructor","ui","getAppStackOutput","projectSdkParamsService","execute","params","app","blue","green","bg","info","sdkParams","get","domains","Array","isArray","environments","reduce","items","item","index","findIndex","i","name","type","target","push","env","variant","output","distributionDomain","distributionUrl","map","domain","envVariant","Object","keys","join","console","log","PrintDeploymentInfoAfterDeploy","createImplementation","implementation","dependencies"],"sources":["PrintDeploymentInfoAfterDeploy.ts"],"sourcesContent":["import {\n AfterDeploy,\n GetAppStackOutput,\n ProjectSdkParamsService,\n UiService\n} from \"@webiny/project/abstractions/index.js\";\nimport { IBlueGreenStackOutput } from \"~/pulumi/apps/blueGreen/types.js\";\nimport chalk from \"chalk\";\n\nexport interface IEnvironment {\n name: string;\n env: string;\n variant: string | undefined;\n domains: {\n [key: string]: string;\n };\n}\n\nclass PrintDeploymentInfoAfterDeployImpl implements AfterDeploy.Interface {\n constructor(\n private ui: UiService.Interface,\n private getAppStackOutput: GetAppStackOutput.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute(params: AfterDeploy.Params) {\n if (params.app !== \"blueGreen\") {\n return;\n }\n\n const { blue, green } = chalk;\n\n const bg = await this.getAppStackOutput.execute<IBlueGreenStackOutput>(\"blueGreen\");\n\n if (!bg) {\n this.ui.info(\n \"Blue / Green deployment info could not be printed because the Blue / Green app is not deployed.\"\n );\n return;\n }\n\n const sdkParams = this.projectSdkParamsService.get();\n\n const domains = Array.isArray(bg.domains) ? bg.domains : [];\n\n const environments = (bg.environments || []).reduce<IEnvironment[]>((items, item) => {\n const index = items.findIndex(i => i.name === item.name);\n if (index >= 0) {\n items[index].domains[item.type] = item.target;\n\n return items;\n }\n\n items.push({\n name: item.name,\n env: item.env,\n variant: item.variant,\n domains: {\n [item.type]: item.target\n }\n });\n\n return items;\n }, []);\n\n const output = [\n \"\",\n green(`Blue / Green Router`),\n `‣ Environment name: ${blue(sdkParams.env)}`,\n `‣ CloudFront domain: ${bg.distributionDomain}`,\n `‣ CloudFront URL: ${bg.distributionUrl}`,\n \"\",\n `‣ Domains attached: `,\n ...domains.map(domain => ` - https://${domain}`),\n \"\",\n `‣ Environments: `,\n ...environments.map(item => {\n const envVariant = `env: ${item.env}${\n item.variant ? ` / variant: ${item.variant}` : \"\"\n }`;\n return [\n ` - ${blue(item.name)} (${envVariant})`,\n ...Object.keys(item.domains).map(type => {\n return ` - ${type}: https://${item.domains[type]}`;\n })\n ].join(\"\\n\");\n }),\n \"\"\n ];\n console.log(output.join(\"\\n\"));\n }\n}\n\nexport const PrintDeploymentInfoAfterDeploy = AfterDeploy.createImplementation({\n implementation: PrintDeploymentInfoAfterDeployImpl,\n dependencies: [UiService, GetAppStackOutput, ProjectSdkParamsService]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CliCommandFactory, GetProjectSdkService } from "@webiny/cli-core/abstractions/index.js";
|
|
2
|
+
export interface ISetPrimaryVariantCommandParams {
|
|
3
|
+
env: string;
|
|
4
|
+
confirm?: boolean;
|
|
5
|
+
primary: string;
|
|
6
|
+
secondary: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Command to set a primary variant does not require a region because it is already contained inside the stack output.
|
|
10
|
+
*/
|
|
11
|
+
export declare class SetPrimaryVariantCommandImpl implements CliCommandFactory.Interface<ISetPrimaryVariantCommandParams> {
|
|
12
|
+
private getProjectSdkService;
|
|
13
|
+
constructor(getProjectSdkService: GetProjectSdkService.Interface);
|
|
14
|
+
execute(): Promise<CliCommandFactory.CommandDefinition<ISetPrimaryVariantCommandParams>>;
|
|
15
|
+
}
|
|
16
|
+
export declare const SetPrimaryVariantCliCommand: typeof SetPrimaryVariantCommandImpl & {
|
|
17
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/cli-core/abstractions/features/CliCommand").ICliCommand<any>>;
|
|
18
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { CliCommandFactory, GetProjectSdkService } from "@webiny/cli-core/abstractions/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Command to set a primary variant does not require a region because it is already contained inside the stack output.
|
|
4
|
+
*/
|
|
5
|
+
export class SetPrimaryVariantCommandImpl {
|
|
6
|
+
constructor(getProjectSdkService) {
|
|
7
|
+
this.getProjectSdkService = getProjectSdkService;
|
|
8
|
+
}
|
|
9
|
+
async execute() {
|
|
10
|
+
const projectSdk = await this.getProjectSdkService.execute();
|
|
11
|
+
return {
|
|
12
|
+
name: "set-variant",
|
|
13
|
+
description: "Set a deployed system as primary variant.",
|
|
14
|
+
examples: ["$0 set-variant --env=dev --primary=blue --secondary=green", "$0 set-variant --env=dev --primary=green --secondary=green"],
|
|
15
|
+
options: [{
|
|
16
|
+
name: "env",
|
|
17
|
+
description: "Environment name (dev, prod, etc.)",
|
|
18
|
+
type: "string"
|
|
19
|
+
}, {
|
|
20
|
+
name: "confirm",
|
|
21
|
+
description: "Confirm deployment",
|
|
22
|
+
type: "boolean",
|
|
23
|
+
required: false
|
|
24
|
+
}, {
|
|
25
|
+
name: "primary",
|
|
26
|
+
description: "Primary variant",
|
|
27
|
+
type: "string",
|
|
28
|
+
required: true,
|
|
29
|
+
validation: params => {
|
|
30
|
+
const isValid = projectSdk.isValidVariantName(params.primary);
|
|
31
|
+
if (isValid.isErr()) {
|
|
32
|
+
throw isValid.error;
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
}, {
|
|
37
|
+
name: "secondary",
|
|
38
|
+
description: "Secondary variant",
|
|
39
|
+
type: "string",
|
|
40
|
+
required: true,
|
|
41
|
+
validation: params => {
|
|
42
|
+
const isValid = projectSdk.isValidVariantName(params.secondary);
|
|
43
|
+
if (isValid.isErr()) {
|
|
44
|
+
throw isValid.error;
|
|
45
|
+
}
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
}],
|
|
49
|
+
handler: async () => {
|
|
50
|
+
// TODO: Finish this.
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export const SetPrimaryVariantCliCommand = CliCommandFactory.createImplementation({
|
|
56
|
+
implementation: SetPrimaryVariantCommandImpl,
|
|
57
|
+
dependencies: [GetProjectSdkService]
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=SetPrimaryVariantCliCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CliCommandFactory","GetProjectSdkService","SetPrimaryVariantCommandImpl","constructor","getProjectSdkService","execute","projectSdk","name","description","examples","options","type","required","validation","params","isValid","isValidVariantName","primary","isErr","error","secondary","handler","SetPrimaryVariantCliCommand","createImplementation","implementation","dependencies"],"sources":["SetPrimaryVariantCliCommand.ts"],"sourcesContent":["import { CliCommandFactory, GetProjectSdkService } from \"@webiny/cli-core/abstractions/index.js\";\n\nexport interface ISetPrimaryVariantCommandParams {\n env: string;\n confirm?: boolean;\n primary: string;\n secondary: string;\n}\n\n/**\n * Command to set a primary variant does not require a region because it is already contained inside the stack output.\n */\nexport class SetPrimaryVariantCommandImpl\n implements CliCommandFactory.Interface<ISetPrimaryVariantCommandParams>\n{\n constructor(private getProjectSdkService: GetProjectSdkService.Interface) {}\n\n async execute(): Promise<CliCommandFactory.CommandDefinition<ISetPrimaryVariantCommandParams>> {\n const projectSdk = await this.getProjectSdkService.execute();\n\n return {\n name: \"set-variant\",\n description: \"Set a deployed system as primary variant.\",\n examples: [\n \"$0 set-variant --env=dev --primary=blue --secondary=green\",\n \"$0 set-variant --env=dev --primary=green --secondary=green\"\n ],\n options: [\n {\n name: \"env\",\n description: \"Environment name (dev, prod, etc.)\",\n type: \"string\"\n },\n {\n name: \"confirm\",\n description: \"Confirm deployment\",\n type: \"boolean\",\n required: false\n },\n {\n name: \"primary\",\n description: \"Primary variant\",\n type: \"string\",\n required: true,\n validation: params => {\n const isValid = projectSdk.isValidVariantName(params.primary);\n if (isValid.isErr()) {\n throw isValid.error;\n }\n return true;\n }\n },\n {\n name: \"secondary\",\n description: \"Secondary variant\",\n type: \"string\",\n required: true,\n validation: params => {\n const isValid = projectSdk.isValidVariantName(params.secondary);\n if (isValid.isErr()) {\n throw isValid.error;\n }\n return true;\n }\n }\n ],\n handler: async () => {\n // TODO: Finish this.\n }\n };\n }\n}\n\nexport const SetPrimaryVariantCliCommand = CliCommandFactory.createImplementation({\n implementation: SetPrimaryVariantCommandImpl,\n dependencies: [GetProjectSdkService]\n});\n"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,oBAAoB,QAAQ,wCAAwC;AAShG;AACA;AACA;AACA,OAAO,MAAMC,4BAA4B,CAEzC;EACIC,WAAWA,CAASC,oBAAoD,EAAE;IAAA,KAAtDA,oBAAoD,GAApDA,oBAAoD;EAAG;EAE3E,MAAMC,OAAOA,CAAA,EAAkF;IAC3F,MAAMC,UAAU,GAAG,MAAM,IAAI,CAACF,oBAAoB,CAACC,OAAO,CAAC,CAAC;IAE5D,OAAO;MACHE,IAAI,EAAE,aAAa;MACnBC,WAAW,EAAE,2CAA2C;MACxDC,QAAQ,EAAE,CACN,2DAA2D,EAC3D,4DAA4D,CAC/D;MACDC,OAAO,EAAE,CACL;QACIH,IAAI,EAAE,KAAK;QACXC,WAAW,EAAE,oCAAoC;QACjDG,IAAI,EAAE;MACV,CAAC,EACD;QACIJ,IAAI,EAAE,SAAS;QACfC,WAAW,EAAE,oBAAoB;QACjCG,IAAI,EAAE,SAAS;QACfC,QAAQ,EAAE;MACd,CAAC,EACD;QACIL,IAAI,EAAE,SAAS;QACfC,WAAW,EAAE,iBAAiB;QAC9BG,IAAI,EAAE,QAAQ;QACdC,QAAQ,EAAE,IAAI;QACdC,UAAU,EAAEC,MAAM,IAAI;UAClB,MAAMC,OAAO,GAAGT,UAAU,CAACU,kBAAkB,CAACF,MAAM,CAACG,OAAO,CAAC;UAC7D,IAAIF,OAAO,CAACG,KAAK,CAAC,CAAC,EAAE;YACjB,MAAMH,OAAO,CAACI,KAAK;UACvB;UACA,OAAO,IAAI;QACf;MACJ,CAAC,EACD;QACIZ,IAAI,EAAE,WAAW;QACjBC,WAAW,EAAE,mBAAmB;QAChCG,IAAI,EAAE,QAAQ;QACdC,QAAQ,EAAE,IAAI;QACdC,UAAU,EAAEC,MAAM,IAAI;UAClB,MAAMC,OAAO,GAAGT,UAAU,CAACU,kBAAkB,CAACF,MAAM,CAACM,SAAS,CAAC;UAC/D,IAAIL,OAAO,CAACG,KAAK,CAAC,CAAC,EAAE;YACjB,MAAMH,OAAO,CAACI,KAAK;UACvB;UACA,OAAO,IAAI;QACf;MACJ,CAAC,CACJ;MACDE,OAAO,EAAE,MAAAA,CAAA,KAAY;QACjB;MAAA;IAER,CAAC;EACL;AACJ;AAEA,OAAO,MAAMC,2BAA2B,GAAGtB,iBAAiB,CAACuB,oBAAoB,CAAC;EAC9EC,cAAc,EAAEtB,4BAA4B;EAC5CuB,YAAY,EAAE,CAACxB,oBAAoB;AACvC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BuildAppWorkspaceService, GetApp, LoggerService } from "@webiny/project/abstractions/index.js";
|
|
2
|
+
declare class BuildAppWorkspaceImpl implements BuildAppWorkspaceService.Interface {
|
|
3
|
+
private getApp;
|
|
4
|
+
private logger;
|
|
5
|
+
private decoratee;
|
|
6
|
+
constructor(getApp: GetApp.Interface, logger: LoggerService.Interface, decoratee: BuildAppWorkspaceService.Interface);
|
|
7
|
+
execute(appName: GetApp.AppName, options?: BuildAppWorkspaceService.Options): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export declare const BuildAppWorkspace: typeof BuildAppWorkspaceImpl & {
|
|
10
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/project/abstractions/services/BuildAppWorkspaceService").IBuildAppWorkspaceService>;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import { replaceInPath } from "replace-in-path";
|
|
4
|
+
import { BuildAppWorkspaceService, GetApp, LoggerService } from "@webiny/project/abstractions/index.js";
|
|
5
|
+
import { getTemplatesFolderPath } from "../../utils/index.js";
|
|
6
|
+
const wait = () => new Promise(resolve => setTimeout(resolve, 10));
|
|
7
|
+
class BuildAppWorkspaceImpl {
|
|
8
|
+
constructor(getApp, logger, decoratee) {
|
|
9
|
+
this.getApp = getApp;
|
|
10
|
+
this.logger = logger;
|
|
11
|
+
this.decoratee = decoratee;
|
|
12
|
+
}
|
|
13
|
+
async execute(appName, options = {}) {
|
|
14
|
+
await this.decoratee.execute(appName, options);
|
|
15
|
+
const app = this.getApp.execute(appName);
|
|
16
|
+
if (app.paths.workspaceFolder.existsSync()) {
|
|
17
|
+
if (options.forceRebuild !== true) {
|
|
18
|
+
this.logger.debug({
|
|
19
|
+
appName
|
|
20
|
+
}, "App workspace already exists, skipping rebuild (project-aws).");
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
this.logger.info({
|
|
25
|
+
appName,
|
|
26
|
+
options
|
|
27
|
+
}, "Building app workspace (project-aws)...");
|
|
28
|
+
const templatesFolderPath = getTemplatesFolderPath();
|
|
29
|
+
const appWorkspaceFolderPath = app.paths.workspaceFolder.toString();
|
|
30
|
+
const appTemplateFolderPath = path.join(templatesFolderPath, "appTemplates", app.name);
|
|
31
|
+
|
|
32
|
+
// Create app.
|
|
33
|
+
fs.cpSync(appTemplateFolderPath, appWorkspaceFolderPath, {
|
|
34
|
+
recursive: true
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
// Copy `public` folder into `admin` app workspace folder.
|
|
38
|
+
if (appName === "admin") {
|
|
39
|
+
const publicFolder = path.join(process.cwd(), "public");
|
|
40
|
+
fs.cpSync(publicFolder, path.join(appWorkspaceFolderPath, "public"), {
|
|
41
|
+
recursive: true
|
|
42
|
+
});
|
|
43
|
+
await wait();
|
|
44
|
+
const indexTsx = app.paths.workspaceFolder.join("src", "index.tsx").toString();
|
|
45
|
+
const globalCssPath = path.join(publicFolder, "global.css");
|
|
46
|
+
let globalCss = "";
|
|
47
|
+
if (fs.existsSync(globalCssPath)) {
|
|
48
|
+
const relativePath = path.relative(path.dirname(indexTsx), globalCssPath);
|
|
49
|
+
globalCss = `import "${relativePath}";`;
|
|
50
|
+
} else {
|
|
51
|
+
console.log("globalCssPath does not exist");
|
|
52
|
+
}
|
|
53
|
+
replaceInPath(indexTsx, {
|
|
54
|
+
find: "{GLOBAL_CSS}",
|
|
55
|
+
replaceWith: globalCss
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
this.logger.info("App workspace built successfully (project-aws).");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export const BuildAppWorkspace = BuildAppWorkspaceService.createDecorator({
|
|
62
|
+
decorator: BuildAppWorkspaceImpl,
|
|
63
|
+
dependencies: [GetApp, LoggerService]
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=BuildAppWorkspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["path","fs","replaceInPath","BuildAppWorkspaceService","GetApp","LoggerService","getTemplatesFolderPath","wait","Promise","resolve","setTimeout","BuildAppWorkspaceImpl","constructor","getApp","logger","decoratee","execute","appName","options","app","paths","workspaceFolder","existsSync","forceRebuild","debug","info","templatesFolderPath","appWorkspaceFolderPath","toString","appTemplateFolderPath","join","name","cpSync","recursive","publicFolder","process","cwd","indexTsx","globalCssPath","globalCss","relativePath","relative","dirname","console","log","find","replaceWith","BuildAppWorkspace","createDecorator","decorator","dependencies"],"sources":["BuildAppWorkspace.ts"],"sourcesContent":["import path from \"path\";\nimport fs from \"fs\";\nimport { replaceInPath } from \"replace-in-path\";\nimport {\n BuildAppWorkspaceService,\n GetApp,\n LoggerService\n} from \"@webiny/project/abstractions/index.js\";\nimport { getTemplatesFolderPath } from \"~/utils/index.js\";\n\nconst wait = () => new Promise(resolve => setTimeout(resolve, 10));\n\nclass BuildAppWorkspaceImpl implements BuildAppWorkspaceService.Interface {\n constructor(\n private getApp: GetApp.Interface,\n private logger: LoggerService.Interface,\n private decoratee: BuildAppWorkspaceService.Interface\n ) {}\n\n async execute(appName: GetApp.AppName, options: BuildAppWorkspaceService.Options = {}) {\n await this.decoratee.execute(appName, options);\n\n const app = this.getApp.execute(appName);\n\n if (app.paths.workspaceFolder.existsSync()) {\n if (options.forceRebuild !== true) {\n this.logger.debug(\n { appName },\n \"App workspace already exists, skipping rebuild (project-aws).\"\n );\n return;\n }\n }\n\n this.logger.info({ appName, options }, \"Building app workspace (project-aws)...\");\n\n const templatesFolderPath = getTemplatesFolderPath();\n const appWorkspaceFolderPath = app.paths.workspaceFolder.toString();\n const appTemplateFolderPath = path.join(templatesFolderPath, \"appTemplates\", app.name);\n\n // Create app.\n fs.cpSync(appTemplateFolderPath, appWorkspaceFolderPath, { recursive: true });\n\n // Copy `public` folder into `admin` app workspace folder.\n if (appName === \"admin\") {\n const publicFolder = path.join(process.cwd(), \"public\");\n fs.cpSync(publicFolder, path.join(appWorkspaceFolderPath, \"public\"), {\n recursive: true\n });\n\n await wait();\n\n const indexTsx = app.paths.workspaceFolder.join(\"src\", \"index.tsx\").toString();\n const globalCssPath = path.join(publicFolder, \"global.css\");\n\n let globalCss = \"\";\n\n if (fs.existsSync(globalCssPath)) {\n const relativePath = path.relative(path.dirname(indexTsx), globalCssPath);\n globalCss = `import \"${relativePath}\";`;\n } else {\n console.log(\"globalCssPath does not exist\");\n }\n\n replaceInPath(indexTsx, {\n find: \"{GLOBAL_CSS}\",\n replaceWith: globalCss\n });\n }\n\n this.logger.info(\"App workspace built successfully (project-aws).\");\n }\n}\n\nexport const BuildAppWorkspace = BuildAppWorkspaceService.createDecorator({\n decorator: BuildAppWorkspaceImpl,\n dependencies: [GetApp, LoggerService]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CoreStackOutputService } from "../../services/CoreStackOutputService.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CoreStackOutputService"],"sources":["CoreStackOutputService.ts"],"sourcesContent":["export { CoreStackOutputService } from \"../../services/CoreStackOutputService.js\";\n"],"mappings":"AAAA,SAASA,sBAAsB","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ApiAfterDeploy, GetProject, UiService } from "@webiny/project/abstractions/index.js";
|
|
2
|
+
import { ApiStackOutputService } from "../../abstractions/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* On every deployment of the API project application, this plugin invokes the data migrations Lambda.
|
|
5
|
+
*/
|
|
6
|
+
declare class ExecuteDataMigrationsImpl implements ApiAfterDeploy.Interface {
|
|
7
|
+
private ui;
|
|
8
|
+
private apiStackOutputService;
|
|
9
|
+
private getProject;
|
|
10
|
+
constructor(ui: UiService.Interface, apiStackOutputService: ApiStackOutputService.Interface, getProject: GetProject.Interface);
|
|
11
|
+
execute(params: ApiAfterDeploy.Params): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export declare const ExecuteDataMigrations: typeof ExecuteDataMigrationsImpl & {
|
|
14
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/project/abstractions/index.js").IApiAfterDeploy>;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { LambdaClient } from "@webiny/aws-sdk/client-lambda/index.js";
|
|
2
|
+
import { CliMigrationRunReporter, InteractiveCliStatusReporter, LogReporter, MigrationRunner, NonInteractiveCliStatusReporter, VoidStatusReporter } from "@webiny/data-migration/cli/index.js";
|
|
3
|
+
import { ApiAfterDeploy, GetProject, UiService } from "@webiny/project/abstractions/index.js";
|
|
4
|
+
import { ApiStackOutputService } from "../../abstractions/index.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* On every deployment of the API project application, this plugin invokes the data migrations Lambda.
|
|
8
|
+
*/
|
|
9
|
+
class ExecuteDataMigrationsImpl {
|
|
10
|
+
constructor(ui, apiStackOutputService, getProject) {
|
|
11
|
+
this.ui = ui;
|
|
12
|
+
this.apiStackOutputService = apiStackOutputService;
|
|
13
|
+
this.getProject = getProject;
|
|
14
|
+
}
|
|
15
|
+
async execute(params) {
|
|
16
|
+
// No need to run migrations if we're doing a preview.
|
|
17
|
+
if (params.preview) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const apiOutput = await this.apiStackOutputService.execute();
|
|
21
|
+
if (!apiOutput) {
|
|
22
|
+
// This should never happen, but just in case...
|
|
23
|
+
throw new Error("Could not retrieve the API stack output while trying to run data migrations.");
|
|
24
|
+
}
|
|
25
|
+
const ui = this.ui;
|
|
26
|
+
ui.info("Executing data migrations AWS Lambda function...");
|
|
27
|
+
const logStreamingEnabled = process.env.WEBINY_MIGRATION_LOG_STREAMING !== "false";
|
|
28
|
+
if (!logStreamingEnabled) {
|
|
29
|
+
ui.warning(["Data migration log streaming is disabled.", "Note that the logs will still be accessible in Amazon CloudWatch.", "Learn more: https://webiny.link/cloudwatch"].join(" "));
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const lambdaClient = new LambdaClient({
|
|
33
|
+
region: apiOutput.region
|
|
34
|
+
});
|
|
35
|
+
const functionName = apiOutput["migrationLambdaArn"];
|
|
36
|
+
const logReporter = new LogReporter(functionName);
|
|
37
|
+
let statusReporter = new VoidStatusReporter();
|
|
38
|
+
if (params.dataMigrationLogStreaming) {
|
|
39
|
+
const useNonInteractiveReporter = !process.stdout.isTTY || "CI" in process.env;
|
|
40
|
+
statusReporter = useNonInteractiveReporter ? new NonInteractiveCliStatusReporter(logReporter) : new InteractiveCliStatusReporter(logReporter);
|
|
41
|
+
}
|
|
42
|
+
const runner = MigrationRunner.create({
|
|
43
|
+
lambdaClient,
|
|
44
|
+
functionName,
|
|
45
|
+
statusReporter
|
|
46
|
+
});
|
|
47
|
+
const project = this.getProject.execute();
|
|
48
|
+
const result = await runner.runMigration({
|
|
49
|
+
version: process.env.WEBINY_VERSION || project.version
|
|
50
|
+
});
|
|
51
|
+
if (result) {
|
|
52
|
+
const reporter = new CliMigrationRunReporter(logReporter, {
|
|
53
|
+
uiService: this.ui
|
|
54
|
+
});
|
|
55
|
+
await reporter.report(result);
|
|
56
|
+
}
|
|
57
|
+
} catch (e) {
|
|
58
|
+
ui.error(`An error occurred while executing data migrations Lambda function!`);
|
|
59
|
+
ui.text(e);
|
|
60
|
+
throw e;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export const ExecuteDataMigrations = ApiAfterDeploy.createImplementation({
|
|
65
|
+
implementation: ExecuteDataMigrationsImpl,
|
|
66
|
+
dependencies: [UiService, ApiStackOutputService, GetProject]
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
//# sourceMappingURL=ExecuteDataMigrations.js.map
|