Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ deployment/ecr/**/*.jar
.idea
source/test/
**/__pycache__/
build
git-info

.pnp
.pnp.js
Expand All @@ -36,4 +38,4 @@ source/metrics-utils/*.js
source/metrics-utils/*.d.ts
source/metrics-utils/**/*.d.ts
source/metrics-utils/**/*.js
source/metrics-utils/dist/
source/metrics-utils/dist/
21 changes: 20 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [3.4.1] - 2025-08-11

### Security

- Update libxml2 to fix [CVE-2025-49794](https://nvd.nist.gov/vuln/detail/CVE-2025-49794)
- Update libxml2 to fix [CVE-2025-49795](https://nvd.nist.gov/vuln/detail/CVE-2025-49795)
- Update libxml2 to fix [CVE-2025-49796](https://nvd.nist.gov/vuln/detail/CVE-2025-49796)
- Update java-21-amazon-corretto to fix [CVE-2025-30749](https://nvd.nist.gov/vuln/detail/CVE-2025-30749)
- Update java-21-amazon-corretto to fix [CVE-2025-50106](https://nvd.nist.gov/vuln/detail/CVE-2025-50106)
- Update java-21-amazon-corretto to fix [CVE-2025-50049](https://nvd.nist.gov/vuln/detail/CVE-2025-50049)

### Fixed

- Fixed issue pertaining to https://github.com/aws-solutions/distributed-load-testing-on-aws/issues/244

### Added

- Add stable tag feature to get patched version of the solution ecr image.

## [3.4.0] - 2025-07-23

### Added
Expand All @@ -24,7 +43,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Security

- Update form-data to fix [CVE-2025-7783](https://avd.aquasec.com/nvd/cve-2025-7783)
- Update form-data to fix [CVE](CVE-2025-7783 - https://avd.aquasec.com/nvd/cve-2025-7783)

## [3.3.10] - 2025-07-01

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ export BUCKET_NAME=$BUCKET_PREFIX-$REGION # full bucket name where the code will
export SOLUTION_NAME=my-solution-name
export VERSION=my-version # version number for the customized code
export PUBLIC_ECR_REGISTRY=public.ecr.aws/aws-solutions # replace with the container registry and image if you want to use a different container image
export PUBLIC_ECR_TAG=v3.4.0 # replace with the container image tag if you want to use a different container image
export PUBLIC_ECR_TAG=v3.4_stable # replace with the container image tag if you want to use a different container image
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When a future developer tries to update the version in the solution, they might search for 3.4.1, and they won't see that this line needs to change.

```

- Build the distributable.
Expand Down
2 changes: 1 addition & 1 deletion VERSION.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.4.0
3.4.1
2 changes: 1 addition & 1 deletion solution-manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
id: SO0062
name: distributed-load-testing-on-aws
version: 3.4.0
version: v3.4.1
cloudformation_templates:
- template: distributed-load-testing-on-aws.template
main_template: true
Expand Down
6 changes: 3 additions & 3 deletions source/api-services/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion source/api-services/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "api-services",
"version": "3.4.0",
"version": "3.4.1",
"description": "REST API micro services",
"repository": {
"type": "git",
Expand Down
6 changes: 3 additions & 3 deletions source/console/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion source/console/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "distributed-load-testing-on-aws-ui",
"version": "3.4.0",
"version": "3.4.1",
"private": true,
"license": "Apache-2.0",
"author": {
Expand Down
6 changes: 3 additions & 3 deletions source/custom-resource/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion source/custom-resource/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "custom-resource",
"version": "3.4.0",
"version": "3.4.1",
"description": "cfn custom resources for distributed load testing on AWS workflow",
"repository": {
"type": "git",
Expand Down
2 changes: 1 addition & 1 deletion source/infrastructure/cdk.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"@aws-cdk/core:stackRelativeExports": false,
"@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": false,
"solutionId": "SO0062",
"solutionVersion": "custom-v3.4.0",
"solutionVersion": "custom-v3.4.1",
"solutionName": "distributed-load-testing-on-aws"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

import { CfnParameter } from "aws-cdk-lib";
import { Construct } from "constructs";

export interface CidBlockParameterProps {
default: string;
description: string;
constraintDescription: string;
}

export class CidrBlockCfnParameters extends Construct {
readonly vpcCidrBlock: CfnParameter;
readonly subnetACidrBlock: CfnParameter;
readonly subnetBCidrBlock: CfnParameter;

constructor(scope: Construct, id: string) {
super(scope, id);

const getCfnParameter = (scope: Construct, id: string, props: CidBlockParameterProps) => {
return new CfnParameter(scope, id, {
type: "String",
default: props.default,
description: props.description,
allowedPattern: "(^$|(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})$)",
constraintDescription: props.constraintDescription,
});
};

// VPC CIDR Block
this.vpcCidrBlock = getCfnParameter(this, "VpcCidrBlock", {
default: "192.168.0.0/16",
description: "You may leave this parameter blank if you are using existing VPC",
constraintDescription: "The VPC CIDR block must be a valid IP CIDR range of the form x.x.x.x/x.",
});

// Subnet A CIDR Block
this.subnetACidrBlock = getCfnParameter(this, "SubnetACidrBlock", {
default: "192.168.0.0/20",
description: "CIDR block for subnet A of the AWS Fargate VPC",
constraintDescription: "The subnet CIDR block must be a valid IP CIDR range of the form x.x.x.x/x.",
});

// Subnet B CIDR Block
this.subnetBCidrBlock = getCfnParameter(this, "SubnetBCidrBlock", {
default: "192.168.16.0/20",
constraintDescription: "The subnet CIDR block must be a valid IP CIDR range of the form x.x.x.x/x.",
description: "CIDR block for subnet B of the AWS Fargate VPC",
});

this.vpcCidrBlock.overrideLogicalId("VpcCidrBlock");
this.subnetACidrBlock.overrideLogicalId("SubnetACidrBlock");
this.subnetBCidrBlock.overrideLogicalId("SubnetBCidrBlock");
}
}
12 changes: 2 additions & 10 deletions source/infrastructure/lib/common-resources/common-resources.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,6 @@ interface ICommonResources {
customResourceLambda: CustomResourceLambda;
}

export interface AppRegistryApplicationProps {
readonly description: string;
readonly stackType: string;
readonly solutionId: string;
readonly applicationName: string;
readonly solutionVersion: string;
}

/**
* Distributed Load Testing on AWS common resources construct.
* Creates a CloudWatch logs policy and an S3 bucket to store logs.
Expand All @@ -31,7 +23,7 @@ export class CommonResources extends Construct implements ICommonResources {
public readonly s3LogsBucket: Bucket;
public readonly customResourceLambda: CustomResourceLambda;

constructor(scope: Construct, id: string, solution: Solution) {
constructor(scope: Construct, id: string, solution: Solution, stackType: string) {
super(scope, id);

const logGroupResourceArn = Stack.of(this).formatArn({
Expand All @@ -52,7 +44,7 @@ export class CommonResources extends Construct implements ICommonResources {

this.s3LogsBucket = this.createLogsBucket();

const customResourceLambda = new CustomResourceLambda(this, "CustomResource", solution);
const customResourceLambda = new CustomResourceLambda(this, "CustomResource", solution, stackType);
customResourceLambda.addPolicy([this.cloudWatchLogsPolicy]);
this.customResourceLambda = customResourceLambda;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ interface ICustomResourceLambda {
export class CustomResourceLambda extends Construct implements ICustomResourceLambda {
public readonly nodejsLambda: NodejsFunction;

constructor(scope: Construct, id: string, solution: Solution) {
constructor(scope: Construct, id: string, solution: Solution, stackType: string) {
super(scope, id);

const policyForCustomResource = new PolicyDocument({
Expand Down Expand Up @@ -67,7 +67,7 @@ export class CustomResourceLambda extends Construct implements ICustomResourceLa
description: "CFN Lambda backed custom resource to deploy assets to s3",
handler: "index.handler",
role: customResourceRole,
entry: path.join(__dirname, "../../../custom-resource/main-index.js"),
entry: path.join(__dirname, `../../../custom-resource/${stackType}-index.js`),
runtime: Runtime.NODEJS_20_X,
timeout: Duration.seconds(120),
environment: {
Expand Down
Loading