From 15d3e31bb9d316050a3a7362da3ad369162f6b81 Mon Sep 17 00:00:00 2001 From: Reet Takkar Date: Wed, 17 Sep 2025 16:09:32 -0400 Subject: [PATCH] Upgrade to version v1.2.1 --- CHANGELOG.md | 7 + CONTRIBUTING.md | 6 +- NOTICE.txt | 53 ++++ deployment/build-s3-dist.sh | 2 +- source/infrastructure/bin/dus.ts | 2 +- source/infrastructure/cdk.json | 2 +- source/infrastructure/lib/dus-stack.ts | 13 +- .../lib/search/indexed-storage.ts | 9 +- .../infrastructure/lib/ui-infrastructure.ts | 3 +- .../lib/utils/app-registry-aspects.ts | 153 ----------- source/infrastructure/package-lock.json | 4 +- source/infrastructure/package.json | 2 +- source/infrastructure/test/dus-stack.test.ts | 13 +- .../test/mock-lambda-func/java-lambda/pom.xml | 2 +- .../node-lambda/package-lock.json | 4 +- .../mock-lambda-func/node-lambda/package.json | 2 +- .../python-lambda/pyproject.toml | 2 +- .../test/mock-ui/package-lock.json | 4 +- .../infrastructure/test/mock-ui/package.json | 2 +- .../test/utils/app-registry.test.ts | 239 ------------------ .../create-presigned-url/package-lock.json | 4 +- .../lambda/create-presigned-url/package.json | 2 +- source/lambda/custom-resource/poetry.lock | 7 +- source/lambda/custom-resource/pyproject.toml | 2 +- .../lambda/entity-detection/package-lock.json | 4 +- source/lambda/entity-detection/package.json | 2 +- .../lambda/entity-detection/utils/generic.js | 2 +- source/lambda/fetch-records/package-lock.json | 4 +- source/lambda/fetch-records/package.json | 2 +- .../lambda/fetch-records/utils/env-setup.js | 5 +- .../lambda/get-inferences/package-lock.json | 4 +- source/lambda/get-inferences/package.json | 2 +- .../package-lock.json | 4 +- .../aws-node-user-agent-config/package.json | 2 +- .../layers/aws-sdk-lib/package-lock.json | 4 +- source/lambda/layers/aws-sdk-lib/package.json | 2 +- source/lambda/layers/aws_boto3/pyproject.toml | 2 +- .../layers/common-node-lib/package-lock.json | 4 +- .../layers/common-node-lib/package.json | 2 +- .../layers/custom-java-sdk-config/pom.xml | 2 +- .../layers/custom_boto3_init/poetry.lock | 2 +- .../layers/custom_boto3_init/pyproject.toml | 2 +- .../lambda/layers/custom_boto3_init/setup.py | 2 +- source/lambda/redact-content/pom.xml | 2 +- source/lambda/search/package-lock.json | 4 +- source/lambda/search/package.json | 2 +- .../send-notification/package-lock.json | 4 +- source/lambda/send-notification/package.json | 2 +- source/lambda/text-extract/package-lock.json | 4 +- source/lambda/text-extract/package.json | 2 +- .../lambda/upload-document/package-lock.json | 4 +- source/lambda/upload-document/package.json | 2 +- .../workflow-orchestrator/package-lock.json | 4 +- .../lambda/workflow-orchestrator/package.json | 2 +- source/package-lock.json | 6 - source/ui/package-lock.json | 13 +- source/ui/package.json | 2 +- 57 files changed, 156 insertions(+), 489 deletions(-) delete mode 100644 source/infrastructure/lib/utils/app-registry-aspects.ts delete mode 100644 source/infrastructure/test/utils/app-registry.test.ts delete mode 100644 source/package-lock.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 8201817..21b9df7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,13 @@ 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). +## [1.2.1] - 2025-09-17 + +### Security + +- Upgraded axios to `1.12.0` +- Fixed high severity vulnerabilities reported by GitHub CodeQL scans + ## [1.2.0] - 2025-09-11 ### Security diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d81723e..d6fe7cb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ information to effectively respond to your bug report or contribution. We welcome you to use the GitHub issue tracker to report bugs or suggest features. -When filing an issue, please check [existing open](https://github.com/aws-solutions/enhanced-document-understanding-on-aws/issues), or [recently closed](https://github.com/aws-solutions/enhanced-document-understanding-on-aws/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed20), issues to make sure somebody else hasn't already +When filing an issue, please check [existing open](https://github.com/aws-solutions/enhanced-document-understanding-on-aws/issues), or [recently closed](https://github.com/aws-solutions/enhanced-document-understanding-on-aws/issues?q=is:issue%20is:closed%20), issues to make sure somebody else hasn't already reported the issue. Please try to include as much information as you can. Details like these are incredibly useful: - A reproducible test case or series of steps @@ -54,6 +54,6 @@ If you discover a potential security issue in this project we ask that you notif ## Licensing -See the [LICENSE](https://github.com/aws-solutions/enhanced-document-understanding-on-aws/blob/master/LICENSE.txt) file for our project's licensing. We will ask you to confirm the licensing of your contribution. +See the [LICENSE](https://github.com/aws-solutions/enhanced-document-understanding-on-aws/blob/main/LICENSE.txt) file for our project's licensing. We will ask you to confirm the licensing of your contribution. -We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes. +We may ask you to sign a [Contributor License Agreement (CLA)](https://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes. diff --git a/NOTICE.txt b/NOTICE.txt index 64015f3..0d05dfd 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -26,6 +26,7 @@ tslib under the 0BSD license. uuid under the MIT license. @aws-amplify/cache under the Apache-2.0 license. @aws-amplify/core under the Apache-2.0 license. +@aws-cdk/cloud-assembly-schema under the Apache-2.0 license. @aws-crypto/sha256-js under the Apache-2.0 license. @aws-crypto/util under the Apache-2.0 license. @aws-sdk/types under the Apache-2.0 license. @@ -59,6 +60,7 @@ uuid under the MIT license. @aws-sdk/middleware-logger under the Apache-2.0 license. @aws-sdk/middleware-retry under the Apache-2.0 license. @aws-sdk/service-error-classification under the Apache-2.0 license. +async-function under the MIT license. react-native-get-random-values under the MIT license. react-native under the MIT license. @jest/types under the MIT license. @@ -91,6 +93,8 @@ csstype under the MIT license. @react-native-community/cli under the MIT license. commander under the MIT license. deepmerge under the MIT license. +default-browser under the MIT license. +default-browser-id under the MIT license. find-up under the MIT license. path-exists under the MIT license. fs-extra under the MIT license. @@ -125,6 +129,7 @@ signal-exit under the ISC license. strip-final-newline under the MIT license. ora under the MIT license. bl under the MIT license. +bundle-name under the MIT license. buffer under the MIT license. base64-js under the MIT license. ieee754 under the BSD-3-Clause license. @@ -137,6 +142,7 @@ cli-cursor under the MIT license. restore-cursor under the MIT license. cli-spinners under the MIT license. is-interactive under the MIT license. +is-inside-container under the MIT license. is-unicode-supported under the MIT license. log-symbols under the MIT license. strip-ansi under the MIT license. @@ -304,6 +310,7 @@ gensync under the MIT license. json5 under the MIT license. @babel/helper-plugin-utils under the MIT license. @babel/plugin-bugfix-firefox-class-in-computed-class-key under the MIT license. +@babel/plugin-bugfix-safari-class-field-initializer-scope under the MIT license. @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression under the MIT license. @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining under the MIT license. @babel/helper-skip-transparent-expression-wrappers under the MIT license. @@ -356,6 +363,7 @@ unicode-match-property-value-ecmascript under the MIT license. @babel/plugin-transform-destructuring under the MIT license. @babel/plugin-transform-dotall-regex under the MIT license. @babel/plugin-transform-duplicate-keys under the MIT license. +@babel/plugin-transform-duplicate-named-capturing-groups-regex under the MIT license. @babel/plugin-transform-dynamic-import under the MIT license. @babel/plugin-transform-exponentiation-operator under the MIT license. @babel/helper-builder-binary-assignment-operator-visitor under the MIT license. @@ -382,6 +390,7 @@ unicode-match-property-value-ecmascript under the MIT license. @babel/plugin-transform-private-property-in-object under the MIT license. @babel/plugin-transform-property-literals under the MIT license. @babel/plugin-transform-regenerator under the MIT license. +@babel/plugin-transform-regexp-modifiers under the MIT license. regenerator-transform under the MIT license. @babel/runtime under the MIT license. @babel/plugin-transform-reserved-words under the MIT license. @@ -469,6 +478,7 @@ is-docker under the MIT license. chrome-launcher under the Apache-2.0 license. lighthouse-logger under the Apache-2.0 license. marky under the Apache-2.0 license. +math-intrinsics under the MIT license. chromium-edge-launcher under the Apache-2.0 license. node-fetch under the MIT license. tr46 under the MIT license. @@ -542,6 +552,10 @@ metro-transform-worker under the MIT license. metro-minify-terser under the MIT license. terser under the BSD-2-Clause license. @jridgewell/source-map under the MIT license. +@js-sdsl/ordered-map under the MIT license. +@jsonjoy.com/base64 under the Apache-2.0 license. +@jsonjoy.com/json-pack under the Apache-2.0 license. +@jsonjoy.com/util under the Apache-2.0 license. acorn under the MIT license. serialize-error under the MIT license. throat under the MIT license. @@ -619,6 +633,8 @@ zen-observable under the MIT license. @aws-sdk/util-waiter under the Apache-2.0 license. @aws-sdk/client-personalize-events under the Apache-2.0 license. lodash under the MIT license. +lodash.camelcase under the MIT license. +long under the Apache-2.0 license. @aws-amplify/api under the Apache-2.0 license. @aws-amplify/api-graphql under the Apache-2.0 license. @aws-amplify/api-rest under the Apache-2.0 license. @@ -684,6 +700,7 @@ jackspeak under the BlueOak-1.0.0 license. eastasianwidth under the MIT license. @pkgjs/parseargs under the MIT license. package-json-from-dist under the BlueOak-1.0.0 license. +package-lock-only under the ISC license. ----!!!! path-scurry under the BlueOak-1.0.0 license. minipass under the ISC license. change-case under the MIT license. @@ -797,6 +814,16 @@ redux-thunk under the MIT license. reselect under the MIT license. bootstrap under the MIT license. @popperjs/core under the MIT license. +@protobufjs/aspromise under the BSD-3-Clause license. +@protobufjs/base64 under the BSD-3-Clause license. +@protobufjs/codegen under the BSD-3-Clause license. +@protobufjs/eventemitter under the BSD-3-Clause license. +@protobufjs/fetch under the BSD-3-Clause license. +@protobufjs/float under the BSD-3-Clause license. +@protobufjs/inquire under the BSD-3-Clause license. +@protobufjs/path under the BSD-3-Clause license. +@protobufjs/pool under the BSD-3-Clause license. +@protobufjs/utf8 under the BSD-3-Clause license. ramda under the MIT license. react-bootstrap under the MIT license. @restart/hooks under the MIT license. @@ -860,6 +887,7 @@ get-package-type under the MIT license. istanbul-lib-instrument under the BSD-3-Clause license. istanbul-lib-coverage under the BSD-3-Clause license. test-exclude under the ISC license. +text-decoder under the Apache-2.0 license. fast-json-stable-stringify under the MIT license. jest-haste-map under the MIT license. @types/graceful-fs under the MIT license. @@ -887,6 +915,7 @@ istanbul-lib-report under the BSD-3-Clause license. istanbul-lib-source-maps under the BSD-3-Clause license. istanbul-reports under the BSD-3-Clause license. html-escaper under the MIT license. +hyperdyperid under the MIT license. string-length under the MIT license. char-regex under the MIT license. v8-to-istanbul under the ISC license. @@ -970,6 +999,7 @@ jest-environment-jsdom under the MIT license. @types/jsdom under the MIT license. @types/tough-cookie under the MIT license. parse5 under the MIT license. +protobufjs under the BSD-3-Clause license. jsdom under the MIT license. abab under the BSD-3-Clause license. acorn-globals under the MIT license. @@ -1012,17 +1042,22 @@ strict-event-emitter under the MIT license. @xmldom/xmldom under the MIT license. headers-polyfill under the MIT license. outvariant under the MIT license. +own-keys under the MIT license. web-encoding under the MIT license. util under the MIT license. is-arguments under the MIT license. call-bind under the MIT license. +call-bind-apply-helpers under the MIT license. +call-bound under the MIT license. es-define-property under the MIT license. get-intrinsic under the MIT license. +get-proto under the MIT license. es-errors under the MIT license. has-proto under the MIT license. has-symbols under the MIT license. set-function-length under the MIT license. define-data-property under the MIT license. +dunder-proto under the MIT license. gopd under the MIT license. has-property-descriptors under the MIT license. has-tostringtag under the MIT license. @@ -1047,6 +1082,7 @@ tmp under the MIT license. os-tmpdir under the MIT license. figures under the MIT license. mute-stream under the ISC license. +run-applescript under the MIT license. run-async under the MIT license. rxjs under the Apache-2.0 license. is-node-process under the MIT license. @@ -1125,6 +1161,7 @@ bonjour-service under the MIT license. multicast-dns under the MIT license. dns-packet under the MIT license. @leichtgewicht/ip-codec under the MIT license. +thingies under the MIT license. thunky under the MIT license. connect-history-api-fallback under the MIT license. default-gateway under the BSD-2-Clause license. @@ -1134,6 +1171,9 @@ body-parser under the MIT license. content-type under the MIT license. qs under the BSD-3-Clause license. side-channel under the MIT license. +side-channel-list under the MIT license. +side-channel-map under the MIT license. +side-channel-weakmap under the MIT license. object-inspect under the MIT license. raw-body under the MIT license. type-is under the MIT license. @@ -1242,13 +1282,16 @@ get-symbol-description under the MIT license. globalthis under the MIT license. internal-slot under the MIT license. is-negative-zero under the MIT license. +is-network-error under the MIT license. is-regex under the MIT license. is-string under the MIT license. is-weakref under the MIT license. object.assign under the MIT license. regexp.prototype.flags under the MIT license. set-function-name under the MIT license. +set-proto under the MIT license. safe-array-concat under the MIT license. +safe-push-apply under the MIT license. safe-regex-test under the MIT license. string.prototype.trim under the MIT license. string.prototype.trimend under the MIT license. @@ -1347,6 +1390,7 @@ eslint under the MIT license. @eslint-community/eslint-utils under the MIT license. eslint-visitor-keys under the Apache-2.0 license. @eslint-community/regexpp under the MIT license. +@eslint/config-helpers under the Apache-2.0 license. @eslint/eslintrc under the MIT license. espree under the BSD-2-Clause license. acorn-jsx under the MIT license. @@ -1436,6 +1480,7 @@ eslint-plugin-react-hooks under the MIT license. eslint-plugin-testing-library under the MIT license. eslint-webpack-plugin under the MIT license. @types/eslint under the MIT license. +@types/eslint-scope under the MIT license. file-loader under the MIT license. html-webpack-plugin under the MIT license. @types/html-minifier-terser under the MIT license. @@ -1639,16 +1684,23 @@ nise under the BSD-3-Clause license. @sinonjs/text-encoding under the Apache-2.0 license. just-extend under the MIT license. traverse under the MIT license. +tree-dump under the Apache-2.0 license. @eslint/config-array under the Apache-2.0 license. @eslint/object-schema under the Apache-2.0 license. @eslint/core under the Apache-2.0 license. @eslint/plugin-kit under the Apache-2.0 license. +@grpc/grpc-js under the Apache-2.0 license. +@grpc/proto-loader under the Apache-2.0 license. @humanfs/node under the Apache-2.0 license. @humanwhocodes/retry under the Apache-2.0 license. @humanfs/core under the Apache-2.0 license. +@inquirer/external-editor under the MIT license. @aashutoshrathi/word-wrap under the MIT license. prettier under the MIT license. has under the MIT license. +@rollup/rollup-freebsd-arm64 under the MIT license. +@rollup/rollup-freebsd-x64 under the MIT license. +@rollup/rollup-linux-loongarch64-gnu under the MIT license. @smithy/property-provider under the Apache-2.0 license. @aws-sdk/credential-provider-http under the Apache-2.0 license. @smithy/fetch-http-handler under the Apache-2.0 license. @@ -1968,6 +2020,7 @@ jinja2 under the 0BSD license. markupsafe under the 0BSD license. pyyaml under the MIT license. werkzeug under the 0BSD license. +wsl-utils under the MIT license. ******************** OPEN SOURCE LICENSES diff --git a/deployment/build-s3-dist.sh b/deployment/build-s3-dist.sh index 5993cea..9fcd686 100755 --- a/deployment/build-s3-dist.sh +++ b/deployment/build-s3-dist.sh @@ -30,7 +30,7 @@ set -e # Check to see if input has been provided: if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ]; then echo "Please provide all required parameters for the build script" - echo "For example: ./build-s3-dist.sh solutions trademarked-solution-name v1.2.0 template-bucket-name" + echo "For example: ./build-s3-dist.sh solutions trademarked-solution-name v1.2.1 template-bucket-name" exit 1 fi diff --git a/source/infrastructure/bin/dus.ts b/source/infrastructure/bin/dus.ts index 7438d05..c5ee35c 100644 --- a/source/infrastructure/bin/dus.ts +++ b/source/infrastructure/bin/dus.ts @@ -31,7 +31,7 @@ const namespace = process.env.APP_NAMESPACE ?? app.node.tryGetContext('app_names const applicationTrademarkName = app.node.tryGetContext('application_trademark_name'); const dus = new DusStack(app, 'DocUnderstanding', { - description: `(${solutionID}) - ${solutionName}. Version ${version}`, + description: `(${solutionID}) - ${solutionName} - Version ${version}`, synthesizer: new cdk.DefaultStackSynthesizer({ generateBootstrapVersionRule: false }), diff --git a/source/infrastructure/cdk.json b/source/infrastructure/cdk.json index 56dbf42..53ae04b 100644 --- a/source/infrastructure/cdk.json +++ b/source/infrastructure/cdk.json @@ -57,7 +57,7 @@ "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": true, "solution_id": "SO0281", "solution_name": "enhanced-document-understanding-on-aws", - "solution_version": "v1.2.0", + "solution_version": "v1.2.1", "app_namespace": "app.idp", "application_trademark_name": "Enhanced Document Understanding on AWS" diff --git a/source/infrastructure/lib/dus-stack.ts b/source/infrastructure/lib/dus-stack.ts index 94ad354..9180d26 100644 --- a/source/infrastructure/lib/dus-stack.ts +++ b/source/infrastructure/lib/dus-stack.ts @@ -140,7 +140,7 @@ export class DusStack extends cdk.Stack { SamplesSourceBucketName: applicationSetup.appSetupS3Bucket.bucketName, SamplesCustomResourceLambdaArn: applicationSetup.customResourceLambda.functionArn }, - description: 'Nested stack that deploys sample documents' + description: `(${props.solutionID}) - ${props.solutionName} - Nested stack that deploys sample documents - Version ${props.solutionVersion}` }); (this.sampleDocuments.node.defaultChild as cdk.CfnResource).cfnOptions.condition = sampleDocsCondition; @@ -150,7 +150,9 @@ export class DusStack extends cdk.Stack { const indexedStorageParameters = new IndexedStorageParams(this, 'IndexedStorageParameters'); - this.vpcStack = new VpcStack(this, 'VPCStack'); + this.vpcStack = new VpcStack(this, 'VPCStack', { + description: `(${props.solutionID}) - ${props.solutionName} - Nested Stack that creates VPC infrastructure for the solution - Version ${props.solutionVersion}` + }); this.vpcStack.nestedStackResource!.cfnOptions.condition = indexedStorageParameters.deployOpenSearchIndexCondition; @@ -242,7 +244,7 @@ export class DusStack extends cdk.Stack { UploadBucketArn: documentUploadBucketArn, GenUUID: applicationSetup.generateUUID.getAttString('UUID') }, - description: 'Nested Stack that deploys components to interact with Amazon Textract for uploaded documents' + description: `(${props.solutionID}) - ${props.solutionName} - Nested Stack that deploys components to interact with Amazon Textract for uploaded documents - Version ${props.solutionVersion}` }); (this.textractWorkflow.node.defaultChild as cdk.CfnResource).cfnOptions.condition = textractWorkflowCondition; @@ -262,7 +264,7 @@ export class DusStack extends cdk.Stack { UploadBucketArn: documentUploadBucketArn, GenUUID: applicationSetup.generateUUID.getAttString('UUID') }, - description: 'Nested Stack that deploys components to redact content in uploaded documents' + description: `(${props.solutionID}) - ${props.solutionName} - Nested Stack that deploys components to redact content in uploaded documents - Version ${props.solutionVersion}` }); (this.redactionWorkflow.node.defaultChild as cdk.CfnResource).cfnOptions.condition = redactionWorkflowCondition; @@ -283,8 +285,7 @@ export class DusStack extends cdk.Stack { UploadBucketArn: documentUploadBucketArn, GenUUID: applicationSetup.generateUUID.getAttString('UUID') }, - description: - 'Nested Stack that deploys components to interact with Amazon Comprehend and Amazon Comprehend Medical for uploaded documents' + description: `(${props.solutionID}) - ${props.solutionName} - Nested Stack that deploys components to interact with Amazon Comprehend and Amazon Comprehend Medical for uploaded documents - Version ${props.solutionVersion}` }); (this.entityDetectionWorkflow.node.defaultChild as cdk.CfnResource).cfnOptions.condition = comprehendWorkflowCondition; diff --git a/source/infrastructure/lib/search/indexed-storage.ts b/source/infrastructure/lib/search/indexed-storage.ts index 07fa159..a99ff44 100644 --- a/source/infrastructure/lib/search/indexed-storage.ts +++ b/source/infrastructure/lib/search/indexed-storage.ts @@ -88,6 +88,10 @@ export class IndexedStorage extends Construct { constructor(scope: Construct, id: string, props: IndexedStorageProps) { super(scope, id); + const solutionId = process.env.SOLUTION_ID ?? this.node.tryGetContext('solution_id'); + const solutionName = process.env.SOLUTION_NAME ?? this.node.tryGetContext('solution_name'); + const solutionVersion = process.env.VERSION ?? this.node.tryGetContext('solution_version'); + this.openSearchCaseStorage = new OpenSearchCaseStorage(this, 'openSearchCaseSearch', { parameters: { VpcId: props.vpcId, @@ -95,7 +99,8 @@ export class IndexedStorage extends Construct { SecurityGroupId: props.securityGroupId, WriteRoleArn: props.roleArn, ReadRoleArn: props.searchLambda.role!.roleArn - } + }, + description: `(${solutionId}) - ${solutionName} - Nested Stack that creates OpenSearch serverless collection for document search - Version ${solutionVersion}` }); this.openSearchCaseStorage.nestedStackResource!.cfnOptions.condition = @@ -110,7 +115,7 @@ export class IndexedStorage extends Construct { DocumentBucketName: props.documentBucketName, ExtUserPoolId: props.extUserPoolId }, - description: 'Nested Stack that creates the Kendra Index' + description: `(${solutionId}) - ${solutionName} - Nested Stack that creates the Kendra Index for document search - Version ${solutionVersion}` }); this.kendraCaseSearch.nestedStackResource!.cfnOptions.condition = diff --git a/source/infrastructure/lib/ui-infrastructure.ts b/source/infrastructure/lib/ui-infrastructure.ts index b5e4586..f2efbf6 100644 --- a/source/infrastructure/lib/ui-infrastructure.ts +++ b/source/infrastructure/lib/ui-infrastructure.ts @@ -58,8 +58,7 @@ export class UIInfrastructure extends Construct { CustomResourceRoleArn: props.customInfra.role!.roleArn, AccessLoggingBucketArn: props.accessLoggingBucket.bucketArn }, - description: - 'Nested stack that deploys UI components that include an S3 bucket for web assets and a CloudFront distribution' + description: `(${process.env.SOLUTION_ID ?? this.node.tryGetContext('solution_id')}) - ${process.env.SOLUTION_NAME ?? this.node.tryGetContext('solution_name')} - Nested stack that deploys UI components that include an S3 bucket for web assets and a CloudFront distribution - Version ${process.env.VERSION ?? this.node.tryGetContext('solution_version')}` }); (this.nestedUIStack.node.defaultChild as cdk.CfnResource).cfnOptions.condition = this.deployWebApp; } diff --git a/source/infrastructure/lib/utils/app-registry-aspects.ts b/source/infrastructure/lib/utils/app-registry-aspects.ts deleted file mode 100644 index 86f7f87..0000000 --- a/source/infrastructure/lib/utils/app-registry-aspects.ts +++ /dev/null @@ -1,153 +0,0 @@ -#!/usr/bin/env node -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -import * as appreg from '@aws-cdk/aws-servicecatalogappregistry-alpha'; -import * as cdk from 'aws-cdk-lib'; - -import { Construct, IConstruct } from 'constructs'; - -export interface AppRegistryProps { - /** - * Name of the solution as set through from cdk.json - */ - solutionName: string; - - /** - * Name of the application used to create an entry in AppRegistry as set through cdk.json - */ - applicationName: string; - - /** - * Solution ID associated with the application - */ - solutionID: string; - /** - * Solution version of the application - */ - solutionVersion: string; - /** - * An application type attribute initialized in the constructor of this class - */ - applicationType: string; -} - -/** - * A CDK Aspect to add App Registry constructs - */ -export class AppRegistry extends Construct implements cdk.IAspect { - /** - * Name of the solution as set through from cdk.json - */ - private solutionName: string; - - /** - * Name of the application used to create an entry in AppRegistry as set through cdk.json - */ - private applicationName: string; - - /** - * Solution ID as set through cdk.json - */ - private solutionID: string; - - /** - * Solution version as set through cdk.json - */ - private solutionVersion: string; - - /** - * An application type attribute initialized in the constructor of this class - */ - private applicationType: string; - - /** - * The instance of application that the solution stacks should be associated with - */ - private application: appreg.Application; - - constructor(scope: Construct, id: string, props: AppRegistryProps) { - super(scope, id); - this.solutionName = props.solutionName; - this.applicationName = `App-${props.applicationName}`; - this.solutionID = props.solutionID; - this.solutionVersion = props.solutionVersion; - this.applicationType = props.applicationType; - } - - /** - * Method invoked as a `Visitor` pattern to inject aspects during cdk synthesis - * - * @param node - */ - public visit(node: IConstruct): void { - if (node instanceof cdk.Stack) { - if (!node.nested) { - // parent stack - const stack = node; - this.createAppForAppRegistry(); - this.application.associateApplicationWithStack(stack); - this.createAttributeGroup(); - this.addTagsforApplication(); - } else { - if (!this.application) { - this.createAppForAppRegistry(); - } - - const nestedStack = node; - this.application.associateApplicationWithStack(nestedStack); - (nestedStack.node.defaultChild as cdk.CfnResource).addDependency( - this.application.node.defaultChild as cdk.CfnResource - ); - } - } - } - - /** - * Method to initialize an Application in AppRegistry service - * - * @returns - Instance of AppRegistry's Application class - */ - private createAppForAppRegistry(): void { - this.application = new appreg.Application(this, 'RegistrySetup', { - applicationName: this.applicationName, - description: `Service Catalog application to track and manage all your resources for the solution ${this.solutionName}` - }); - } - - /** - * Method to add tags to the AppRegistry's Application instance - * - */ - private addTagsforApplication(): void { - if (!this.application) { - this.createAppForAppRegistry(); - } - - cdk.Tags.of(this.application).add('Solutions:SolutionID', this.solutionID); - cdk.Tags.of(this.application).add('Solutions:SolutionName', this.solutionName); - cdk.Tags.of(this.application).add('Solutions:SolutionVersion', this.solutionVersion); - cdk.Tags.of(this.application).add('Solutions:ApplicationType', this.applicationType); - } - - /** - * Method to create AttributeGroup to be associated with the Application's instance in AppRegistry - * - */ - private createAttributeGroup(): void { - if (!this.application) { - this.createAppForAppRegistry(); - } - const attrGroup = new appreg.AttributeGroup(this, 'AppAttributes', { - attributeGroupName: `AttrGrp-${cdk.Aws.STACK_NAME}`, - description: 'Attributes for Solutions Metadata', - attributes: { - applicationType: this.applicationType, - version: this.solutionVersion, - solutionID: this.solutionID, - solutionName: this.solutionName - } - }); - attrGroup.associateWith(this.application); - } -} diff --git a/source/infrastructure/package-lock.json b/source/infrastructure/package-lock.json index 3991753..277f573 100644 --- a/source/infrastructure/package-lock.json +++ b/source/infrastructure/package-lock.json @@ -1,12 +1,12 @@ { "name": "enhanced-document-understanding-on-aws-infrastructure", - "version": "1.2.0", + "version": "1.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "enhanced-document-understanding-on-aws-infrastructure", - "version": "1.2.0", + "version": "1.2.1", "license": "Apache-2.0", "dependencies": { "@aws-solutions-constructs/aws-apigateway-lambda": "^2.56.0", diff --git a/source/infrastructure/package.json b/source/infrastructure/package.json index 7d2d242..debabaa 100644 --- a/source/infrastructure/package.json +++ b/source/infrastructure/package.json @@ -1,6 +1,6 @@ { "name": "enhanced-document-understanding-on-aws-infrastructure", - "version": "1.2.0", + "version": "1.2.1", "bin": { "infrastructure": "bin/dus.js" }, diff --git a/source/infrastructure/test/dus-stack.test.ts b/source/infrastructure/test/dus-stack.test.ts index 8d0524d..5ab65fd 100644 --- a/source/infrastructure/test/dus-stack.test.ts +++ b/source/infrastructure/test/dus-stack.test.ts @@ -13,6 +13,9 @@ describe('When App is created', () => { let template: Template; let jsonTemplate: { [key: string]: any }; let stack: cdk.Stack; + const solutionId = process.env.SOLUTION_ID ?? 'undefined'; + const solutionName = process.env.SOLUTION_NAME ?? 'undefined'; + const solutionVersion = process.env.VERSION ?? 'undefined'; beforeAll(() => { [template, jsonTemplate, stack] = buildStack(); @@ -56,15 +59,15 @@ describe('When App is created', () => { it('should have a description in the nested stack', () => { const dusStack = stack as DusStack; expect(Template.fromStack(dusStack.textractWorkflow).toJSON()['Description']).toEqual( - 'Nested Stack that deploys components to interact with Amazon Textract for uploaded documents' + `(${solutionId}) - ${solutionName} - Nested Stack that deploys components to interact with Amazon Textract for uploaded documents - Version ${solutionVersion}` ); expect(Template.fromStack(dusStack.entityDetectionWorkflow).toJSON()['Description']).toEqual( - 'Nested Stack that deploys components to interact with Amazon Comprehend and Amazon Comprehend Medical for uploaded documents' + `(${solutionId}) - ${solutionName} - Nested Stack that deploys components to interact with Amazon Comprehend and Amazon Comprehend Medical for uploaded documents - Version ${solutionVersion}` ); expect(Template.fromStack(dusStack.redactionWorkflow).toJSON()['Description']).toEqual( - 'Nested Stack that deploys components to redact content in uploaded documents' + `(${solutionId}) - ${solutionName} - Nested Stack that deploys components to redact content in uploaded documents - Version ${solutionVersion}` ); }); @@ -152,7 +155,7 @@ describe('When App is created', () => { it('should have a description in the nested UI stack', () => { const dusStack = stack as DusStack; expect(Template.fromStack(dusStack.uiInfrastructure.nestedUIStack).toJSON()['Description']).toEqual( - 'Nested stack that deploys UI components that include an S3 bucket for web assets and a CloudFront distribution' + `(${solutionId}) - ${solutionName} - Nested stack that deploys UI components that include an S3 bucket for web assets and a CloudFront distribution - Version ${solutionVersion}` ); }); }); @@ -192,7 +195,7 @@ describe('When App is created', () => { it('should have a description in the nested stack', () => { const dusStack = stack as DusStack; expect(Template.fromStack(dusStack.indexedStorage.kendraCaseSearch).toJSON()['Description']).toEqual( - 'Nested Stack that creates the Kendra Index' + `(${solutionId}) - ${solutionName} - Nested Stack that creates the Kendra Index for document search - Version ${solutionVersion}` ); }); diff --git a/source/infrastructure/test/mock-lambda-func/java-lambda/pom.xml b/source/infrastructure/test/mock-lambda-func/java-lambda/pom.xml index 21e130d..789d8f1 100644 --- a/source/infrastructure/test/mock-lambda-func/java-lambda/pom.xml +++ b/source/infrastructure/test/mock-lambda-func/java-lambda/pom.xml @@ -6,7 +6,7 @@ 4.0.0 example java-lambda - 1.2.0 + 1.2.1 mock-java-lambda diff --git a/source/infrastructure/test/mock-lambda-func/node-lambda/package-lock.json b/source/infrastructure/test/mock-lambda-func/node-lambda/package-lock.json index d56744b..9b22d32 100644 --- a/source/infrastructure/test/mock-lambda-func/node-lambda/package-lock.json +++ b/source/infrastructure/test/mock-lambda-func/node-lambda/package-lock.json @@ -1,12 +1,12 @@ { "name": "node-lambda", - "version": "1.2.0", + "version": "1.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "node-lambda", - "version": "1.2.0", + "version": "1.2.1", "license": "Apache-2.0" } } diff --git a/source/infrastructure/test/mock-lambda-func/node-lambda/package.json b/source/infrastructure/test/mock-lambda-func/node-lambda/package.json index bfb7ec1..8f17805 100644 --- a/source/infrastructure/test/mock-lambda-func/node-lambda/package.json +++ b/source/infrastructure/test/mock-lambda-func/node-lambda/package.json @@ -1,6 +1,6 @@ { "name": "node-lambda", - "version": "1.2.0", + "version": "1.2.1", "description": "A mock lambda implementation for CDK infrastructure unit", "main": "index.js", "scripts": { diff --git a/source/infrastructure/test/mock-lambda-func/python-lambda/pyproject.toml b/source/infrastructure/test/mock-lambda-func/python-lambda/pyproject.toml index fbca929..b66ee5b 100644 --- a/source/infrastructure/test/mock-lambda-func/python-lambda/pyproject.toml +++ b/source/infrastructure/test/mock-lambda-func/python-lambda/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "mock-python-lambda" -version = "1.2.0" +version = "1.2.1" authors = ["Amazon Web Services"] description = "Mock function for infra testing" packages = [{ include = "*.toml" }, { include = "*.lock" }] diff --git a/source/infrastructure/test/mock-ui/package-lock.json b/source/infrastructure/test/mock-ui/package-lock.json index 085ec06..f683452 100644 --- a/source/infrastructure/test/mock-ui/package-lock.json +++ b/source/infrastructure/test/mock-ui/package-lock.json @@ -1,12 +1,12 @@ { "name": "mock-react-app", - "version": "1.2.0", + "version": "1.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "mock-react-app", - "version": "1.2.0", + "version": "1.2.1", "license": "Apache-2.0", "dependencies": { "react": "^18.3.1" diff --git a/source/infrastructure/test/mock-ui/package.json b/source/infrastructure/test/mock-ui/package.json index c4613db..724a639 100644 --- a/source/infrastructure/test/mock-ui/package.json +++ b/source/infrastructure/test/mock-ui/package.json @@ -1,6 +1,6 @@ { "name": "mock-react-app", - "version": "1.2.0", + "version": "1.2.1", "description": "Mock Reactjs app used for unit testing constructs", "main": "index.js", "scripts": { diff --git a/source/infrastructure/test/utils/app-registry.test.ts b/source/infrastructure/test/utils/app-registry.test.ts deleted file mode 100644 index b9769fd..0000000 --- a/source/infrastructure/test/utils/app-registry.test.ts +++ /dev/null @@ -1,239 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -import * as cdk from 'aws-cdk-lib'; -import * as rawCdkJson from '../../cdk.json'; - -import { Capture, Match, Template } from 'aws-cdk-lib/assertions'; - -import { DusStack } from '../../lib/dus-stack'; -import { AppRegistry } from '../../lib/utils/app-registry-aspects'; - -describe('When Solution Stack with a nested stack is registered with AppRegistry', () => { - let template: Template; - let app: cdk.App; - let stack: DusStack; - const appRegApplicationCapture = new Capture(); - const expectedTags = { - 'Solutions:ApplicationType': 'AWS-Solutions', - 'Solutions:SolutionID': 'SO0281', - 'Solutions:SolutionName': 'enhanced-document-understanding-on-aws', - 'Solutions:SolutionVersion': rawCdkJson.context.solution_version - }; - - const applicationName = `App-${rawCdkJson.context.app_registry_name}`; - - beforeAll(() => { - app = new cdk.App({ - context: rawCdkJson.context - }); - - stack = new DusStack(app, 'TestStack', { - solutionID: rawCdkJson.context.solution_id, - solutionName: rawCdkJson.context.solution_name, - solutionVersion: rawCdkJson.context.solution_version, - appNamespace: rawCdkJson.context.app_namespace, - applicationTrademarkName: rawCdkJson.context.application_trademark_name - }); - cdk.Aspects.of(app).add( - new AppRegistry(stack, 'AppRegistryAspect', { - solutionName: rawCdkJson.context.solution_name, - applicationName: rawCdkJson.context.app_registry_name, - solutionID: rawCdkJson.context.solution_id, - solutionVersion: rawCdkJson.context.solution_version, - applicationType: rawCdkJson.context.application_type - }) - ); - template = Template.fromStack(stack); - }); - - it('should create a ServiceCatalogueRegistry Application', () => { - expect(app.node.tryGetContext('app_registry_name')).toStrictEqual('enhanced-document-understanding'); - expect(app.node.tryGetContext('solution_name')).toStrictEqual('enhanced-document-understanding-on-aws'); - template.resourceCountIs('AWS::ServiceCatalogAppRegistry::Application', 1); - template.hasResourceProperties('AWS::ServiceCatalogAppRegistry::Application', { - Name: 'App-enhanced-document-understanding', - Description: `Service Catalog application to track and manage all your resources for the solution ${expectedTags['Solutions:SolutionName']}`, - Tags: expectedTags - }); - }); - - it('should create ResourceAssociation for parent stack', () => { - template.resourceCountIs('AWS::ServiceCatalogAppRegistry::ResourceAssociation', 1); - template.hasResourceProperties('AWS::ServiceCatalogAppRegistry::ResourceAssociation', { - Application: { - 'Fn::GetAtt': [appRegApplicationCapture, 'Id'] - }, - Resource: { - Ref: 'AWS::StackId' - }, - ResourceType: 'CFN_STACK' - }); - }); - - it('should create ResourceAssociation for Textract Nested Stack', () => { - const textractStack = stack.textractWorkflow; - const nestedTemplate = Template.fromStack(textractStack); - nestedTemplate.hasResourceProperties('AWS::ServiceCatalogAppRegistry::ResourceAssociation', { - Application: 'App-enhanced-document-understanding', - Resource: { - Ref: 'AWS::StackId' - }, - ResourceType: 'CFN_STACK' - }); - - template.hasResource('AWS::CloudFormation::Stack', { - Type: 'AWS::CloudFormation::Stack', - Properties: Match.anyValue(), - DependsOn: [appRegApplicationCapture.asString()], - UpdateReplacePolicy: Match.anyValue(), - DeletionPolicy: Match.anyValue(), - Condition: 'DeployTextractWorkflow' - }); - }); - - it('should create ResourceAssociation for Redaction Nested Stack', () => { - const redactionStack = stack.redactionWorkflow; - const nestedTemplate = Template.fromStack(redactionStack); - nestedTemplate.hasResourceProperties('AWS::ServiceCatalogAppRegistry::ResourceAssociation', { - Application: applicationName, - Resource: { - Ref: 'AWS::StackId' - }, - ResourceType: 'CFN_STACK' - }); - - template.hasResource('AWS::CloudFormation::Stack', { - Type: 'AWS::CloudFormation::Stack', - Properties: Match.anyValue(), - DependsOn: [appRegApplicationCapture.asString()], - UpdateReplacePolicy: Match.anyValue(), - DeletionPolicy: Match.anyValue(), - Condition: 'DeployRedactionWorkflow' - }); - }); - - it('should create ResourceAssociation for Entity Detection Nested Stack', () => { - const entityDetectionStack = stack.entityDetectionWorkflow; - const nestedTemplate = Template.fromStack(entityDetectionStack); - nestedTemplate.hasResourceProperties('AWS::ServiceCatalogAppRegistry::ResourceAssociation', { - Application: applicationName, - Resource: { - Ref: 'AWS::StackId' - }, - ResourceType: 'CFN_STACK' - }); - - template.hasResource('AWS::CloudFormation::Stack', { - Type: 'AWS::CloudFormation::Stack', - Properties: Match.anyValue(), - DependsOn: [appRegApplicationCapture.asString()], - UpdateReplacePolicy: Match.anyValue(), - DeletionPolicy: Match.anyValue(), - Condition: 'DeployComprehendWorkflow' - }); - }); - - it('should create ResourceAssociation for Kendra Nested Stack', () => { - const kendraStack = stack.indexedStorage.kendraCaseSearch; - const nestedTemplate = Template.fromStack(kendraStack); - nestedTemplate.hasResourceProperties('AWS::ServiceCatalogAppRegistry::ResourceAssociation', { - Application: applicationName, - Resource: { - Ref: 'AWS::StackId' - }, - ResourceType: 'CFN_STACK' - }); - - template.hasResource('AWS::CloudFormation::Stack', { - Type: 'AWS::CloudFormation::Stack', - Properties: Match.anyValue(), - DependsOn: [appRegApplicationCapture.asString()], - UpdateReplacePolicy: Match.anyValue(), - DeletionPolicy: Match.anyValue(), - Condition: Match.stringLikeRegexp('IndexedStorageParametersDeployKendraIndexCondition*') - }); - }); - - it('should create ResourceAssociation for Sample Documents Nested Stack', () => { - const sampleDocumentsStack: cdk.NestedStack = stack.sampleDocuments; - const nestedTemplate = Template.fromStack(sampleDocumentsStack); - nestedTemplate.hasResourceProperties('AWS::ServiceCatalogAppRegistry::ResourceAssociation', { - Application: applicationName, - Resource: { - Ref: 'AWS::StackId' - }, - ResourceType: 'CFN_STACK' - }); - - template.hasResource('AWS::CloudFormation::Stack', { - Type: 'AWS::CloudFormation::Stack', - Properties: Match.anyValue(), - DependsOn: [appRegApplicationCapture.asString(), Match.anyValue()], - UpdateReplacePolicy: Match.anyValue(), - DeletionPolicy: Match.anyValue(), - Condition: 'DeploySamples' - }); - }); - - it('should create ResourceAssociation for WebApp Nested Stack', () => { - const webAppStack = stack.uiInfrastructure.nestedUIStack; - const nestedTemplate = Template.fromStack(webAppStack); - nestedTemplate.hasResourceProperties('AWS::ServiceCatalogAppRegistry::ResourceAssociation', { - Application: applicationName, - Resource: { - Ref: 'AWS::StackId' - }, - ResourceType: 'CFN_STACK' - }); - - template.hasResource('AWS::CloudFormation::Stack', { - Type: 'AWS::CloudFormation::Stack', - Properties: Match.anyValue(), - DependsOn: [appRegApplicationCapture.asString(), Match.anyValue(), Match.anyValue()], - UpdateReplacePolicy: Match.anyValue(), - DeletionPolicy: Match.anyValue(), - Condition: 'DeployWebApp' - }); - }); - - const attGrpCapture = new Capture(); - it('should have AttributeGroupAssociation', () => { - template.resourceCountIs('AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation', 1); - template.hasResourceProperties('AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation', { - Application: { - 'Fn::GetAtt': [Match.stringLikeRegexp('AppRegistryAspectRegistrySetup*'), 'Id'] - }, - AttributeGroup: { - 'Fn::GetAtt': [attGrpCapture, 'Id'] - } - }); - expect(template.toJSON()['Resources'][attGrpCapture.asString()]['Type']).toStrictEqual( - 'AWS::ServiceCatalogAppRegistry::AttributeGroup' - ); - }); - - it('should have AttributeGroup', () => { - template.resourceCountIs('AWS::ServiceCatalogAppRegistry::AttributeGroup', 1); - template.hasResourceProperties('AWS::ServiceCatalogAppRegistry::AttributeGroup', { - Attributes: { - applicationType: 'AWS-Solutions', - solutionID: 'SO0281', - solutionName: expectedTags['Solutions:SolutionName'], - version: expectedTags['Solutions:SolutionVersion'] - }, - Name: { - 'Fn::Join': [ - '', - [ - 'AttrGrp-', - { - 'Ref': 'AWS::StackName' - } - ] - ] - }, - Description: 'Attributes for Solutions Metadata' - }); - }); -}); diff --git a/source/lambda/create-presigned-url/package-lock.json b/source/lambda/create-presigned-url/package-lock.json index 9006827..5f17f49 100644 --- a/source/lambda/create-presigned-url/package-lock.json +++ b/source/lambda/create-presigned-url/package-lock.json @@ -1,12 +1,12 @@ { "name": "create-presigned-url", - "version": "1.2.0", + "version": "1.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "create-presigned-url", - "version": "1.2.0", + "version": "1.2.1", "license": "Apache-2.0", "devDependencies": { "aws-sdk-mock": "^5.8.0", diff --git a/source/lambda/create-presigned-url/package.json b/source/lambda/create-presigned-url/package.json index eb1654b..b9d42da 100644 --- a/source/lambda/create-presigned-url/package.json +++ b/source/lambda/create-presigned-url/package.json @@ -1,6 +1,6 @@ { "name": "create-presigned-url", - "version": "1.2.0", + "version": "1.2.1", "description": "This lambda has minimal permissions required to create downloadable presigned URLs for documents.", "main": "index.js", "scripts": { diff --git a/source/lambda/custom-resource/poetry.lock b/source/lambda/custom-resource/poetry.lock index 7c90a27..a355a69 100644 --- a/source/lambda/custom-resource/poetry.lock +++ b/source/lambda/custom-resource/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. [[package]] name = "aws-lambda-powertools" @@ -64,7 +64,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "boto3-layer" -version = "1.1.18" +version = "1.2.1" description = "Layer for AWS Boto3 python SDK" optional = false python-versions = "^3.11" @@ -445,7 +445,7 @@ test-randomorder = ["pytest-randomly"] [[package]] name = "custom-boto3-init" -version = "1.1.18" +version = "1.2.1" description = "Initialize boto config for AWS Python SDK with custom configuration" optional = false python-versions = "^3.11" @@ -808,7 +808,6 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, diff --git a/source/lambda/custom-resource/pyproject.toml b/source/lambda/custom-resource/pyproject.toml index 5043262..dd251a2 100644 --- a/source/lambda/custom-resource/pyproject.toml +++ b/source/lambda/custom-resource/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "custom-resource" -version = "1.2.0" +version = "1.2.1" authors = [ "Amazon Web Services" ] description = "Perform specific operations triggered by AWS CloudFormation events" packages = [ diff --git a/source/lambda/entity-detection/package-lock.json b/source/lambda/entity-detection/package-lock.json index 49fd342..2ddfd03 100644 --- a/source/lambda/entity-detection/package-lock.json +++ b/source/lambda/entity-detection/package-lock.json @@ -1,12 +1,12 @@ { "name": "entity-detection", - "version": "1.2.0", + "version": "1.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "entity-detection", - "version": "1.2.0", + "version": "1.2.1", "license": "Apache-2.0", "devDependencies": { "aws-sdk-mock": "^5.7.0", diff --git a/source/lambda/entity-detection/package.json b/source/lambda/entity-detection/package.json index 9573692..7d9bc05 100644 --- a/source/lambda/entity-detection/package.json +++ b/source/lambda/entity-detection/package.json @@ -1,6 +1,6 @@ { "name": "entity-detection", - "version": "1.2.0", + "version": "1.2.1", "description": "This lambda function detects entities within Text", "main": "index.js", "scripts": { diff --git a/source/lambda/entity-detection/utils/generic.js b/source/lambda/entity-detection/utils/generic.js index 5145595..aeed882 100644 --- a/source/lambda/entity-detection/utils/generic.js +++ b/source/lambda/entity-detection/utils/generic.js @@ -87,7 +87,7 @@ exports.computeBoundingBoxes = (entity, offsetToLineIdMap, blockDict) => { // NO // textract 'WORD' blocks include the enclosing punctuation, whereas comprehend entities do not. // hence, we use this regex which will match if the textract word is surrounded by some extra characters. const matchSurroundedEntityRegex = new RegExp( - `(?com.builder.config custom-java-sdk-config jar - 1.1.11 + 1.2.1 custom-java-sdk-config UTF-8 diff --git a/source/lambda/layers/custom_boto3_init/poetry.lock b/source/lambda/layers/custom_boto3_init/poetry.lock index 486a9e4..0beba40 100644 --- a/source/lambda/layers/custom_boto3_init/poetry.lock +++ b/source/lambda/layers/custom_boto3_init/poetry.lock @@ -64,7 +64,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "boto3-layer" -version = "1.2.0" +version = "1.2.1" description = "Layer for AWS Boto3 python SDK" optional = false python-versions = "^3.11" diff --git a/source/lambda/layers/custom_boto3_init/pyproject.toml b/source/lambda/layers/custom_boto3_init/pyproject.toml index 8699844..14328fa 100644 --- a/source/lambda/layers/custom_boto3_init/pyproject.toml +++ b/source/lambda/layers/custom_boto3_init/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "custom_boto3_init" -version = "1.2.0" +version = "1.2.1" authors = [ "Amazon Web Services" ] description = "Initialize boto config for AWS Python SDK with custom configuration" packages = [ diff --git a/source/lambda/layers/custom_boto3_init/setup.py b/source/lambda/layers/custom_boto3_init/setup.py index 2cf827a..c6c79c9 100644 --- a/source/lambda/layers/custom_boto3_init/setup.py +++ b/source/lambda/layers/custom_boto3_init/setup.py @@ -5,7 +5,7 @@ setup( name="custom_boto3_init", - version="1.2.0", + version="1.2.1", description="Initialize boto config for AWS Python SDK with custom configuration", url="https://github.com/aws-solutions/enhanced-document-understanding-on-aws", author="Amazon Web Services", diff --git a/source/lambda/redact-content/pom.xml b/source/lambda/redact-content/pom.xml index e1fdb44..2f4d93e 100644 --- a/source/lambda/redact-content/pom.xml +++ b/source/lambda/redact-content/pom.xml @@ -7,7 +7,7 @@ com.builder.lambda redact-content jar - 1.2.0 + 1.2.1 redact-content UTF-8 diff --git a/source/lambda/search/package-lock.json b/source/lambda/search/package-lock.json index 737329e..7fa0e60 100644 --- a/source/lambda/search/package-lock.json +++ b/source/lambda/search/package-lock.json @@ -1,12 +1,12 @@ { "name": "search", - "version": "1.2.0", + "version": "1.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "search", - "version": "1.2.0", + "version": "1.2.1", "license": "Apache-2.0", "devDependencies": { "aws-sdk-mock": "^5.8.0", diff --git a/source/lambda/search/package.json b/source/lambda/search/package.json index 760fa8e..8c49c4e 100644 --- a/source/lambda/search/package.json +++ b/source/lambda/search/package.json @@ -1,6 +1,6 @@ { "name": "search", - "version": "1.2.0", + "version": "1.2.1", "description": "This lambda function is used to search for queries in the kendra index backing the rest-endpoints", "main": "index.js", "scripts": { diff --git a/source/lambda/send-notification/package-lock.json b/source/lambda/send-notification/package-lock.json index 70035ec..ab5fd22 100644 --- a/source/lambda/send-notification/package-lock.json +++ b/source/lambda/send-notification/package-lock.json @@ -1,12 +1,12 @@ { "name": "send-notification", - "version": "1.2.0", + "version": "1.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "send-notification", - "version": "1.2.0", + "version": "1.2.1", "license": "Apache-2.0", "devDependencies": { "aws-sdk-mock": "^5.7.0", diff --git a/source/lambda/send-notification/package.json b/source/lambda/send-notification/package.json index 053c075..aaab585 100644 --- a/source/lambda/send-notification/package.json +++ b/source/lambda/send-notification/package.json @@ -1,6 +1,6 @@ { "name": "send-notification", - "version": "1.2.0", + "version": "1.2.1", "description": "This lambda function sends notifications about document processing updates", "main": "index.js", "scripts": { diff --git a/source/lambda/text-extract/package-lock.json b/source/lambda/text-extract/package-lock.json index c85046e..bb1136b 100644 --- a/source/lambda/text-extract/package-lock.json +++ b/source/lambda/text-extract/package-lock.json @@ -1,12 +1,12 @@ { "name": "text-extract", - "version": "1.2.0", + "version": "1.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "text-extract", - "version": "1.2.0", + "version": "1.2.1", "license": "Apache-2.0", "devDependencies": { "aws-sdk-mock": "^5.8.0", diff --git a/source/lambda/text-extract/package.json b/source/lambda/text-extract/package.json index 0c44c78..24bb4c1 100644 --- a/source/lambda/text-extract/package.json +++ b/source/lambda/text-extract/package.json @@ -1,6 +1,6 @@ { "name": "text-extract", - "version": "1.2.0", + "version": "1.2.1", "description": "This lambda function extracts text from a document like ID or Paystub, and also detects texts.", "main": "index.js", "scripts": { diff --git a/source/lambda/upload-document/package-lock.json b/source/lambda/upload-document/package-lock.json index 88083cb..792102d 100644 --- a/source/lambda/upload-document/package-lock.json +++ b/source/lambda/upload-document/package-lock.json @@ -1,12 +1,12 @@ { "name": "upload-document", - "version": "1.2.0", + "version": "1.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "upload-document", - "version": "1.2.0", + "version": "1.2.1", "license": "Apache-2.0", "dependencies": { "lodash": "4.17.21" diff --git a/source/lambda/upload-document/package.json b/source/lambda/upload-document/package.json index 84852ed..6f9eb93 100644 --- a/source/lambda/upload-document/package.json +++ b/source/lambda/upload-document/package.json @@ -1,6 +1,6 @@ { "name": "upload-document", - "version": "1.2.0", + "version": "1.2.1", "description": "This lambda function to upload documents", "main": "index.js", "scripts": { diff --git a/source/lambda/workflow-orchestrator/package-lock.json b/source/lambda/workflow-orchestrator/package-lock.json index b109f62..4f33658 100644 --- a/source/lambda/workflow-orchestrator/package-lock.json +++ b/source/lambda/workflow-orchestrator/package-lock.json @@ -1,12 +1,12 @@ { "name": "workflow-orchestrator", - "version": "1.2.0", + "version": "1.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "workflow-orchestrator", - "version": "1.2.0", + "version": "1.2.1", "license": "Apache-2.0", "dependencies": { "lodash": "4.17.21" diff --git a/source/lambda/workflow-orchestrator/package.json b/source/lambda/workflow-orchestrator/package.json index 0e3705e..8b87e39 100644 --- a/source/lambda/workflow-orchestrator/package.json +++ b/source/lambda/workflow-orchestrator/package.json @@ -1,6 +1,6 @@ { "name": "workflow-orchestrator", - "version": "1.2.0", + "version": "1.2.1", "description": "This lambda validates if required documents for a workflow has been uploaded", "main": "index.js", "scripts": { diff --git a/source/package-lock.json b/source/package-lock.json deleted file mode 100644 index 06ffc45..0000000 --- a/source/package-lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "source", - "lockfileVersion": 3, - "requires": true, - "packages": {} -} diff --git a/source/ui/package-lock.json b/source/ui/package-lock.json index e26cd6a..17564e8 100644 --- a/source/ui/package-lock.json +++ b/source/ui/package-lock.json @@ -1,12 +1,12 @@ { "name": "intelligent-document-processing-ui", - "version": "1.2.0", + "version": "1.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "intelligent-document-processing-ui", - "version": "1.2.0", + "version": "1.2.1", "license": "Apache-2.0", "dependencies": { "@aws-amplify/ui-react": "^5.3.2", @@ -14902,14 +14902,13 @@ } }, "node_modules/axios": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.2.tgz", - "integrity": "sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==", - "license": "MIT", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz", + "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==", "peer": true, "dependencies": { "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", + "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, diff --git a/source/ui/package.json b/source/ui/package.json index 5d833cb..98e8f15 100644 --- a/source/ui/package.json +++ b/source/ui/package.json @@ -1,6 +1,6 @@ { "name": "intelligent-document-processing-ui", - "version": "1.2.0", + "version": "1.2.1", "dependencies": { "@aws-amplify/ui-react": "^5.3.2", "@cloudscape-design/components": "^3.0.484",