Skip to content

Commit ab43858

Browse files
authored
Merge pull request #562 from aws-solutions/release/v2.2.0
update to v2.2.0
2 parents c022649 + c2a4409 commit ab43858

File tree

388 files changed

+80260
-103832
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

388 files changed

+80260
-103832
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ source/frontend/cypress/videos
5252
**/.nyc_output
5353

5454
# build
55+
source/backend/functions/account-import-templates-api/src/global-resources.template
5556
source/backend/functions/lambda-layers/aws_sdk/python
5657
source/backend/functions/lambda-layers/cr_helper/python
5758
source/backend/functions/lambda-layers/decorators/python/*

CHANGELOG.md

+43-4
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,50 @@ All notable changes to this project are documented in this file.
55
Based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.2.0] - 2024-11-20
9+
10+
### Added
11+
- Support for custom identity providers (SAML and OIDC) [61](https://github.com/aws-solutions/workload-discovery-on-aws/issues/61) [510](https://github.com/aws-solutions/workload-discovery-on-aws/issues/510)
12+
- Export of diagrams to myApplications
13+
- Export of diagrams to SVG
14+
- Application Insights dashboard to monitor health of solution
15+
- Number of supported resource types is over 450, newly added types include, but are not limited to:
16+
- `AWS::AppSync::DataSource`
17+
- `AWS::AppSync::Resolver`
18+
- `AWS::MediaConnect::Flow`
19+
- `AWS::MediaConnect::FlowEntitlement`
20+
- `AWS::MediaConnect::FlowSource`
21+
- `AWS::MediaConnect::FlowVpcInterface`
22+
- `AWS::MediaPackage::PackagingConfiguration`
23+
- `AWS::MediaPackage::PackagingGroup`
24+
- `AWS::ServiceCatalogAppRegistry::Application`
25+
- Increase in number of relationships not captured by AWS Config, including, but not limited to:
26+
- `AWS::AppSync::DataSource` -> `AWS::Lambda::Function`/`AWS::DynamoDB::Table`/`AWS::Events::EventBus`/`AWS::RDS::DBCluster`/`AWS::OpenSearchService::Domain`
27+
- `AWS::AppSync::Resolver` -> `AWS::AppSync::GraphQLApi`/`AWS::AppSync::DataSource`
28+
- `AWS::S3::Bucket` -> `AWS::Lambda::Function`/`AWS::SQS::Queue`/`AWS::SNS::Topic`
29+
- `AWS::IAM::InstanceProfile` -> `AWS::IAM::Role`
30+
- `AWS::MediaConnect::FlowEntitlement` -> `AWS::MediaConnect::Flow`
31+
- `AWS::MediaConnect::FlowSource` -> `AWS::MediaConnect::Flow`/`AWS::MediaConnect::FlowEntitlement`/`AWS::MediaConnect::FlowVpcInterface`/`AWS::IAM::Role`/`AWS::SecretsManager::Secret`
32+
- `AWS::MediaConnect::FlowVpcInterface` -> `AWS::EC2::VPC`/`AWS::EC2::Subnet`/`AWS::EC2::SecurityGroup`/`AWS::EC2::NetworkInterface`
33+
- `AWS::MediaPackage::PackagingConfiguration` -> `AWS::MediaPackage::PackagingGroup`/`AWS::IAM::Role`
34+
35+
### Changed
36+
- Multiple resources can now be selected in the search bar on the Diagram page
37+
- Migrate AppRegistry integration to myApplications for monitoring solution costs and usage.
38+
- Migrate JavaScript lambda functions and the discovery process from CommonJS to ESM
39+
- Update Neptune Engine version to `1.3.1.0`.
40+
- Update OpenSearch version to `2.11.0`.
41+
42+
### Fixed
43+
- `AWS::EC2::NetworkInterface` -> `AWS::OpenSearchService::Domain` relationships are not discovered
44+
- Failed writes to OpenSearch should stop the corresponding write being made to Neptune
45+
- Metrics lambda times out when hundreds of accounts have been imported
46+
847
## [2.1.15] - 2024-9-30
948

1049
### Fixed
1150

12-
- Cron expression for running discovery process every 24 hours. [546](https://github.com/aws-solutions/workload-discovery-on-aws/discussions/546)
51+
- Cron expression for running discovery process every 24 hours. [546](https://github.com/aws-solutions/workload-discovery-on-aws/issues/546)
1352
- Security [vulnerability](https://github.com/advisories/GHSA-gcx4-mw62-g8wm) in `rollup`.
1453
- Security [vulnerability](https://github.com/advisories/GHSA-9cwx-2883-4wfx) in `vite`.
1554
- Security [vulnerability](https://github.com/advisories/GHSA-64vr-g452-qvp3) in `vite`.
@@ -18,9 +57,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1857

1958
### Fixed
2059

21-
- Cron expression for running discovery process every 24 hours. [546](https://github.com/aws-solutions/workload-discovery-on-aws/discussions/546)
22-
- Intermittent failures in `cleanup-bucket` custom resource. [545](https://github.com/aws-solutions/workload-discovery-on-aws/discussions/545)
23-
- SCP error relating to `putConfigAggregator` when adding accounts in an AWS organisation using Control Tower. [544](https://github.com/aws-solutions/workload-discovery-on-aws/discussions/544)
60+
- Cron expression for running discovery process every 24 hours. [546](https://github.com/aws-solutions/workload-discovery-on-aws/issues/546)
61+
- Intermittent failures in `cleanup-bucket` custom resource. [545](https://github.com/aws-solutions/workload-discovery-on-aws/issues/545)
62+
- SCP error relating to `putConfigAggregator` when adding accounts in an AWS organisation using Control Tower. [544](https://github.com/aws-solutions/workload-discovery-on-aws/issues/544)
2463
- Security [vulnerability](https://github.com/advisories/GHSA-952p-6rrq-rcjv) in `micromatch`.
2564
- Security [vulnerability](https://github.com/advisories/GHSA-9wv6-86v2-598j) in `path-to-regexp`.
2665
- Security [vulnerability](https://github.com/advisories/GHSA-m6fv-jmcg-4jfg) in `send`.

NOTICE.txt

+12-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ license-expression
2828
py-serializable
2929
@aws-amplify/ui-react
3030
@aws-sdk/client-api-gateway
31+
@aws-sdk/client-appsync
32+
@aws-sdk/client-athena
3133
@aws-sdk/client-cognito-identity-provider
3234
@aws-sdk/client-config-service
3335
@aws-sdk/client-dynamodb
@@ -39,9 +41,12 @@ py-serializable
3941
@aws-sdk/client-elastic-load-balancing-v2
4042
@aws-sdk/client-iam
4143
@aws-sdk/client-lambda
44+
@aws-sdk/client-mediaconnect
4245
@aws-sdk/client-opensearch
4346
@aws-sdk/client-organizations
47+
@aws-sdk/client-resource-groups-tagging-api
4448
@aws-sdk/client-s3
49+
@aws-sdk/client-service-catalog-appregistry
4550
@aws-sdk/client-sns
4651
@aws-sdk/client-ssm
4752
@aws-sdk/client-sts
@@ -58,7 +63,10 @@ py-serializable
5863
**********************
5964
MIT License
6065
**********************
66+
@aws-lambda-powertools/logger
67+
@uiw/react-json-view
6168
add
69+
ajv
6270
pip
6371
cfn-nag
6472
csv-parse
@@ -108,6 +116,8 @@ mocha
108116
rewire
109117
socks5-https-client
110118
moment-timezone
119+
memoize
120+
quick-lru
111121
unzipper
112122
mime-types
113123
node-fetch
@@ -116,7 +126,7 @@ undici
116126
acorn
117127
msw
118128
aws-opensearch-connector
119-
athena-express
129+
athena-express-plus
120130
most
121131
@tuplo/dynoexpr
122132
aws-sdk-client-mock
@@ -163,6 +173,7 @@ pkgutil_resolve_name
163173
pyrsistent
164174
@supercharge/promise-pool
165175
@most/core
176+
zod
166177

167178
**********************
168179
BSD-2-Clause

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Workload Discovery on AWS (v2.1.15)
1+
# Workload Discovery on AWS (v2.2.0)
22

33
Workload Discovery on AWS is a tool that quickly visualizes AWS Cloud workloads as architecture diagrams.
44
You can use the solution to build, customize, and share detailed workload visualizations based on live data from AWS.
@@ -70,7 +70,7 @@ The cost component processes [AWS Cost and Usage Reports](https://docs.aws.amazo
7070
(AWS CUR) to make cost data available in Workload Discovery. To use this feature, you must [create a report in AWS CUR](https://docs.aws.amazon.com/cur/latest/userguide/cur-create.html)
7171
to deliver the reports to the ```CostAndUsageReportBucket``` Amazon S3 bucket. When an AWS CUR is delivered, it
7272
triggers an [AWS Lambda](http://aws.amazon.com/lambda) function to trigger a AWS Glue Crawler that will update a
73-
table ready for Amazon Athena to query. You can query these AWS CURs via the Perspectie UI. You can bring in cost
73+
table ready for Amazon Athena to query. You can query these AWS CURs via the Workload Discovery UI. You can bring in cost
7474
data from other accounts discoverable to Workload Discovery by setting up a AWS CUR and setting up replication between
7575
the S3 bucket in the discoverable account and the ```CostAndUsageReportBucket```
7676

deployment/build-open-source-dist.sh

+2-3
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,8 @@ gitzip -d $dist_dir/$1.zip \
4343
-x "codescan-*.sh" \
4444
-x "buildspec.yml" \
4545
-x ".viperlight*" \
46-
-x "source/infrastructure" \
47-
-x "docs" \
46+
-x "internal" \
4847
-x "sonar-project.properties" \
4948
-x "solution-manifest.yaml" \
50-
-x ".nightswatch/*" \
49+
-x ".nightswatch" \
5150
-x "Config"

deployment/build-s3-dist.sh

+35-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ source_dir="$template_dir/../source"
3131
nested_stack_template_dir="$source_dir/cfn/templates"
3232

3333
auditDeps () {
34-
npm_config_yes=true npx better-npm-audit audit --production -l high
34+
npm_config_yes=true npx better-npm-audit audit --production
3535
OUTPUT=$?
3636
if [[ "$OUTPUT" -eq 0 ]];
3737
then
@@ -62,6 +62,7 @@ echo "--------------------------------------------------------------------------
6262
cp "$nested_stack_template_dir"/*.template "$build_dist_dir"
6363
cd "$build_dist_dir"
6464
sedi "s|<BUCKET_NAME>|${1}|g; s|<SOLUTION_NAME>|${2}|g; s|<VERSION>|${3}|g; s|<IMAGE_VERSION>|${4}|g" main.template
65+
sedi "s|<VERSION>|${3}|g;" org-global-resources.template
6566

6667
echo "------------------------------------------------------------------------------"
6768
echo "[Packing] Main Distribution Template"
@@ -118,6 +119,14 @@ rm -rf dist && mkdir dist
118119
zip -q -r9 dist/cleanup-ecr.zip cleanup_ecr.py
119120
cp ./dist/cleanup-ecr.zip "${build_dist_dir}/cleanup-ecr.zip"
120121

122+
echo "------------------------------------------------------------------------------"
123+
echo "[Rebuild] Identity Provider Custom Resource"
124+
echo "------------------------------------------------------------------------------"
125+
cd "${source_dir}/backend/functions/identity-provider"
126+
rm -rf dist && mkdir dist
127+
zip -q -r9 dist/identity-provider.zip identity_provider.py
128+
cp ./dist/identity-provider.zip "${build_dist_dir}/identity-provider.zip"
129+
121130
echo "------------------------------------------------------------------------------"
122131
echo "[Rebuild] Drawio Lambda"
123132
echo "------------------------------------------------------------------------------"
@@ -191,6 +200,15 @@ auditDeps
191200
npm run build
192201
cp ./dist/cur-setup.zip "${build_dist_dir}/cur-setup.zip"
193202

203+
204+
echo "------------------------------------------------------------------------------"
205+
echo "[Rebuild] Metrics Uuid Custom Resource"
206+
echo "------------------------------------------------------------------------------"
207+
cd "${source_dir}/backend/functions/metrics-uuid"
208+
rm -rf dist && mkdir dist
209+
zip -q -r9 dist/metrics_uuid.zip metrics_uuid.py
210+
cp ./dist/metrics_uuid.zip "${build_dist_dir}/metrics_uuid.zip"
211+
194212
echo "------------------------------------------------------------------------------"
195213
echo "[Rebuild] Metrics"
196214
echo "------------------------------------------------------------------------------"
@@ -199,6 +217,22 @@ auditDeps
199217
npm run build
200218
cp ./dist/metrics.zip "${build_dist_dir}/metrics.zip"
201219

220+
echo "------------------------------------------------------------------------------"
221+
echo "[Rebuild] Metrics Subscription Filter"
222+
echo "------------------------------------------------------------------------------"
223+
cd "${source_dir}/backend/functions/metrics-subscription-filter"
224+
auditDeps
225+
npm run build
226+
cp ./dist/metrics-subscription-filter.zip "${build_dist_dir}/metrics-subscription-filter.zip"
227+
228+
echo "------------------------------------------------------------------------------"
229+
echo "[Rebuild] Export to myApplication"
230+
echo "------------------------------------------------------------------------------"
231+
cd "${source_dir}/backend/functions/myapplications"
232+
auditDeps
233+
npm run build
234+
cp ./dist/myapplications.zip "${build_dist_dir}/myapplications.zip"
235+
202236
echo "------------------------------------------------------------------------------"
203237
echo "[Rebuild] Discovery"
204238
echo "------------------------------------------------------------------------------"

deployment/run-unit-tests.sh

+29
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@ pipenv install -q --dev
3232
pipenv run pytest --cov-report xml --cov .
3333
echo "$(awk '{gsub(/<source>.*\/source\//, "<source>source/")}1' coverage.xml)" > coverage.xml
3434

35+
echo "------------------------------------------------------------------------------"
36+
echo "[Test] Identity Provider Custom Resource"
37+
echo "------------------------------------------------------------------------------"
38+
cd $source_dir/backend/functions/identity-provider
39+
pipenv install --dev
40+
pipenv run pytest --cov-report xml --cov .
41+
echo "$(awk '{gsub(/<source>.*\/source\//, "<source>source/")}1' coverage.xml)" > coverage.xml
42+
3543
echo "------------------------------------------------------------------------------"
3644
echo "[Test] Account Import Templates"
3745
echo "------------------------------------------------------------------------------"
@@ -50,13 +58,34 @@ echo "--------------------------------------------------------------------------
5058
cd $source_dir/backend/functions/metrics
5159
npm run test:ci
5260

61+
echo "------------------------------------------------------------------------------"
5362
echo "[Test] Bucket cleanup Custom Resource"
5463
echo "------------------------------------------------------------------------------"
5564
cd $source_dir/backend/functions/cleanup-bucket
5665
pipenv install -q --dev
5766
pipenv run pytest --cov-report xml --cov .
5867
echo "$(awk '{gsub(/<source>.*\/source\//, "<source>source/")}1' coverage.xml)" > coverage.xml
5968

69+
echo "------------------------------------------------------------------------------"
70+
echo "[Test] Metrics UUID Custom Resource"
71+
echo "------------------------------------------------------------------------------"
72+
cd $source_dir/backend/functions/metrics-uuid
73+
pipenv install -q --dev
74+
pipenv run pytest --cov-report xml --cov .
75+
echo "$(awk '{gsub(/<source>.*\/source\//, "<source>source/")}1' coverage.xml)" > coverage.xml
76+
77+
echo "------------------------------------------------------------------------------"
78+
echo "[Test] Metrics Subscription Filter"
79+
echo "------------------------------------------------------------------------------"
80+
cd $source_dir/backend/functions/metrics-subscription-filter
81+
npm run test:ci
82+
83+
echo "------------------------------------------------------------------------------"
84+
echo "[Test] myApplications Resolver"
85+
echo "------------------------------------------------------------------------------"
86+
cd $source_dir/backend/functions/myapplications
87+
npm run test:ci
88+
6089
echo "------------------------------------------------------------------------------"
6190
echo "[Test] Discovery"
6291
echo "------------------------------------------------------------------------------"

source/backend/discovery/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM public.ecr.aws/amazonlinux/amazonlinux:2023
1+
FROM public.ecr.aws/amazonlinux/amazonlinux:2023-minimal
22

33
RUN dnf install -y shadow-utils
44

@@ -18,4 +18,4 @@ RUN npm ci --omit=dev
1818

1919
COPY src/ src/
2020

21-
CMD ["node", "src/index.js"]
21+
CMD ["node", "src/index.mjs"]

0 commit comments

Comments
 (0)