From f589d5fb3609cc9b6bdb1ea007590717c9833366 Mon Sep 17 00:00:00 2001 From: Javier Toledo Date: Mon, 23 Oct 2023 22:23:39 +0100 Subject: [PATCH] Set AWS package as deprecated --- .github/README_CICD.md | 3 +- CONTRIBUTING.md | 47 +++- README.md | 2 +- common/config/rush/pnpm-lock.yaml | 265 +++++++++--------- packages/cli/src/commands/new/project.ts | 6 +- packages/cli/src/common/provider.ts | 2 +- .../cli/test/commands/new/project.test.ts | 2 +- packages/cli/test/common/provider.test.ts | 2 +- .../test/services/project-initializer.test.ts | 2 +- .../fixtures/cart-demo/package.json | 4 +- .../fixtures/cart-demo/src/config/config.ts | 2 +- .../integration/helper/app-helper.ts | 2 +- .../cli/cli.project.integration.ts | 2 +- .../scheduled-commands.integration.ts | 2 +- .../package.json | 1 + packages/framework-provider-aws/package.json | 1 + .../test/library/partition-keys.test.ts | 2 +- .../framework-provider-local/package.json | 2 +- upgrade-v2.md | 7 + website/docs/01_introduction.md | 2 +- website/docs/02_getting-started/coding.mdx | 2 +- website/docs/06_graphql.md | 1 - website/docs/10_going-deeper/testing.md | 1 + website/docs/12_contributing.md | 47 +++- 24 files changed, 224 insertions(+), 185 deletions(-) create mode 100644 upgrade-v2.md diff --git a/.github/README_CICD.md b/.github/README_CICD.md index 486f7dd1c..4fb9975eb 100644 --- a/.github/README_CICD.md +++ b/.github/README_CICD.md @@ -11,8 +11,7 @@ account that: the user is not confused. - It handles the creation and wiring of many cloud components, which are lots of moving pieces, so everything is double-checked to prevent errors in deployed environments. -- It is a multi-cloud framework, and behavior is double-checked both on AWS and Azure, as they are the officially supported cloud - providers. Ensuring everything runs smoothly, regardless of the choice of the user. +- It is a multi-cloud framework, and behavior is double-checked both on AWS and Azure. Ensuring everything runs smoothly, regardless of the choice of the user. We always keep improving our CI/CD processes, but we always make sure that we have the above covered. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index eaae4e367..59c8c3e25 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -53,7 +53,7 @@ Booster is divided in many different packages. The criteria to split the code in - They must be run separately, for instance, the CLI is run locally, while the support code for the project is run on the cloud. - They contain code that is used by at least two of the other packages. -- They're a vendor-specific specialization of some abstract part of the framework (for instance, all the code that is required by AWS is in separate packages). +- They're a vendor-specific specialization of some abstract part of the framework (for instance, all the code that is required to support Azure is in separate packages). The packages are managed using [rush](https://rushjs.io/) and [npm](https://npmjs.com), if you run `rush build`, it will build all the packages. @@ -62,8 +62,8 @@ The packages are published to `npmjs` under the prefix `@boostercloud/`, their p - `cli` - You guessed it! This package is the `boost` command-line tool, it interacts only with the core package in order to load the project configuration. The specific provider packages to interact with the cloud providers are loaded dynamically from the project config. - `framework-core` - This one contains all the framework runtime vendor-independent logic. Stuff like the generation of the config or the commands and events handling happens here. The specific provider packages to interact with the cloud providers are loaded dynamically from the project config. - `framework-integration-tests` - Implements integration tests for all supported vendors. Tests are run on real infrastructure using the same mechanisms than a production application. This package `src` folder includes a synthetic Booster application that can be deployed to a real provider for testing purposes. -- `framework-provider-aws` - Implements all the required adapters to make the booster core run on top of AWS technologies like Lambda and DynamoDB using the AWS SDK under the hoods. -- `framework-provider-aws-infrastructure` - Implements all the required adapters to allow Booster applications to be deployed to AWS using the AWS CDK under the hoods. +- `framework-provider-aws` (Deprecated) - Implements all the required adapters to make the booster core run on top of AWS technologies like Lambda and DynamoDB using the AWS SDK under the hoods. +- `framework-provider-aws-infrastructure` (Deprecated) - Implements all the required adapters to allow Booster applications to be deployed to AWS using the AWS CDK under the hoods. - `framework-provider-local` - Implements all the required adapters to run the Booster application on a local express server to be able to debug your code before deploying it to a real cloud provider. - `framework-provider-local-infrastructure` - Implements all the required code to run the local development server. - `framework-types` - This package defines types that the rest of the project will use. This is useful for avoiding cyclic dependencies. Note that this package should not contain stuff that are not types, or very simple methods related directly to them, i.e. a getter or setter. This package defines the main booster concepts like: @@ -252,7 +252,7 @@ The Booster Framework project is organized following the ["rush monorepo"](https - The "package.json" files that are on each package root should contain the dependencies used by that specific package. Be sure to correctly differentiate which dependency is only for development and which one is for production. -Finally, **always use exact numbers for dependency versions**. This means that if you want to add the dependency "aws-sdk" in version 1.2.3, you should add `"aws-sdk": "1.2.3"` to the corresponding "package.json" file, and never `"aws-sdk": "^1.2.3"` or `"aws-sdk": "~1.2.3"`. This restriction comes from hard problems we've had in the past. +Finally, **always use exact numbers for dependency versions**. This means that if you want to add the dependency "graphql" in version 1.2.3, you should add `"graphql": "1.2.3"` to the corresponding "package.json" file, and never `"graphql": "^1.2.3"` or `"graphql": "~1.2.3"`. This restriction comes from hard problems we've had in the past. ### Running unit tests @@ -275,15 +275,36 @@ Still, it is recommendable to run them locally before submitting a PR for review These are the available scripts to run integration tests: -- `rushx integration -v`: Run all the integration test suites in the right order. -- `rushx integration/aws-deploy -v`: This test just checks that the sample project in `packages/framework-integration-tests/src` can be successfully deployed to AWS. The deployment process takes several minutes and this project is used by all the other AWS integration tests, so it's a requirement to run this test before. -- `rushx integration/aws-func -v`: AWS functional integration tests. They stress the deployed app write API and checks that the results are the expected ones both in the databases and the read APIs. -- `rushx integration/end-to-end -v`: Runs complete and realistic use cases on several cloud providers. This tests are intended to verify that a single project can be deployed to different cloud providers. Currently, only AWS is implemented though. -- `rushx integration/aws-nuke -v`: This test checks that the application deployed to AWS can be properly nuked. This test should be the last one after other test suites related to AWS have finished. -- `rushx integration/local -v`: Checks that the test application can be launched locally and that the APIs and the databases behave as expected. -- `rushx integration/cli -v`: Checks cli commands and check that they produce the expected results. - -AWS integration tests are run in real AWS resources, so you'll need to have your AWS credentials properly set in your development machine. By default, the sample project will be deployed to your default account. Basically, if you can deploy a Booster project to AWS, you should be good to go ([See more details about setting up an AWS account in the docs](https://github.com/boostercloud/booster/tree/main/docs#set-up-an-aws-account)). Notice that while all resources used by Booster are included in the AWS free tier, running these tests in your own AWS account could incur in some expenses. +1. **General Integration Tests:** + - `rushx integration -v`: Run all integration test scripts. + +2. **CLI Integration Tests:** + - `rushx integration/cli -v`: Tests CLI commands and verifies that they produce the expected results. + +3. **Local Integration Tests:** + - `rushx integration/local -v`: Runs all integration scripts in the local development server. + - `rushx integration/local-ongoing -v`: Runs the start and stop integration tests. + - `rushx integration/local-start -v`: Checks the start functionality of the local environment. + - `rushx integration/local-func -v`: Functional tests for the local environment. + - `rushx integration/local-end-to-end -v`: Runs end-to-end tests in the local environment. + - `rushx integration/local-stop -v`: Checks the stop functionality of the local environment. + +4. **AWS Integration Tests:** + - `rushx integration/aws -v`: Runs all integration test scripts for provider AWS. + - `rushx integration/aws-deploy -v`: Tests the deployment of a sample project to AWS. + - `rushx integration/aws-func -v`: Runs functional tests on AWS, stressing the deployed app's write API and verifying the results in databases and read APIs. + - `rushx integration/aws-end-to-end -v`: Performs end-to-end tests on AWS. + - `rushx integration/aws-load -v`: (Currently skipped) Intended for load tests on AWS. + - `rushx integration/aws-nuke -v`: Verifies that the deployed application on AWS can be properly nuked. + +5. **Azure Integration Tests:** + - `rushx integration/azure -v`: Runs all integration test scripts for provider Azure. + - `rushx integration/azure-deploy -v`: Tests the deployment of a project to Azure. + - `rushx integration/azure-func -v`: Runs functional tests on Azure. + - `rushx integration/azure-end-to-end -v`: Performs end-to-end tests on Azure. + - `rushx integration/azure-nuke -v`: Verifies that the deployed application on Azure can be properly nuked. + +Azure and AWS integration tests run in real environments, so you'll need to have your credentials properly set in your development machine in order to run them. They will deploy a sample project to your default account, run the tests and nuke the application when the process finishes. Notice that running integration tests in your cloud account could incur in some expenses. ### Github flow diff --git a/README.md b/README.md index 19aa4fd30..ae52255fb 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ [Booster Framework](https://boosterframework.com) is a software development framework designed to create event-driven backend microservices that focus on extreme development productivity. It provides a highly opinionated implementation of the CQRS and Event Sourcing patterns in Typescript, using [DDD (Domain-Driven Design)](https://en.wikipedia.org/wiki/Domain-driven_design) semantics that makes business logic fit naturally within the code. Thanks to Booster, business, product, and technical teams can collaborate, sharing a much closer language. -Booster uses advanced static analysis techniques and takes advantage of the Typescript type system to understand the structure and semantics of your code and minimize the amount of glue code. It’s capable not just of building an entirely functioning GraphQL API for you, but also to build an optimal, production-ready and scalable cloud infrastructure for your application in your preferred cloud provider (Azure or AWS). +Booster uses advanced static analysis techniques and takes advantage of the Typescript type system to understand the structure and semantics of your code and minimize the amount of glue code. It’s capable not just of building an entirely functioning GraphQL API for you, but also to build an optimal, production-ready and scalable cloud infrastructure for your application in Azure or AWS. Combining these features, Booster provides an unprecedented developer experience. On the one hand, it helps you write simpler code, defining your application in terms of commands, events, entities, and read models. On the other hand, you don't have to worry about the tremendous amount of low-level configuration details of conventional tools. You write highly semantic code, and if it compiles, you can run it on the cloud at scale. diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 61a621bcf..8b1ff421b 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -8,8 +8,8 @@ importers: ../../packages/application-tester: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/eslint-config': workspace:^1.19.1 - '@boostercloud/framework-types': workspace:^1.19.1 + '@boostercloud/eslint-config': workspace:^1.20.0 + '@boostercloud/framework-types': workspace:^1.20.0 '@effect-ts/core': ^0.60.4 '@types/jsonwebtoken': 9.0.1 '@types/node': ^18.15.3 @@ -70,10 +70,10 @@ importers: ../../packages/cli: specifiers: - '@boostercloud/application-tester': workspace:^1.19.1 - '@boostercloud/eslint-config': workspace:^1.19.1 - '@boostercloud/framework-core': workspace:^1.19.1 - '@boostercloud/framework-types': workspace:^1.19.1 + '@boostercloud/application-tester': workspace:^1.20.0 + '@boostercloud/eslint-config': workspace:^1.20.0 + '@boostercloud/framework-core': workspace:^1.20.0 + '@boostercloud/framework-types': workspace:^1.20.0 '@effect-ts/core': ^0.60.4 '@oclif/command': ^1.8 '@oclif/config': ^1.18 @@ -189,8 +189,8 @@ importers: ../../packages/framework-common-helpers: specifiers: - '@boostercloud/eslint-config': workspace:^1.19.1 - '@boostercloud/framework-types': workspace:^1.19.1 + '@boostercloud/eslint-config': workspace:^1.20.0 + '@boostercloud/framework-types': workspace:^1.20.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -258,10 +258,10 @@ importers: ../../packages/framework-core: specifiers: - '@boostercloud/eslint-config': workspace:^1.19.1 - '@boostercloud/framework-common-helpers': workspace:^1.19.1 - '@boostercloud/framework-types': workspace:^1.19.1 - '@boostercloud/metadata-booster': workspace:^1.19.1 + '@boostercloud/eslint-config': workspace:^1.20.0 + '@boostercloud/framework-common-helpers': workspace:^1.20.0 + '@boostercloud/framework-types': workspace:^1.20.0 + '@boostercloud/metadata-booster': workspace:^1.20.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -358,19 +358,19 @@ importers: ../../packages/framework-integration-tests: specifiers: '@apollo/client': 3.7.13 - '@boostercloud/application-tester': workspace:^1.19.1 - '@boostercloud/cli': workspace:^1.19.1 - '@boostercloud/eslint-config': workspace:^1.19.1 - '@boostercloud/framework-common-helpers': workspace:^1.19.1 - '@boostercloud/framework-core': workspace:^1.19.1 - '@boostercloud/framework-provider-aws': workspace:^1.19.1 - '@boostercloud/framework-provider-aws-infrastructure': workspace:^1.19.1 - '@boostercloud/framework-provider-azure': workspace:^1.19.1 - '@boostercloud/framework-provider-azure-infrastructure': workspace:^1.19.1 - '@boostercloud/framework-provider-local': workspace:^1.19.1 - '@boostercloud/framework-provider-local-infrastructure': workspace:^1.19.1 - '@boostercloud/framework-types': workspace:^1.19.1 - '@boostercloud/metadata-booster': workspace:^1.19.1 + '@boostercloud/application-tester': workspace:^1.20.0 + '@boostercloud/cli': workspace:^1.20.0 + '@boostercloud/eslint-config': workspace:^1.20.0 + '@boostercloud/framework-common-helpers': workspace:^1.20.0 + '@boostercloud/framework-core': workspace:^1.20.0 + '@boostercloud/framework-provider-aws': workspace:^1.20.0 + '@boostercloud/framework-provider-aws-infrastructure': workspace:^1.20.0 + '@boostercloud/framework-provider-azure': workspace:^1.20.0 + '@boostercloud/framework-provider-azure-infrastructure': workspace:^1.20.0 + '@boostercloud/framework-provider-local': workspace:^1.20.0 + '@boostercloud/framework-provider-local-infrastructure': workspace:^1.20.0 + '@boostercloud/framework-types': workspace:^1.20.0 + '@boostercloud/metadata-booster': workspace:^1.20.0 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -492,9 +492,9 @@ importers: ../../packages/framework-provider-aws: specifiers: - '@boostercloud/eslint-config': workspace:^1.19.1 - '@boostercloud/framework-common-helpers': workspace:^1.19.1 - '@boostercloud/framework-types': workspace:^1.19.1 + '@boostercloud/eslint-config': workspace:^1.20.0 + '@boostercloud/framework-common-helpers': workspace:^1.20.0 + '@boostercloud/framework-types': workspace:^1.20.0 '@effect-ts/core': ^0.60.4 '@types/aws-lambda': 8.10.48 '@types/chai': 4.2.18 @@ -588,10 +588,10 @@ importers: '@aws-cdk/core': ^1.170.0 '@aws-cdk/custom-resources': ^1.170.0 '@aws-cdk/cx-api': ^1.170.0 - '@boostercloud/eslint-config': workspace:^1.19.1 - '@boostercloud/framework-common-helpers': workspace:^1.19.1 - '@boostercloud/framework-provider-aws': workspace:^1.19.1 - '@boostercloud/framework-types': workspace:^1.19.1 + '@boostercloud/eslint-config': workspace:^1.20.0 + '@boostercloud/framework-common-helpers': workspace:^1.20.0 + '@boostercloud/framework-provider-aws': workspace:^1.20.0 + '@boostercloud/framework-types': workspace:^1.20.0 '@effect-ts/core': ^0.60.4 '@types/archiver': 5.1.0 '@types/aws-lambda': 8.10.48 @@ -636,20 +636,20 @@ importers: dependencies: '@aws-cdk/assets': 1.199.0_6t5bexudk3vtq7zhe7acxljz2e '@aws-cdk/aws-apigateway': 1.199.0_6ioy6wqnsnl357btnhiggvri2y - '@aws-cdk/aws-apigatewayv2': 1.199.0_74oizvoelbxgex3gbujl2xzm54 - '@aws-cdk/aws-cloudfront': 1.199.0_74oizvoelbxgex3gbujl2xzm54 + '@aws-cdk/aws-apigatewayv2': 1.199.0_27xmjacndcdczxlp2qs3oik2pi + '@aws-cdk/aws-cloudfront': 1.199.0_27xmjacndcdczxlp2qs3oik2pi '@aws-cdk/aws-dynamodb': 1.199.0_4somcjbyiqv34tounb2i2obuo4 '@aws-cdk/aws-events': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-events-targets': 1.199.0_efa47vukfsbcitdg2oy6em6xpe '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-lambda': 1.199.0_5pbncl2no5vqinyo3n2ekkob5q - '@aws-cdk/aws-lambda-event-sources': 1.199.0_3on2gbp3i6lbrxh3zrbluvabnq + '@aws-cdk/aws-lambda-event-sources': 1.199.0_i2pyrxv42thnu3m3lya7egnthy '@aws-cdk/aws-logs': 1.199.0_tqi77pcvvujtgay5663ykqn7wy '@aws-cdk/aws-s3': 1.199.0_wim6pvar6pmwiq3fs3ksmix5ru '@aws-cdk/aws-s3-deployment': 1.199.0_rzysml6d2qht4bnjifnmuqxdpi '@aws-cdk/cloudformation-diff': 1.199.0 '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm - '@aws-cdk/custom-resources': 1.199.0_6aw2ag5odq3zb2mttwz3fxe3hu + '@aws-cdk/custom-resources': 1.199.0_hpurdtmvyjlf5jd4m74jtjvrvu '@aws-cdk/cx-api': 1.199.0 '@boostercloud/framework-common-helpers': link:../framework-common-helpers '@boostercloud/framework-provider-aws': link:../framework-provider-aws @@ -704,9 +704,9 @@ importers: '@azure/functions': ^1.2.2 '@azure/identity': ~2.1.0 '@azure/web-pubsub': ~1.1.0 - '@boostercloud/eslint-config': workspace:^1.19.1 - '@boostercloud/framework-common-helpers': workspace:^1.19.1 - '@boostercloud/framework-types': workspace:^1.19.1 + '@boostercloud/eslint-config': workspace:^1.20.0 + '@boostercloud/framework-common-helpers': workspace:^1.20.0 + '@boostercloud/framework-types': workspace:^1.20.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -777,11 +777,11 @@ importers: '@azure/arm-resources': ^5.0.1 '@azure/cosmos': ^4.0.0 '@azure/identity': ~2.1.0 - '@boostercloud/eslint-config': workspace:^1.19.1 - '@boostercloud/framework-common-helpers': workspace:^1.19.1 - '@boostercloud/framework-core': workspace:^1.19.1 - '@boostercloud/framework-provider-azure': workspace:^1.19.1 - '@boostercloud/framework-types': workspace:^1.19.1 + '@boostercloud/eslint-config': workspace:^1.20.0 + '@boostercloud/framework-common-helpers': workspace:^1.20.0 + '@boostercloud/framework-core': workspace:^1.20.0 + '@boostercloud/framework-provider-azure': workspace:^1.20.0 + '@boostercloud/framework-types': workspace:^1.20.0 '@cdktf/provider-azurerm': 5.0.13 '@cdktf/provider-time': 5.0.0 '@effect-ts/core': ^0.60.4 @@ -888,9 +888,9 @@ importers: ../../packages/framework-provider-local: specifiers: - '@boostercloud/eslint-config': workspace:^1.19.1 - '@boostercloud/framework-common-helpers': workspace:^1.19.1 - '@boostercloud/framework-types': workspace:^1.19.1 + '@boostercloud/eslint-config': workspace:^1.20.0 + '@boostercloud/framework-common-helpers': workspace:^1.20.0 + '@boostercloud/framework-types': workspace:^1.20.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -969,10 +969,10 @@ importers: ../../packages/framework-provider-local-infrastructure: specifiers: - '@boostercloud/eslint-config': workspace:^1.19.1 - '@boostercloud/framework-common-helpers': workspace:^1.19.1 - '@boostercloud/framework-provider-local': workspace:^1.19.1 - '@boostercloud/framework-types': workspace:^1.19.1 + '@boostercloud/eslint-config': workspace:^1.20.0 + '@boostercloud/framework-common-helpers': workspace:^1.20.0 + '@boostercloud/framework-provider-local': workspace:^1.20.0 + '@boostercloud/framework-types': workspace:^1.20.0 '@effect-ts/core': ^0.60.4 '@types/chai': 4.2.18 '@types/chai-as-promised': 7.1.4 @@ -1052,8 +1052,8 @@ importers: ../../packages/framework-types: specifiers: - '@boostercloud/eslint-config': workspace:^1.19.1 - '@boostercloud/metadata-booster': workspace:^1.19.1 + '@boostercloud/eslint-config': workspace:^1.20.0 + '@boostercloud/metadata-booster': workspace:^1.20.0 '@effect-ts/core': ^0.60.4 '@effect-ts/node': ~0.39.0 '@types/chai': 4.2.18 @@ -1121,7 +1121,7 @@ importers: ../../packages/metadata-booster: specifiers: - '@boostercloud/eslint-config': workspace:^1.19.1 + '@boostercloud/eslint-config': workspace:^1.20.0 '@effect-ts/core': ^0.60.4 '@types/node': ^18.15.3 '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -1312,8 +1312,8 @@ packages: '@aws-cdk/aws-certificatemanager': 1.199.0_aklsbzsp6i2n6pzp4sxy6hufne '@aws-cdk/aws-cloudwatch': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-cognito': 1.199.0_hzslyw5ts33yz4we44vxrnbbrm - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 - '@aws-cdk/aws-elasticloadbalancingv2': 1.199.0_74oizvoelbxgex3gbujl2xzm54 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta + '@aws-cdk/aws-elasticloadbalancingv2': 1.199.0_27xmjacndcdczxlp2qs3oik2pi '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-lambda': 1.199.0_5pbncl2no5vqinyo3n2ekkob5q '@aws-cdk/aws-logs': 1.199.0_tqi77pcvvujtgay5663ykqn7wy @@ -1329,7 +1329,7 @@ packages: - '@aws-cdk/custom-resources' dev: false - /@aws-cdk/aws-apigatewayv2/1.199.0_74oizvoelbxgex3gbujl2xzm54: + /@aws-cdk/aws-apigatewayv2/1.199.0_27xmjacndcdczxlp2qs3oik2pi: resolution: {integrity: sha512-yTrjZcTe5inn6kBLqB6VgJx5rQqXbIYaShT4gIX/9xZ2qdhSyq5WcIFSvhCaBB1fIGy3PTaDKwZe3GaVuVaDmQ==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -1340,13 +1340,12 @@ packages: dependencies: '@aws-cdk/aws-certificatemanager': 1.199.0_aklsbzsp6i2n6pzp4sxy6hufne '@aws-cdk/aws-cloudwatch': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-s3': 1.199.0_wim6pvar6pmwiq3fs3ksmix5ru '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm constructs: 3.4.293 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-lambda' - '@aws-cdk/aws-logs' - '@aws-cdk/custom-resources' @@ -1395,7 +1394,7 @@ packages: '@aws-cdk/core': 1.199.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-autoscaling': 1.199.0_6ioy6wqnsnl357btnhiggvri2y + '@aws-cdk/aws-autoscaling': 1.199.0_7t4vdps2akqwoy42v6g6wkbq7u '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-kms': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/aws-lambda': 1.199.0_5pbncl2no5vqinyo3n2ekkob5q @@ -1406,7 +1405,7 @@ packages: constructs: 3.4.293 dev: false - /@aws-cdk/aws-autoscaling/1.199.0_6ioy6wqnsnl357btnhiggvri2y: + /@aws-cdk/aws-autoscaling/1.199.0_7t4vdps2akqwoy42v6g6wkbq7u: resolution: {integrity: sha512-JSwF4UC3JB1KpIQtLUhQytrhSBeEBxe20tLZy6lsdsULtJRz/rbz1Fm4GGUiqefX3gd9qcQBL5pwNlHhjGjZbg==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -1416,15 +1415,14 @@ packages: dependencies: '@aws-cdk/aws-autoscaling-common': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-cloudwatch': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/aws-elasticloadbalancing': 1.199.0_ehdkigggl2baqdi4l6p7upw4f4 - '@aws-cdk/aws-elasticloadbalancingv2': 1.199.0_74oizvoelbxgex3gbujl2xzm54 + '@aws-cdk/aws-elasticloadbalancingv2': 1.199.0_27xmjacndcdczxlp2qs3oik2pi '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-sns': 1.199.0_wim6pvar6pmwiq3fs3ksmix5ru '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm constructs: 3.4.293 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-events' - '@aws-cdk/aws-lambda' - '@aws-cdk/aws-logs' @@ -1477,7 +1475,7 @@ packages: - '@aws-cdk/aws-events' dev: false - /@aws-cdk/aws-cloudfront/1.199.0_74oizvoelbxgex3gbujl2xzm54: + /@aws-cdk/aws-cloudfront/1.199.0_27xmjacndcdczxlp2qs3oik2pi: resolution: {integrity: sha512-y4EMHFN+AYsKtD/DbQeU37skklUSVHH2HVWntpN6Rt27oVnG9qqQS4GcI/ZJqJB/qULBjh5g4nqcbLjLr+RbOA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -1490,7 +1488,7 @@ packages: dependencies: '@aws-cdk/aws-certificatemanager': 1.199.0_aklsbzsp6i2n6pzp4sxy6hufne '@aws-cdk/aws-cloudwatch': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-kms': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/aws-lambda': 1.199.0_5pbncl2no5vqinyo3n2ekkob5q @@ -1500,7 +1498,6 @@ packages: '@aws-cdk/cx-api': 1.199.0 constructs: 3.4.293 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-logs' - '@aws-cdk/custom-resources' dev: false @@ -1534,8 +1531,8 @@ packages: '@aws-cdk/aws-cloudwatch': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-codecommit': 1.199.0_u6wgonek7tj4xuwvr3d2ei6crq '@aws-cdk/aws-codestarnotifications': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 - '@aws-cdk/aws-ecr': 1.199.0_5lpmbvgigeswzbugyujlevszcq + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta + '@aws-cdk/aws-ecr': 1.199.0_wim6pvar6pmwiq3fs3ksmix5ru '@aws-cdk/aws-ecr-assets': 1.199.0_u6wgonek7tj4xuwvr3d2ei6crq '@aws-cdk/aws-events': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu @@ -1543,7 +1540,7 @@ packages: '@aws-cdk/aws-logs': 1.199.0_tqi77pcvvujtgay5663ykqn7wy '@aws-cdk/aws-s3': 1.199.0_wim6pvar6pmwiq3fs3ksmix5ru '@aws-cdk/aws-s3-assets': 1.199.0_tqi77pcvvujtgay5663ykqn7wy - '@aws-cdk/aws-secretsmanager': 1.199.0_maqnqwhn36fygp3z4rdnivbxii + '@aws-cdk/aws-secretsmanager': 1.199.0_w44itfkgshmd42wctbnkck4r7e '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm '@aws-cdk/region-info': 1.199.0 constructs: 3.4.293 @@ -1636,7 +1633,7 @@ packages: '@aws-cdk/aws-kms': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/aws-lambda': 1.199.0_5pbncl2no5vqinyo3n2ekkob5q '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm - '@aws-cdk/custom-resources': 1.199.0_6aw2ag5odq3zb2mttwz3fxe3hu + '@aws-cdk/custom-resources': 1.199.0_hpurdtmvyjlf5jd4m74jtjvrvu constructs: 3.4.293 punycode: 2.3.0 transitivePeerDependencies: @@ -1660,18 +1657,18 @@ packages: '@aws-cdk/aws-applicationautoscaling': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-cloudwatch': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu - '@aws-cdk/aws-kinesis': 1.199.0_yvevwnsp6zaocssyslvdojryte + '@aws-cdk/aws-kinesis': 1.199.0_e2y6n4vxxh6w5ycsjwgdk7fg7q '@aws-cdk/aws-kms': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/aws-lambda': 1.199.0_5pbncl2no5vqinyo3n2ekkob5q '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm - '@aws-cdk/custom-resources': 1.199.0_6aw2ag5odq3zb2mttwz3fxe3hu + '@aws-cdk/custom-resources': 1.199.0_hpurdtmvyjlf5jd4m74jtjvrvu constructs: 3.4.293 transitivePeerDependencies: - '@aws-cdk/aws-logs' - '@aws-cdk/cx-api' dev: false - /@aws-cdk/aws-ec2/1.199.0_ylylsu27pdmlfxyxktlluxtkr4: + /@aws-cdk/aws-ec2/1.199.0_h6wh2dtuanu3t32m4bj2sle3ta: resolution: {integrity: sha512-Bap+v3S8Ucodi6fy0WMcv10x/QcZ/j/U8NgbrdymQcZxez9C6wywTYTyjHhlyGL8GfE35lwf4p9P8F8tjZnDJg==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -1682,20 +1679,14 @@ packages: '@aws-cdk/cx-api': 1.199.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-cloudwatch': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu - '@aws-cdk/aws-kms': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/aws-logs': 1.199.0_tqi77pcvvujtgay5663ykqn7wy '@aws-cdk/aws-s3': 1.199.0_wim6pvar6pmwiq3fs3ksmix5ru - '@aws-cdk/aws-s3-assets': 1.199.0_tqi77pcvvujtgay5663ykqn7wy '@aws-cdk/aws-ssm': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/cloud-assembly-schema': 1.199.0 '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm '@aws-cdk/cx-api': 1.199.0 - '@aws-cdk/region-info': 1.199.0 constructs: 3.4.293 - transitivePeerDependencies: - - '@aws-cdk/assets' dev: false /@aws-cdk/aws-ecr-assets/1.199.0_u6wgonek7tj4xuwvr3d2ei6crq: @@ -1710,7 +1701,7 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/assets': 1.199.0_6t5bexudk3vtq7zhe7acxljz2e - '@aws-cdk/aws-ecr': 1.199.0_5lpmbvgigeswzbugyujlevszcq + '@aws-cdk/aws-ecr': 1.199.0_wim6pvar6pmwiq3fs3ksmix5ru '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-s3': 1.199.0_wim6pvar6pmwiq3fs3ksmix5ru '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm @@ -1720,7 +1711,7 @@ packages: - '@aws-cdk/aws-events' dev: false - /@aws-cdk/aws-ecr/1.199.0_5lpmbvgigeswzbugyujlevszcq: + /@aws-cdk/aws-ecr/1.199.0_wim6pvar6pmwiq3fs3ksmix5ru: resolution: {integrity: sha512-C4VG9uRf8UD/cNitVvYaQvF9zKwgWZoNLf43RaUrMEpo4Q/KE3/KilYBG8lsza8B7f4yjYRey5iOpydKE68kYg==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -1731,8 +1722,11 @@ packages: dependencies: '@aws-cdk/aws-events': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu + '@aws-cdk/aws-kms': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm constructs: 3.4.293 + transitivePeerDependencies: + - '@aws-cdk/cx-api' dev: false /@aws-cdk/aws-ecs/1.199.0_7m5azgjywxpgdeoosvoxrcdts4: @@ -1748,25 +1742,25 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/aws-applicationautoscaling': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi - '@aws-cdk/aws-autoscaling': 1.199.0_6ioy6wqnsnl357btnhiggvri2y + '@aws-cdk/aws-autoscaling': 1.199.0_7t4vdps2akqwoy42v6g6wkbq7u '@aws-cdk/aws-autoscaling-hooktargets': 1.199.0_wiaz33wtwefkv5d3nn7hbhuhmu '@aws-cdk/aws-certificatemanager': 1.199.0_aklsbzsp6i2n6pzp4sxy6hufne '@aws-cdk/aws-cloudwatch': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 - '@aws-cdk/aws-ecr': 1.199.0_5lpmbvgigeswzbugyujlevszcq + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta + '@aws-cdk/aws-ecr': 1.199.0_wim6pvar6pmwiq3fs3ksmix5ru '@aws-cdk/aws-ecr-assets': 1.199.0_u6wgonek7tj4xuwvr3d2ei6crq '@aws-cdk/aws-elasticloadbalancing': 1.199.0_ehdkigggl2baqdi4l6p7upw4f4 - '@aws-cdk/aws-elasticloadbalancingv2': 1.199.0_74oizvoelbxgex3gbujl2xzm54 + '@aws-cdk/aws-elasticloadbalancingv2': 1.199.0_27xmjacndcdczxlp2qs3oik2pi '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-kms': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/aws-lambda': 1.199.0_5pbncl2no5vqinyo3n2ekkob5q '@aws-cdk/aws-logs': 1.199.0_tqi77pcvvujtgay5663ykqn7wy '@aws-cdk/aws-route53': 1.199.0_ytf4bxsrhewrt5j5jnuzynemxy - '@aws-cdk/aws-route53-targets': 1.199.0_6qn3q4quwxpkjgl3z2r2rmaqqi + '@aws-cdk/aws-route53-targets': 1.199.0_2ap25t3f2ak5h2qxfnvuyuxrga '@aws-cdk/aws-s3': 1.199.0_wim6pvar6pmwiq3fs3ksmix5ru '@aws-cdk/aws-s3-assets': 1.199.0_tqi77pcvvujtgay5663ykqn7wy - '@aws-cdk/aws-secretsmanager': 1.199.0_maqnqwhn36fygp3z4rdnivbxii - '@aws-cdk/aws-servicediscovery': 1.199.0_4axszbdsnc7kzhsa3r5g56z4bu + '@aws-cdk/aws-secretsmanager': 1.199.0_w44itfkgshmd42wctbnkck4r7e + '@aws-cdk/aws-servicediscovery': 1.199.0_mcuiip26demcvhycudknexqcta '@aws-cdk/aws-sns': 1.199.0_wim6pvar6pmwiq3fs3ksmix5ru '@aws-cdk/aws-sqs': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/aws-ssm': 1.199.0_iumdymv27iwprkm3rzoqxlpuia @@ -1782,7 +1776,7 @@ packages: - '@aws-cdk/custom-resources' dev: false - /@aws-cdk/aws-efs/1.199.0_ylylsu27pdmlfxyxktlluxtkr4: + /@aws-cdk/aws-efs/1.199.0_h6wh2dtuanu3t32m4bj2sle3ta: resolution: {integrity: sha512-quJaKa6Wjl6y2pCKFpo2NmBrJTV4AKX3wupZdT5dJ8N54kRSKIE7oVF9TFO6k954d5E93YrA+tbA2xI7SUPk9w==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -1791,7 +1785,7 @@ packages: '@aws-cdk/cx-api': 1.199.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-kms': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/cloud-assembly-schema': 1.199.0 @@ -1799,7 +1793,6 @@ packages: '@aws-cdk/cx-api': 1.199.0 constructs: 3.4.293 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-logs' - '@aws-cdk/aws-s3' dev: false @@ -1812,12 +1805,12 @@ packages: '@aws-cdk/core': 1.199.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm constructs: 3.4.293 dev: false - /@aws-cdk/aws-elasticloadbalancingv2/1.199.0_74oizvoelbxgex3gbujl2xzm54: + /@aws-cdk/aws-elasticloadbalancingv2/1.199.0_27xmjacndcdczxlp2qs3oik2pi: resolution: {integrity: sha512-cb8dYlmqEjYRORTAu9Y8Xaiw3cZ0RSmCqiFL8Mj+IgxANDg9QdaMxdQu8QPWnC7+uVFWkbnD6G6NRL7FAPgnIA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -1830,7 +1823,7 @@ packages: dependencies: '@aws-cdk/aws-certificatemanager': 1.199.0_aklsbzsp6i2n6pzp4sxy6hufne '@aws-cdk/aws-cloudwatch': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-lambda': 1.199.0_5pbncl2no5vqinyo3n2ekkob5q '@aws-cdk/aws-route53': 1.199.0_ytf4bxsrhewrt5j5jnuzynemxy @@ -1841,7 +1834,6 @@ packages: '@aws-cdk/region-info': 1.199.0 constructs: 3.4.293 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-logs' - '@aws-cdk/custom-resources' dev: false @@ -1860,15 +1852,15 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/aws-apigateway': 1.199.0_6ioy6wqnsnl357btnhiggvri2y - '@aws-cdk/aws-autoscaling': 1.199.0_6ioy6wqnsnl357btnhiggvri2y + '@aws-cdk/aws-autoscaling': 1.199.0_7t4vdps2akqwoy42v6g6wkbq7u '@aws-cdk/aws-codebuild': 1.199.0_6aw2ag5odq3zb2mttwz3fxe3hu '@aws-cdk/aws-codepipeline': 1.199.0_z4s7qll3yvb46zglrdwf6455hq - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/aws-ecs': 1.199.0_7m5azgjywxpgdeoosvoxrcdts4 '@aws-cdk/aws-events': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu - '@aws-cdk/aws-kinesis': 1.199.0_yvevwnsp6zaocssyslvdojryte - '@aws-cdk/aws-kinesisfirehose': 1.199.0_maqnqwhn36fygp3z4rdnivbxii + '@aws-cdk/aws-kinesis': 1.199.0_e2y6n4vxxh6w5ycsjwgdk7fg7q + '@aws-cdk/aws-kinesisfirehose': 1.199.0_w44itfkgshmd42wctbnkck4r7e '@aws-cdk/aws-kms': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/aws-lambda': 1.199.0_5pbncl2no5vqinyo3n2ekkob5q '@aws-cdk/aws-logs': 1.199.0_tqi77pcvvujtgay5663ykqn7wy @@ -1877,7 +1869,7 @@ packages: '@aws-cdk/aws-sqs': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/aws-stepfunctions': 1.199.0_7pfu6l6qsjyfy4w6ive4ku47pa '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm - '@aws-cdk/custom-resources': 1.199.0_6aw2ag5odq3zb2mttwz3fxe3hu + '@aws-cdk/custom-resources': 1.199.0_hpurdtmvyjlf5jd4m74jtjvrvu constructs: 3.4.293 transitivePeerDependencies: - '@aws-cdk/assets' @@ -1908,9 +1900,9 @@ packages: '@aws-cdk/custom-resources': 1.199.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm - '@aws-cdk/custom-resources': 1.199.0_6aw2ag5odq3zb2mttwz3fxe3hu + '@aws-cdk/custom-resources': 1.199.0_hpurdtmvyjlf5jd4m74jtjvrvu constructs: 3.4.293 dev: false @@ -1927,7 +1919,7 @@ packages: constructs: 3.4.293 dev: false - /@aws-cdk/aws-kinesis/1.199.0_yvevwnsp6zaocssyslvdojryte: + /@aws-cdk/aws-kinesis/1.199.0_e2y6n4vxxh6w5ycsjwgdk7fg7q: resolution: {integrity: sha512-ASDtGXG1ZvBWpDUj9oT12tF5+jG+R7bykcflfE+KTTXX3mJy1S5gn3YQbb6hV5V+TYPyVckSeW2z0pHSL3RkpQ==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -1938,12 +1930,15 @@ packages: dependencies: '@aws-cdk/aws-cloudwatch': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu + '@aws-cdk/aws-kms': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/aws-logs': 1.199.0_tqi77pcvvujtgay5663ykqn7wy '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm constructs: 3.4.293 + transitivePeerDependencies: + - '@aws-cdk/cx-api' dev: false - /@aws-cdk/aws-kinesisfirehose/1.199.0_maqnqwhn36fygp3z4rdnivbxii: + /@aws-cdk/aws-kinesisfirehose/1.199.0_w44itfkgshmd42wctbnkck4r7e: resolution: {integrity: sha512-CXf6vBR4NBA1p4UXtNg1aEUXveUtGBplDYyfoVzDdhpGnMBKQig6aBpUKvRoQbah3dXNbPauBmWOWEqTwn6+Nw==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -1955,9 +1950,9 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/aws-cloudwatch': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu - '@aws-cdk/aws-kinesis': 1.199.0_yvevwnsp6zaocssyslvdojryte + '@aws-cdk/aws-kinesis': 1.199.0_e2y6n4vxxh6w5ycsjwgdk7fg7q '@aws-cdk/aws-kms': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/aws-lambda': 1.199.0_5pbncl2no5vqinyo3n2ekkob5q '@aws-cdk/aws-logs': 1.199.0_tqi77pcvvujtgay5663ykqn7wy @@ -1966,7 +1961,6 @@ packages: '@aws-cdk/region-info': 1.199.0 constructs: 3.4.293 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/cx-api' dev: false @@ -1986,7 +1980,7 @@ packages: constructs: 3.4.293 dev: false - /@aws-cdk/aws-lambda-event-sources/1.199.0_3on2gbp3i6lbrxh3zrbluvabnq: + /@aws-cdk/aws-lambda-event-sources/1.199.0_i2pyrxv42thnu3m3lya7egnthy: resolution: {integrity: sha512-EVHMnIrP25GVknog8O6yIrenMMzPhIr9nVsVMslnD8A+bGKTjJhTSa90GqjTc8JJ8SB8WU2xx6UNJDjOOpQejg==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -2001,21 +1995,20 @@ packages: dependencies: '@aws-cdk/aws-apigateway': 1.199.0_6ioy6wqnsnl357btnhiggvri2y '@aws-cdk/aws-dynamodb': 1.199.0_4somcjbyiqv34tounb2i2obuo4 - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/aws-events': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu - '@aws-cdk/aws-kinesis': 1.199.0_yvevwnsp6zaocssyslvdojryte + '@aws-cdk/aws-kinesis': 1.199.0_e2y6n4vxxh6w5ycsjwgdk7fg7q '@aws-cdk/aws-lambda': 1.199.0_5pbncl2no5vqinyo3n2ekkob5q '@aws-cdk/aws-s3': 1.199.0_wim6pvar6pmwiq3fs3ksmix5ru '@aws-cdk/aws-s3-notifications': 1.199.0_fufarp47blk4okwshjegj2wjg4 - '@aws-cdk/aws-secretsmanager': 1.199.0_maqnqwhn36fygp3z4rdnivbxii + '@aws-cdk/aws-secretsmanager': 1.199.0_w44itfkgshmd42wctbnkck4r7e '@aws-cdk/aws-sns': 1.199.0_wim6pvar6pmwiq3fs3ksmix5ru '@aws-cdk/aws-sns-subscriptions': 1.199.0_x7skkdpav5hf4ncc76dwztyszi '@aws-cdk/aws-sqs': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm constructs: 3.4.293 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-logs' - '@aws-cdk/cx-api' dev: false @@ -2035,10 +2028,10 @@ packages: '@aws-cdk/aws-applicationautoscaling': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-cloudwatch': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-codeguruprofiler': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 - '@aws-cdk/aws-ecr': 1.199.0_5lpmbvgigeswzbugyujlevszcq + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta + '@aws-cdk/aws-ecr': 1.199.0_wim6pvar6pmwiq3fs3ksmix5ru '@aws-cdk/aws-ecr-assets': 1.199.0_u6wgonek7tj4xuwvr3d2ei6crq - '@aws-cdk/aws-efs': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-efs': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/aws-events': 1.199.0_wcptolxmxi6sy3vjqhvgbrrnvi '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-kms': 1.199.0_iumdymv27iwprkm3rzoqxlpuia @@ -2077,7 +2070,7 @@ packages: - '@aws-cdk/aws-s3' dev: false - /@aws-cdk/aws-route53-targets/1.199.0_6qn3q4quwxpkjgl3z2r2rmaqqi: + /@aws-cdk/aws-route53-targets/1.199.0_2ap25t3f2ak5h2qxfnvuyuxrga: resolution: {integrity: sha512-l8cg4zZncQ2JUF4Hd8kvouWYi5y63/2PKU57MY64dUC7wL/VjeEQMRJhehB11rt1OAbp/SNB2f/dnSTcNA8dmA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -2090,11 +2083,11 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/aws-apigateway': 1.199.0_6ioy6wqnsnl357btnhiggvri2y - '@aws-cdk/aws-cloudfront': 1.199.0_74oizvoelbxgex3gbujl2xzm54 + '@aws-cdk/aws-cloudfront': 1.199.0_27xmjacndcdczxlp2qs3oik2pi '@aws-cdk/aws-cognito': 1.199.0_hzslyw5ts33yz4we44vxrnbbrm - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/aws-elasticloadbalancing': 1.199.0_ehdkigggl2baqdi4l6p7upw4f4 - '@aws-cdk/aws-elasticloadbalancingv2': 1.199.0_74oizvoelbxgex3gbujl2xzm54 + '@aws-cdk/aws-elasticloadbalancingv2': 1.199.0_27xmjacndcdczxlp2qs3oik2pi '@aws-cdk/aws-globalaccelerator': 1.199.0_uhmkgheirzwotmxej4ph7fbqla '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-route53': 1.199.0_ytf4bxsrhewrt5j5jnuzynemxy @@ -2103,7 +2096,6 @@ packages: '@aws-cdk/region-info': 1.199.0 constructs: 3.4.293 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-lambda' - '@aws-cdk/aws-logs' - '@aws-cdk/custom-resources' @@ -2121,12 +2113,12 @@ packages: '@aws-cdk/custom-resources': 1.199.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-logs': 1.199.0_tqi77pcvvujtgay5663ykqn7wy '@aws-cdk/cloud-assembly-schema': 1.199.0 '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm - '@aws-cdk/custom-resources': 1.199.0_6aw2ag5odq3zb2mttwz3fxe3hu + '@aws-cdk/custom-resources': 1.199.0_hpurdtmvyjlf5jd4m74jtjvrvu constructs: 3.4.293 dev: false @@ -2162,9 +2154,9 @@ packages: '@aws-cdk/core': 1.199.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-cloudfront': 1.199.0_74oizvoelbxgex3gbujl2xzm54 - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 - '@aws-cdk/aws-efs': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-cloudfront': 1.199.0_27xmjacndcdczxlp2qs3oik2pi + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta + '@aws-cdk/aws-efs': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-lambda': 1.199.0_5pbncl2no5vqinyo3n2ekkob5q '@aws-cdk/aws-logs': 1.199.0_tqi77pcvvujtgay5663ykqn7wy @@ -2233,7 +2225,7 @@ packages: constructs: 3.4.293 dev: false - /@aws-cdk/aws-secretsmanager/1.199.0_maqnqwhn36fygp3z4rdnivbxii: + /@aws-cdk/aws-secretsmanager/1.199.0_w44itfkgshmd42wctbnkck4r7e: resolution: {integrity: sha512-Dj0+q7I9xRwg1hHowrHb9rxmicDGZVmQixFaFuBdsS5zNfBNdC6WJGWhDddJDZIPclip06fXBm/by4+l4XUpNw==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -2243,7 +2235,7 @@ packages: '@aws-cdk/cx-api': 1.199.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-kms': 1.199.0_iumdymv27iwprkm3rzoqxlpuia '@aws-cdk/aws-lambda': 1.199.0_5pbncl2no5vqinyo3n2ekkob5q @@ -2252,12 +2244,11 @@ packages: '@aws-cdk/cx-api': 1.199.0 constructs: 3.4.293 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-logs' - '@aws-cdk/aws-s3' dev: false - /@aws-cdk/aws-servicediscovery/1.199.0_4axszbdsnc7kzhsa3r5g56z4bu: + /@aws-cdk/aws-servicediscovery/1.199.0_mcuiip26demcvhycudknexqcta: resolution: {integrity: sha512-OSGcZQE5N4ynBFcv54XWSbfunBym5r/hHstpONZkRB+jf9nFEqaVqno9ZgeLU3in5m/QuK781g+dx0r0M0Ao6w==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -2265,13 +2256,12 @@ packages: '@aws-cdk/core': 1.199.0 constructs: ^3.3.69 dependencies: - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 - '@aws-cdk/aws-elasticloadbalancingv2': 1.199.0_74oizvoelbxgex3gbujl2xzm54 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta + '@aws-cdk/aws-elasticloadbalancingv2': 1.199.0_27xmjacndcdczxlp2qs3oik2pi '@aws-cdk/aws-route53': 1.199.0_ytf4bxsrhewrt5j5jnuzynemxy '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm constructs: 3.4.293 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-iam' - '@aws-cdk/aws-lambda' - '@aws-cdk/aws-logs' @@ -2451,7 +2441,7 @@ packages: - '@balena/dockerignore' - ignore - /@aws-cdk/custom-resources/1.199.0_6aw2ag5odq3zb2mttwz3fxe3hu: + /@aws-cdk/custom-resources/1.199.0_hpurdtmvyjlf5jd4m74jtjvrvu: resolution: {integrity: sha512-2KXLD9LHQtXgjwyqMAZxXvo1q/7sZUGNpEWmxinEOaCNew57SRrWbz8U9gkUt1PHxUa6UqwA1F/aF+HXwQy2Tg==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -2462,7 +2452,7 @@ packages: constructs: ^3.3.69 dependencies: '@aws-cdk/aws-cloudformation': 1.199.0_fufarp47blk4okwshjegj2wjg4 - '@aws-cdk/aws-ec2': 1.199.0_ylylsu27pdmlfxyxktlluxtkr4 + '@aws-cdk/aws-ec2': 1.199.0_h6wh2dtuanu3t32m4bj2sle3ta '@aws-cdk/aws-iam': 1.199.0_xwfh4icwyvj4zfjhzlqde6qllu '@aws-cdk/aws-lambda': 1.199.0_5pbncl2no5vqinyo3n2ekkob5q '@aws-cdk/aws-logs': 1.199.0_tqi77pcvvujtgay5663ykqn7wy @@ -2470,7 +2460,6 @@ packages: '@aws-cdk/core': 1.199.0_kscyon7amn7dglog7cugnqvkwm constructs: 3.4.293 transitivePeerDependencies: - - '@aws-cdk/assets' - '@aws-cdk/aws-events' - '@aws-cdk/aws-s3' - '@aws-cdk/cx-api' @@ -3498,7 +3487,7 @@ packages: dev: true /@pkgjs/parseargs/0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, tarball: https://repo1.uhc.com:443/artifactory/api/npm/npm-virtual/@pkgjs/parseargs/-/parseargs-0.11.0.tgz} + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} requiresBuild: true dev: true @@ -6491,7 +6480,7 @@ packages: dev: true /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, tarball: https://repo1.uhc.com:443/artifactory/api/npm/npm-virtual/fsevents/-/fsevents-2.3.2.tgz} + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true diff --git a/packages/cli/src/commands/new/project.ts b/packages/cli/src/commands/new/project.ts index e76bbebb5..49bcc22be 100644 --- a/packages/cli/src/commands/new/project.ts +++ b/packages/cli/src/commands/new/project.ts @@ -44,7 +44,7 @@ export default class Project extends Command { providerPackageName: flags.string({ char: 'p', description: - 'package name implementing the cloud provider integration where the application will be deployed (i.e: "@boostercloud/framework-provider-aws"', + 'package name implementing the cloud provider integration where the application will be deployed (i.e: "@boostercloud/framework-provider-azure")', }), default: flags.boolean({ description: 'generates the project with default parameters (i.e. --license=MIT)', @@ -112,7 +112,7 @@ const getProviderPackageName = async (prompter: Prompter, providerPackageName?: if (providerSelection === Provider.OTHER) { return await prompter.defaultOrPrompt( undefined, - "What's the other provider integration library? e.g. @boostercloud/framework-provider-aws" + "What's the other provider integration library? e.g. @boostercloud/framework-provider-azure" ) } else { return getSelectedProviderPackage(providerSelection) @@ -127,7 +127,7 @@ export const parseConfig = async ( if (flags.default) { return Promise.resolve({ projectName: flags.projectName as string, - providerPackageName: '@boostercloud/framework-provider-aws', + providerPackageName: '@boostercloud/framework-provider-azure', description: '', version: '0.1.0', author: '', diff --git a/packages/cli/src/common/provider.ts b/packages/cli/src/common/provider.ts index 75b669128..83458bbf0 100644 --- a/packages/cli/src/common/provider.ts +++ b/packages/cli/src/common/provider.ts @@ -1,5 +1,5 @@ export const enum Provider { - AWS = '@boostercloud/framework-provider-aws (AWS)', AZURE = '@boostercloud/framework-provider-azure (Azure)', + AWS = '@boostercloud/framework-provider-aws (AWS) - Currently deprecated', OTHER = 'Other', } diff --git a/packages/cli/test/commands/new/project.test.ts b/packages/cli/test/commands/new/project.test.ts index 40a85ab51..e142b1785 100644 --- a/packages/cli/test/commands/new/project.test.ts +++ b/packages/cli/test/commands/new/project.test.ts @@ -13,7 +13,7 @@ describe('new', (): void => { describe('project', () => { context('default provider', () => { const projectName = 'test-project' - const defaultProvider = '@boostercloud/framework-provider-aws' + const defaultProvider = '@boostercloud/framework-provider-azure' const defaultRepository = 'github.com:boostercloud/booster.git' const expectFilesAndDirectoriesCreated = (projectName: string) => { diff --git a/packages/cli/test/common/provider.test.ts b/packages/cli/test/common/provider.test.ts index 08bd13e26..22a6f80b9 100644 --- a/packages/cli/test/common/provider.test.ts +++ b/packages/cli/test/common/provider.test.ts @@ -3,7 +3,7 @@ import { expect } from '../expect' describe('selectedProvider', (): void => { it('get selected provider: AWS', async () => { - expect(Provider.AWS).to.be.equal('@boostercloud/framework-provider-aws (AWS)') + expect(Provider.AWS).to.be.equal('@boostercloud/framework-provider-aws (AWS) - Currently deprecated') }) it('get selected provider: Azure', async () => { expect(Provider.AZURE).to.be.equal('@boostercloud/framework-provider-azure (Azure)') diff --git a/packages/cli/test/services/project-initializer.test.ts b/packages/cli/test/services/project-initializer.test.ts index 37fe91130..e63abbbc4 100644 --- a/packages/cli/test/services/project-initializer.test.ts +++ b/packages/cli/test/services/project-initializer.test.ts @@ -24,7 +24,7 @@ describe('project initializer', (): void => { }) const projectName = 'test-project' - const defaultProvider = '@boostercloud/framework-provider-aws' + const defaultProvider = '@boostercloud/framework-provider-azure' const defaultProjectInitializerConfig = { projectName: projectName, description: '', diff --git a/packages/framework-integration-tests/integration/fixtures/cart-demo/package.json b/packages/framework-integration-tests/integration/fixtures/cart-demo/package.json index aafb8a4c4..6303330f9 100644 --- a/packages/framework-integration-tests/integration/fixtures/cart-demo/package.json +++ b/packages/framework-integration-tests/integration/fixtures/cart-demo/package.json @@ -7,7 +7,7 @@ "@boostercloud/framework-core": "whatever", "@boostercloud/framework-common-helpers": "whatever", "@boostercloud/framework-types": "whatever", - "@boostercloud/framework-provider-aws": "whatever" + "@boostercloud/framework-provider-azure": "whatever" }, "devDependencies": { "rimraf": "whatever", @@ -22,7 +22,7 @@ "typescript": "whatever", "ts-node": "whatever", "@types/node": "whatever", - "@boostercloud/framework-provider-aws-infrastructure": "whatever", + "@boostercloud/framework-provider-azure-infrastructure": "whatever", "ts-patch": "whatever", "@boostercloud/metadata-booster": "whatever", "graphql": "^16.6.0" diff --git a/packages/framework-integration-tests/integration/fixtures/cart-demo/src/config/config.ts b/packages/framework-integration-tests/integration/fixtures/cart-demo/src/config/config.ts index b0da7c07b..6e44a8f6f 100644 --- a/packages/framework-integration-tests/integration/fixtures/cart-demo/src/config/config.ts +++ b/packages/framework-integration-tests/integration/fixtures/cart-demo/src/config/config.ts @@ -8,5 +8,5 @@ Booster.configure('local', (config: BoosterConfig): void => { Booster.configure('production', (config: BoosterConfig): void => { config.appName = 'project_name_placeholder' - config.providerPackage = '@boostercloud/framework-provider-aws' + config.providerPackage = '@boostercloud/framework-provider-azure' }) diff --git a/packages/framework-integration-tests/integration/helper/app-helper.ts b/packages/framework-integration-tests/integration/helper/app-helper.ts index faa205ecc..e0d561b22 100644 --- a/packages/framework-integration-tests/integration/helper/app-helper.ts +++ b/packages/framework-integration-tests/integration/helper/app-helper.ts @@ -31,7 +31,7 @@ export async function getProviderTestHelper(): Promise { export async function setEnv(): Promise { if (!process.env.BOOSTER_APP_SUFFIX) { // If the user doesn't set an app name suffix, use the current git commit hash - // to build a unique suffix for the application name in AWS to avoid collisions + // to build a unique suffix for the application name to avoid collisions // between tests from different branches. const { stdout } = await exec('git rev-parse HEAD') process.env['BOOSTER_APP_SUFFIX'] = stdout.trim().substring(0, 7) diff --git a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.project.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.project.integration.ts index 8d1562658..67ff72f9b 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/cli/cli.project.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/cli/cli.project.integration.ts @@ -22,7 +22,7 @@ const AUTHOR = 'The Agile Monkeys' const HOMEPAGE = 'https://www.boosterframework.com/' const LICENSE = 'Apache' const REPO_URL = 'https://github.com/boostercloud/booster/' -const PROVIDER = '@boostercloud/framework-provider-aws' +const PROVIDER = '@boostercloud/framework-provider-azure' describe('Project', () => { const SANDBOX_INTEGRATION_DIR = 'new-project-integration-sandbox' diff --git a/packages/framework-integration-tests/integration/provider-unaware/functionality/scheduled-commands.integration.ts b/packages/framework-integration-tests/integration/provider-unaware/functionality/scheduled-commands.integration.ts index a138e2d2c..e3f74d8ea 100644 --- a/packages/framework-integration-tests/integration/provider-unaware/functionality/scheduled-commands.integration.ts +++ b/packages/framework-integration-tests/integration/provider-unaware/functionality/scheduled-commands.integration.ts @@ -24,7 +24,7 @@ describe('Scheduled commands', () => { }, (result) => !!result?.data?.CartReadModel, 10000, - 90000 // CheckCartCount is run every minute, we need to give this test enough time to make sure AWS does the first call + 90000 // CheckCartCount is run every minute, we need to give this test enough time to make sure that the cloud provider does the first call ) const cartReadModel = cartData?.data?.CartReadModel diff --git a/packages/framework-provider-aws-infrastructure/package.json b/packages/framework-provider-aws-infrastructure/package.json index e7de4fc7f..dd9ea59df 100644 --- a/packages/framework-provider-aws-infrastructure/package.json +++ b/packages/framework-provider-aws-infrastructure/package.json @@ -1,5 +1,6 @@ { "name": "@boostercloud/framework-provider-aws-infrastructure", + "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", "version": "1.20.0", "description": "Handle the Booster deployment process to AWS", "keywords": [ diff --git a/packages/framework-provider-aws/package.json b/packages/framework-provider-aws/package.json index b6c2c86c3..2ba01c912 100644 --- a/packages/framework-provider-aws/package.json +++ b/packages/framework-provider-aws/package.json @@ -1,5 +1,6 @@ { "name": "@boostercloud/framework-provider-aws", + "deprecated": "Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com).", "version": "1.20.0", "description": "Handle Booster's integration with AWS", "keywords": [ diff --git a/packages/framework-provider-azure/test/library/partition-keys.test.ts b/packages/framework-provider-azure/test/library/partition-keys.test.ts index a63edbfd6..f4d8363a3 100644 --- a/packages/framework-provider-azure/test/library/partition-keys.test.ts +++ b/packages/framework-provider-azure/test/library/partition-keys.test.ts @@ -1,7 +1,7 @@ import { partitionKeyForEvent, partitionKeyForSnapshot } from '../../src/library/partition-keys' import { expect } from '../expect' -describe('AWS keys helpers', () => { +describe('Azure keys helpers', () => { describe('partitionKeyForEvent', () => { it('should return the correct partition key for an event', () => { expect(partitionKeyForEvent('User', '123')).to.be.equal('User-123-event') diff --git a/packages/framework-provider-local/package.json b/packages/framework-provider-local/package.json index 9cef660c1..dceb9ba17 100644 --- a/packages/framework-provider-local/package.json +++ b/packages/framework-provider-local/package.json @@ -3,7 +3,7 @@ "version": "1.20.0", "description": "Debug your Booster projects locally", "keywords": [ - "framework-provider-aws" + "framework-provider-local" ], "author": "Boosterin Labs SLU", "homepage": "https://boosterframework.com", diff --git a/upgrade-v2.md b/upgrade-v2.md new file mode 100644 index 000000000..d918e8f80 --- /dev/null +++ b/upgrade-v2.md @@ -0,0 +1,7 @@ +# Upgrade from Booster v1.x.x to Booster v2.x.x + +Booster v2 introduces the following breaking changes: + +1. **Node 18 support**: Booster v2 has been upgraded to work with Node 18. If you're using an older version of Node, you'll need to upgrade it. +2. **Azure runtime upgraded to v4**: The Azure Functions Runtime has been upgraded from v3 to v4. If you're using Booster v1.x.x with Azure, you may need to perform a migration. Check out [Azure's migration guide](https://learn.microsoft.com/en-us/azure/azure-functions/migrate-version-3-version-4?tabs=net6-isolated%2Cazure-cli%2Cwindows&pivots=programming-language-typescript) for more details. +3. **The AWS provider has been deprecated**: Due to significant changes in recent versions of the AWS CDK, specifically the transition from CDKToolkit to a cli tool as noted [here](https://github.com/aws/aws-cdk-rfcs/issues/300), upgrading our current implementation would require a substantial rewrite. Given the open-source nature of our project without direct revenue streams, the ensuing maintenance costs are unfeasible. However, we are open to upgrading the AWS provider or creating an alternative implementation using other technologies like Terraform's CDKTF, with community contributions or sponsorships. If you're interested in supporting us, we welcome you to reach out via the official channels listed on the [Booster's website](https://boosterframework.com). diff --git a/website/docs/01_introduction.md b/website/docs/01_introduction.md index 90dd3ea31..875d5d6c1 100644 --- a/website/docs/01_introduction.md +++ b/website/docs/01_introduction.md @@ -34,7 +34,7 @@ Booster enhances developers' productivity by focusing only on business logic. Wr - **Focus on business value**: The only code that makes sense is the code that makes your application different from any other. - **Convention over configuration**: All the supporting code and configuration that is similar in all applications should be out of programmers’ sight. - **Truly Serverless**: Why go Serverless to avoid managing infrastructure when you can implicitly infer your Serverless architecture from your code and not even deal with that? -- **Effective Multicloud**: Booster design makes it possible to run the same application in AWS or Azure with no code changes in your application. +- **Effective Multicloud**: Booster design makes it possible to run the same application in any of the supported cloud providers with no code changes in your application. - **Scale smoothly**: The code you write to handle your first 100 users will still work to handle your first million. You won't need to rewrite your application when it succeeds. - **Event-source and CQRS**: Our world is event-driven, businesses are event-driven, and modern software maps better to reality when it’s event-driven. - **Principle of Abstraction**: Building an application is hard enough to have to deal with recurring low-level details like SQL, API design, or authentication mechanisms, so we tend to build more semantic abstractions on top of them. diff --git a/website/docs/02_getting-started/coding.mdx b/website/docs/02_getting-started/coding.mdx index 1ccbc79ba..18a8a0c9e 100644 --- a/website/docs/02_getting-started/coding.mdx +++ b/website/docs/02_getting-started/coding.mdx @@ -22,8 +22,8 @@ the instructions. After some prompted questions, the CLI will ask you to select ```shell ? What's the package name of your provider infrastructure library? (Use arrow keys) -❯ @boostercloud/framework-provider-aws (AWS) @boostercloud/framework-provider-azure (Azure) +❯ @boostercloud/framework-provider-aws (AWS) - Deprecated Other ``` diff --git a/website/docs/06_graphql.md b/website/docs/06_graphql.md index d50d576be..87611db41 100644 --- a/website/docs/06_graphql.md +++ b/website/docs/06_graphql.md @@ -625,7 +625,6 @@ query { - Subscriptions don't work for the events API yet - You can only query events, but not write them through this API. Use a command for that. -- Currently, only available on the AWS provider. ## Filter & Pagination diff --git a/website/docs/10_going-deeper/testing.md b/website/docs/10_going-deeper/testing.md index d029cad66..a3e3f005b 100644 --- a/website/docs/10_going-deeper/testing.md +++ b/website/docs/10_going-deeper/testing.md @@ -7,6 +7,7 @@ Booster applications are fully tested by default. This means that you can be sur To properly test a Booster application, you should create a `test` folder at the same level as the `src` one. Apart from that, tests' names should have the `.test.ts` format. When a Booster application is generated, you will have a script in a `package.json` like this: + ```typescript "scripts": { "test": "nyc --extension .ts mocha --forbid-only \"test/**/*.test.ts\"" diff --git a/website/docs/12_contributing.md b/website/docs/12_contributing.md index 16260ed43..2a428f3c0 100644 --- a/website/docs/12_contributing.md +++ b/website/docs/12_contributing.md @@ -26,7 +26,7 @@ Booster is divided in many different packages. The criteria to split the code in - They must be run separately, for instance, the CLI is run locally, while the support code for the project is run on the cloud. - They contain code that is used by at least two of the other packages. -- They're a vendor-specific specialization of some abstract part of the framework (for instance, all the code that is required by AWS is in separate packages). +- They're a vendor-specific specialization of some abstract part of the framework (for instance, all the code that is required by Azure is in separate packages). The packages are managed using [rush](https://rushjs.io/) and [npm](https://npmjs.com), if you run `rush build`, it will build all the packages. @@ -35,8 +35,8 @@ The packages are published to `npmjs` under the prefix `@boostercloud/`, their p - `cli` - You guessed it! This package is the `boost` command-line tool, it interacts only with the core package in order to load the project configuration. The specific provider packages to interact with the cloud providers are loaded dynamically from the project config. - `framework-core` - This one contains all the framework runtime vendor-independent logic. Stuff like the generation of the config or the commands and events handling happens here. The specific provider packages to interact with the cloud providers are loaded dynamically from the project config. - `framework-integration-tests` - Implements integration tests for all supported vendors. Tests are run on real infrastructure using the same mechanisms than a production application. This package `src` folder includes a synthetic Booster application that can be deployed to a real provider for testing purposes. -- `framework-provider-aws` - Implements all the required adapters to make the booster core run on top of AWS technologies like Lambda and DynamoDB using the AWS SDK under the hoods. -- `framework-provider-aws-infrastructure` - Implements all the required adapters to allow Booster applications to be deployed to AWS using the AWS CDK under the hoods. +- `framework-provider-aws` (Currently Deprecated) - Implements all the required adapters to make the booster core run on top of AWS technologies like Lambda and DynamoDB using the AWS SDK under the hoods. +- `framework-provider-aws-infrastructure` (Currently Deprecated) - Implements all the required adapters to allow Booster applications to be deployed to AWS using the AWS CDK under the hoods. - `framework-provider-local` - Implements all the required adapters to run the Booster application on a local express server to be able to debug your code before deploying it to a real cloud provider. - `framework-provider-local-infrastructure` - Implements all the required code to run the local development server. - `framework-types` - This package defines types that the rest of the project will use. This is useful for avoiding cyclic dependencies. Note that this package should not contain stuff that are not types, or very simple methods related directly to them, i.e. a getter or setter. This package defines the main booster concepts like: @@ -225,7 +225,7 @@ The Booster Framework project is organized following the ["rush monorepo"](https - The "package.json" files that are on each package root should contain the dependencies used by that specific package. Be sure to correctly differentiate which dependency is only for development and which one is for production. -Finally, **always use exact numbers for dependency versions**. This means that if you want to add the dependency "aws-sdk" in version 1.2.3, you should add `"aws-sdk": "1.2.3"` to the corresponding "package.json" file, and never `"aws-sdk": "^1.2.3"` or `"aws-sdk": "~1.2.3"`. This restriction comes from hard problems we've had in the past. +Finally, **always use exact numbers for dependency versions**. This means that if you want to add the dependency "graphql" in version 1.2.3, you should add `"graphql": "1.2.3"` to the corresponding "package.json" file, and never `"graphql": "^1.2.3"` or `"graphql": "~1.2.3"`. This restriction comes from hard problems we've had in the past. ### Running unit tests @@ -249,15 +249,36 @@ Integration tests are run automatically in Github Actions when a PR is locked, b These are the available scripts to run integration tests: -- `rushx integration -v`: Run all the integration test suites in the right order. -- `rushx integration/aws-deploy -v`: This test just checks that the sample project in `packages/framework-integration-tests/src` can be successfully deployed to AWS. The deployment process takes several minutes and this project is used by all the other AWS integration tests, so it's a requirement to run this test before. -- `rushx integration/aws-func -v`: AWS functional integration tests. They stress the deployed app write API and checks that the results are the expected ones both in the databases and the read APIs. -- `rushx integration/end-to-end -v`: Runs complete and realistic use cases on several cloud providers. This tests are intended to verify that a single project can be deployed to different cloud providers. Currently, only AWS is implemented though. -- `rushx integration/aws-nuke -v`: This test checks that the application deployed to AWS can be properly nuked. This test should be the last one after other test suites related to AWS have finished. -- `rushx integration/local -v`: Checks that the test application can be launched locally and that the APIs and the databases behave as expected. -- `rushx integration/cli -v`: Checks cli commands and check that they produce the expected results. - -AWS integration tests are run in real AWS resources, so you'll need to have your AWS credentials properly set in your development machine. By default, the sample project will be deployed to your default account. Basically, if you can deploy a Booster project to AWS, you should be good to go ([See more details about setting up an AWS account in the docs](https://github.com/boostercloud/booster/tree/main/docs#set-up-an-aws-account)). Notice that while all resources used by Booster are included in the AWS free tier, running these tests in your own AWS account could incur in some expenses. +1. **General Integration Tests:** + - `rushx integration -v`: Run all integration test scripts. + +2. **CLI Integration Tests:** + - `rushx integration/cli -v`: Tests CLI commands and verifies that they produce the expected results. + +3. **Local Integration Tests:** + - `rushx integration/local -v`: Runs all integration scripts in the local development server. + - `rushx integration/local-ongoing -v`: Runs the start and stop integration tests. + - `rushx integration/local-start -v`: Checks the start functionality of the local environment. + - `rushx integration/local-func -v`: Functional tests for the local environment. + - `rushx integration/local-end-to-end -v`: Runs end-to-end tests in the local environment. + - `rushx integration/local-stop -v`: Checks the stop functionality of the local environment. + +4. **AWS Integration Tests:** + - `rushx integration/aws -v`: Runs all integration test scripts for provider AWS. + - `rushx integration/aws-deploy -v`: Tests the deployment of a sample project to AWS. + - `rushx integration/aws-func -v`: Runs functional tests on AWS, stressing the deployed app's write API and verifying the results in databases and read APIs. + - `rushx integration/aws-end-to-end -v`: Performs end-to-end tests on AWS. + - `rushx integration/aws-load -v`: (Currently skipped) Intended for load tests on AWS. + - `rushx integration/aws-nuke -v`: Verifies that the deployed application on AWS can be properly nuked. + +5. **Azure Integration Tests:** + - `rushx integration/azure -v`: Runs all integration test scripts for provider Azure. + - `rushx integration/azure-deploy -v`: Tests the deployment of a project to Azure. + - `rushx integration/azure-func -v`: Runs functional tests on Azure. + - `rushx integration/azure-end-to-end -v`: Performs end-to-end tests on Azure. + - `rushx integration/azure-nuke -v`: Verifies that the deployed application on Azure can be properly nuked. + +Azure and AWS integration tests run in real environments, so you'll need to have your credentials properly set in your development machine in order to run them. They will deploy a sample project to your default account, run the tests and nuke the application when the process finishes. Notice that running integration tests in your cloud account could incur in some expenses. ### Github flow