From 713ea4afa834692a8ed3dbe440290e928c93b3b6 Mon Sep 17 00:00:00 2001 From: Matthew Ball Date: Thu, 18 Nov 2021 16:01:06 +0000 Subject: [PATCH] v1.1.2 release --- CHANGELOG.md | 16 ++ deployment/perspective-setup.yaml | 24 +-- source/backend/discovery/package-lock.json | 20 +- source/backend/discovery/package.json | 2 +- .../src/discovery/discovery-service.js | 1 + .../backend/functions/api/package-lock.json | 179 ++++++++++++------ source/backend/functions/api/package.json | 2 +- .../functions/cost-parser/package-lock.json | 52 ++--- .../functions/cost-parser/package.json | 3 +- .../functions/cur-setup/package-lock.json | 6 +- .../backend/functions/cur-setup/package.json | 2 +- .../functions/graph-api/package-lock.json | 6 +- .../functions/search/package-lock.json | 54 ++++-- source/backend/functions/search/package.json | 6 +- .../functions/settings/package-lock.json | 12 +- .../backend/functions/settings/package.json | 2 +- .../backend/functions/setup/package-lock.json | 41 ++-- source/backend/functions/setup/package.json | 5 +- .../cfn/templates/perspective-cloudfront.yaml | 14 ++ source/frontend/src/Main.js | 1 - .../src/Utils/Dictionaries/service-names.js | 3 + .../Drawer/Costs/QueryBuilder/CostQuery.js | 4 +- .../Costs/QueryBuilder/CostQueryForm.js | 8 +- .../Costs/QueryBuilder/CostQueryResults.js | 16 +- .../Drawer/Costs/Report/CostForm.js | 6 + .../Drawer/Costs/Report/CostOverview.js | 2 +- .../PersistentDrawer/Costs/CostContainer.js | 7 +- .../Drawer/Settings/Costs/CostSettings.js | 11 +- 28 files changed, 318 insertions(+), 187 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1349ae7..60a3401a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,22 @@ All notable changes to this project are documented in this file. 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.1.2] - 2021-11-03 + +### Added + +- Amazon OpenSearch Service to discovery process Config queries. + +### Changed + +- Limiting the date pickers to select dates in the past. To limit confusion around the cost data Perspective displays. + +### Fixed + +- Fixed permissions errors preventing in-place upgrades. +- Fixed a bug causing Amazon Elasticsearch Service costs to be missed out when calculating estimated workload costs (https://github.com/awslabs/aws-perspective/issues/216). +- Fixed a bug causing cost query date not to update in the overview component. + ## [1.1.1] - 2021-09-28 ### Added diff --git a/deployment/perspective-setup.yaml b/deployment/perspective-setup.yaml index 249efd65..8d9a0e4f 100644 --- a/deployment/perspective-setup.yaml +++ b/deployment/perspective-setup.yaml @@ -419,6 +419,7 @@ Resources: - apigateway:POST - apigateway:PUT - apigateway:PATCH + - apigateway:DELETE Resource: - !Sub arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${PerspectiveWebRestAPI}/* - !Sub arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${ServerGremlinAPI}/* @@ -503,6 +504,7 @@ Resources: - glue:CreateDatabase - glue:CreateTable - glue:CreateCrawler + - glue:UpdateCrawler Resource: !Sub 'arn:aws:glue:${AWS::Region}:${AWS::AccountId}:*' LambdaSetup: Metadata: @@ -1097,6 +1099,11 @@ Resources: WebUIBucket: + Metadata: + cfn_nag: + rules_to_suppress: + - id: W51 + reason: This bucket will get a policy attached to it from another template during deployment. Type: AWS::S3::Bucket Properties: PublicAccessBlockConfiguration: @@ -1127,23 +1134,6 @@ Resources: IndexDocument: index.html ErrorDocument: error.html - WebUIBucketPolicy: - Type: AWS::S3::BucketPolicy - Properties: - Bucket: !Ref WebUIBucket - PolicyDocument: - Statement: - - Sid: HttpsOnly - Action: '*' - Effect: Deny - Resource: - - !Sub arn:aws:s3:::${WebUIBucket}/* - - !Sub arn:aws:s3:::${WebUIBucket} - Principal: '*' - Condition: - Bool: - 'aws:SecureTransport': 'false' - AmplifyStorageBucket: Type: AWS::S3::Bucket Properties: diff --git a/source/backend/discovery/package-lock.json b/source/backend/discovery/package-lock.json index 5de8f085..7e4656e4 100644 --- a/source/backend/discovery/package-lock.json +++ b/source/backend/discovery/package-lock.json @@ -636,11 +636,11 @@ } }, "aws-sdk": { - "version": "2.611.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.611.0.tgz", - "integrity": "sha512-2Y0vqEUQFRJE/5Ne6IYgP2y+8XEp0jQefHxlwdqwj9n9a8OmdsmBnNaw2IVsyxySgk2ynp38+imBJaceDNKiiQ==", + "version": "2.1031.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1031.0.tgz", + "integrity": "sha512-XXrQG7l9WMYSg4fZNZctrgPjpTb6HPk1DaM2vXfhMHaNl8TyHjyeMkvU+CC0ctlPqgoCMLrGWI4Zxnq8yrsnXA==", "requires": { - "buffer": "4.9.1", + "buffer": "4.9.2", "events": "1.1.1", "ieee754": "1.1.13", "jmespath": "0.15.0", @@ -678,9 +678,9 @@ "dev": true }, "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "binary-extensions": { "version": "2.2.0", @@ -732,9 +732,9 @@ } }, "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", diff --git a/source/backend/discovery/package.json b/source/backend/discovery/package.json index 75a465f0..3b591cdf 100644 --- a/source/backend/discovery/package.json +++ b/source/backend/discovery/package.json @@ -20,7 +20,7 @@ "@supercharge/promise-pool": "1.5.0", "adm-zip": "0.4.13", "async-retry": "1.3.1", - "aws-sdk": "2.611.0", + "aws-sdk": "2.1031.0", "aws4": "1.8.0", "axios": "0.21.2", "bottleneck": "2.19.5", diff --git a/source/backend/discovery/src/discovery/discovery-service.js b/source/backend/discovery/src/discovery/discovery-service.js index efeae6b7..fbddce11 100644 --- a/source/backend/discovery/src/discovery/discovery-service.js +++ b/source/backend/discovery/src/discovery/discovery-service.js @@ -52,6 +52,7 @@ class DiscoveryService { "AWS::AutoScaling::AutoScalingGroup", "AWS::EC2::NatGateway", "AWS::Elasticsearch::Domain", + "AWS::OpenSearch::Domain", "AWS::KMS::Key", "AWS::CodeBuild::Project", "AWS::CodePipeline::Pipeline", diff --git a/source/backend/functions/api/package-lock.json b/source/backend/functions/api/package-lock.json index 1586fba1..9331123c 100644 --- a/source/backend/functions/api/package-lock.json +++ b/source/backend/functions/api/package-lock.json @@ -8,6 +8,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, "requires": { "@babel/highlight": "^7.8.3" } @@ -181,7 +182,8 @@ "@babel/helper-validator-identifier": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz", - "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==" + "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==", + "dev": true }, "@babel/helpers": { "version": "7.10.4", @@ -198,6 +200,7 @@ "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", + "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", @@ -207,7 +210,8 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true } } }, @@ -217,21 +221,6 @@ "integrity": "sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA==", "dev": true }, - "@babel/runtime": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", - "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", - "requires": { - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" - } - } - }, "@babel/template": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", @@ -344,6 +333,11 @@ } } }, + "@humanwhocodes/momoa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.2.tgz", + "integrity": "sha512-mkMcsshJ7L17AyntqpyjLiGqhbG62w93B0StW+HSNVJ1WUeVFA2uPssV/GufEfDqN6lRKI1I+uDzBUw83C0VuA==" + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -547,9 +541,9 @@ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" }, "aws-sdk": { - "version": "2.1006.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1006.0.tgz", - "integrity": "sha512-lwXAy706+1HVQqMnHaahdeBZZbdu6TWrtTY0ydeG0qanwldTFNMLczwnETTZWYsqNAU+wjl1VzmFdMO4gePLNQ==", + "version": "2.1031.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1031.0.tgz", + "integrity": "sha512-XXrQG7l9WMYSg4fZNZctrgPjpTb6HPk1DaM2vXfhMHaNl8TyHjyeMkvU+CC0ctlPqgoCMLrGWI4Zxnq8yrsnXA==", "dev": true, "requires": { "buffer": "4.9.2", @@ -597,17 +591,105 @@ "dev": true }, "better-ajv-errors": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-0.6.7.tgz", - "integrity": "sha512-PYgt/sCzR4aGpyNy5+ViSQ77ognMnWq7745zM+/flYO4/Yisdtp9wDQW2IKCyVYPUxQt3E/b5GBSwfhd1LPdlg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/runtime": "^7.0.0", - "chalk": "^2.4.1", - "core-js": "^3.2.1", - "json-to-ast": "^2.0.3", - "jsonpointer": "^4.0.1", - "leven": "^3.1.0" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-1.1.0.tgz", + "integrity": "sha512-4f7VXfxzC07XumLXkfkjo1Q3Gmh0PDA4G6hzAKKrtOJ9NQDPjgPlvavYBaOUXi8c7ymQj49gqbO4bHhA+boDbQ==", + "requires": { + "@babel/code-frame": "^7.16.0", + "@humanwhocodes/momoa": "^2.0.2", + "chalk": "^4.1.2", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0 < 4" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "requires": { + "@babel/highlight": "^7.16.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" + }, + "@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } } }, "binary-extensions": { @@ -694,6 +776,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -704,6 +787,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -770,11 +854,6 @@ "wrap-ansi": "^7.0.0" } }, - "code-error-fragment": { - "version": "0.0.230", - "resolved": "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz", - "integrity": "sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==" - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -809,11 +888,6 @@ "safe-buffer": "~5.1.1" } }, - "core-js": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", - "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==" - }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -1332,11 +1406,6 @@ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" - }, "gremlin": { "version": "3.4.7", "resolved": "https://registry.npmjs.org/gremlin/-/gremlin-3.4.7.tgz", @@ -1816,8 +1885,7 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "3.13.1", @@ -1846,15 +1914,6 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, - "json-to-ast": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json-to-ast/-/json-to-ast-2.1.0.tgz", - "integrity": "sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==", - "requires": { - "code-error-fragment": "0.0.230", - "grapheme-splitter": "^1.0.4" - } - }, "json5": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", @@ -1873,9 +1932,9 @@ } }, "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", + "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==" }, "just-extend": { "version": "4.0.2", diff --git a/source/backend/functions/api/package.json b/source/backend/functions/api/package.json index 321e4ea5..27cc812e 100644 --- a/source/backend/functions/api/package.json +++ b/source/backend/functions/api/package.json @@ -22,7 +22,7 @@ "ajv": "6.12.3", "aws4": "1.10.0", "axios": "0.21.2", - "better-ajv-errors": "0.6.7", + "better-ajv-errors": "1.1.0", "gremlin": "3.4.7", "is-iso-date": "0.0.1", "ramda": "0.27.0", diff --git a/source/backend/functions/cost-parser/package-lock.json b/source/backend/functions/cost-parser/package-lock.json index 19c775c8..6c9f2f29 100644 --- a/source/backend/functions/cost-parser/package-lock.json +++ b/source/backend/functions/cost-parser/package-lock.json @@ -333,14 +333,6 @@ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, - "@tuplo/dynoexpr": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@tuplo/dynoexpr/-/dynoexpr-1.17.0.tgz", - "integrity": "sha512-MuqSXBaWmOcxAjdJdT1WIVGpzcusp12Uy3BqbVHtLKlOJGqMkO/B3pcx57/eJh67QzuYiFJ1/G5fHDKgcq9P5g==", - "requires": { - "aws-sdk": "^2.2.0" - } - }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", @@ -480,9 +472,10 @@ } }, "aws-sdk": { - "version": "2.747.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.747.0.tgz", - "integrity": "sha512-JA2ygLXFw0tLjc6nlauH3wnc6haoPU023fJCZN01xrw22l+s4rRjVGxJmG83VrfCmq+lrqCv0kVwlzyxbixGhA==", + "version": "2.1031.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1031.0.tgz", + "integrity": "sha512-XXrQG7l9WMYSg4fZNZctrgPjpTb6HPk1DaM2vXfhMHaNl8TyHjyeMkvU+CC0ctlPqgoCMLrGWI4Zxnq8yrsnXA==", + "dev": true, "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -502,9 +495,10 @@ "dev": true }, "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true }, "binary-extensions": { "version": "2.2.0", @@ -546,6 +540,7 @@ "version": "4.9.2", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", @@ -1035,7 +1030,8 @@ "events": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true }, "external-editor": { "version": "3.1.0", @@ -1296,7 +1292,8 @@ "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true }, "ignore": { "version": "4.0.6", @@ -1520,7 +1517,8 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, "isexe": { "version": "2.0.0", @@ -1630,7 +1628,8 @@ "jmespath": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "dev": true }, "js-tokens": { "version": "4.0.0", @@ -2370,7 +2369,8 @@ "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true }, "ramda": { "version": "0.27.0", @@ -2486,7 +2486,8 @@ "sax": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=", + "dev": true }, "semver": { "version": "6.3.0", @@ -2797,6 +2798,7 @@ "version": "0.10.3", "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "dev": true, "requires": { "punycode": "1.3.2", "querystring": "0.2.0" @@ -2805,14 +2807,16 @@ "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true } } }, "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true }, "v8-compile-cache": { "version": "2.1.1", @@ -2915,6 +2919,7 @@ "version": "0.4.19", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "dev": true, "requires": { "sax": ">=0.6.0", "xmlbuilder": "~9.0.1" @@ -2923,7 +2928,8 @@ "xmlbuilder": { "version": "9.0.7", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true }, "y18n": { "version": "4.0.3", diff --git a/source/backend/functions/cost-parser/package.json b/source/backend/functions/cost-parser/package.json index 06727632..cf4dd44b 100644 --- a/source/backend/functions/cost-parser/package.json +++ b/source/backend/functions/cost-parser/package.json @@ -15,14 +15,13 @@ "license": "ISC", "dependencies": { "@most/core": "^1.6.1", - "@tuplo/dynoexpr": "^1.9.0", "athena-express": "^6.0.4", "dayjs": "^1.10.5", "most": "^1.9.0", "ramda": "0.27.0" }, "devDependencies": { - "aws-sdk": "^2.726.0", + "aws-sdk": "latest", "chai": "^4.3.4", "mocha": "^9.1.2", "nyc": "^15.1.0", diff --git a/source/backend/functions/cur-setup/package-lock.json b/source/backend/functions/cur-setup/package-lock.json index f01eac58..312eb20b 100644 --- a/source/backend/functions/cur-setup/package-lock.json +++ b/source/backend/functions/cur-setup/package-lock.json @@ -537,9 +537,9 @@ "dev": true }, "aws-sdk": { - "version": "2.962.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.962.0.tgz", - "integrity": "sha512-uY87X0bQ0tFjxt/AxJM9gZDxNzz8hD7uJG4azw7fgZibBqG2eYMAw2ythkQB/B8kLPenm/jr5+FsIG28qaC63Q==", + "version": "2.1031.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1031.0.tgz", + "integrity": "sha512-XXrQG7l9WMYSg4fZNZctrgPjpTb6HPk1DaM2vXfhMHaNl8TyHjyeMkvU+CC0ctlPqgoCMLrGWI4Zxnq8yrsnXA==", "dev": true, "requires": { "buffer": "4.9.2", diff --git a/source/backend/functions/cur-setup/package.json b/source/backend/functions/cur-setup/package.json index 12fce63b..5a524ac9 100644 --- a/source/backend/functions/cur-setup/package.json +++ b/source/backend/functions/cur-setup/package.json @@ -17,7 +17,7 @@ "ramda": "0.27.0" }, "devDependencies": { - "aws-sdk": "^2.962.0", + "aws-sdk": "latest", "chai": "^4.3.4", "mocha": "^8.3.2", "nyc": "^15.1.0", diff --git a/source/backend/functions/graph-api/package-lock.json b/source/backend/functions/graph-api/package-lock.json index ab0a0e94..242bc0c0 100644 --- a/source/backend/functions/graph-api/package-lock.json +++ b/source/backend/functions/graph-api/package-lock.json @@ -518,9 +518,9 @@ } }, "aws-sdk": { - "version": "2.1006.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1006.0.tgz", - "integrity": "sha512-lwXAy706+1HVQqMnHaahdeBZZbdu6TWrtTY0ydeG0qanwldTFNMLczwnETTZWYsqNAU+wjl1VzmFdMO4gePLNQ==", + "version": "2.1031.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1031.0.tgz", + "integrity": "sha512-XXrQG7l9WMYSg4fZNZctrgPjpTb6HPk1DaM2vXfhMHaNl8TyHjyeMkvU+CC0ctlPqgoCMLrGWI4Zxnq8yrsnXA==", "dev": true, "requires": { "buffer": "4.9.2", diff --git a/source/backend/functions/search/package-lock.json b/source/backend/functions/search/package-lock.json index b29d9ff2..12149b91 100644 --- a/source/backend/functions/search/package-lock.json +++ b/source/backend/functions/search/package-lock.json @@ -393,9 +393,10 @@ "dev": true }, "aws-sdk": { - "version": "2.714.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.714.0.tgz", - "integrity": "sha512-5wtzueYdq8nj/7TgW64kfVUJC2lXSMb+0Iv3F4tBqzdZMAjbva82qnGGkWRFmy1jqq9Zll0tJsR1tnskkuK67g==", + "version": "2.1031.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1031.0.tgz", + "integrity": "sha512-XXrQG7l9WMYSg4fZNZctrgPjpTb6HPk1DaM2vXfhMHaNl8TyHjyeMkvU+CC0ctlPqgoCMLrGWI4Zxnq8yrsnXA==", + "dev": true, "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -411,7 +412,8 @@ "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true } } }, @@ -422,9 +424,10 @@ "dev": true }, "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true }, "binary-extensions": { "version": "2.2.0", @@ -461,17 +464,11 @@ "version": "4.9.2", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", "isarray": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - } } }, "caching-transform": { @@ -933,7 +930,8 @@ "events": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true }, "external-editor": { "version": "3.1.0", @@ -1186,7 +1184,8 @@ "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true }, "ignore": { "version": "4.0.6", @@ -1402,6 +1401,12 @@ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -1502,7 +1507,8 @@ "jmespath": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "dev": true }, "js-tokens": { "version": "4.0.0", @@ -2159,7 +2165,8 @@ "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true }, "randombytes": { "version": "2.1.0", @@ -2279,7 +2286,8 @@ "sax": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=", + "dev": true }, "semver": { "version": "6.3.0", @@ -2559,6 +2567,7 @@ "version": "0.10.3", "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "dev": true, "requires": { "punycode": "1.3.2", "querystring": "0.2.0" @@ -2567,7 +2576,8 @@ "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true } } }, @@ -2678,6 +2688,7 @@ "version": "0.4.19", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "dev": true, "requires": { "sax": ">=0.6.0", "xmlbuilder": "~9.0.1" @@ -2686,7 +2697,8 @@ "xmlbuilder": { "version": "9.0.7", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true }, "y18n": { "version": "4.0.3", diff --git a/source/backend/functions/search/package.json b/source/backend/functions/search/package.json index 08e8172b..56faadc7 100644 --- a/source/backend/functions/search/package.json +++ b/source/backend/functions/search/package.json @@ -15,13 +15,11 @@ }, "author": "damackli", "license": "ISC", - "dependencies": { - "aws-sdk": "2.714.0" - }, "devDependencies": { "chai": "^4.2.0", "mocha": "^9.1.2", "nyc": "^15.1.0", - "rewire": "^5.0.0" + "rewire": "^5.0.0", + "aws-sdk": "latest" } } diff --git a/source/backend/functions/settings/package-lock.json b/source/backend/functions/settings/package-lock.json index 698b9c4d..31e4002b 100644 --- a/source/backend/functions/settings/package-lock.json +++ b/source/backend/functions/settings/package-lock.json @@ -442,9 +442,9 @@ "dev": true }, "aws-sdk": { - "version": "2.735.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.735.0.tgz", - "integrity": "sha512-nu5Cz2YcjHv2kgqtxW/DO0lz4Yc8g+xSB0Lb7Dp5iBEfyWLGGnhn5u4ALeFO9UUxLuSieirT1BR18BWSWH/Hlg==", + "version": "2.1031.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1031.0.tgz", + "integrity": "sha512-XXrQG7l9WMYSg4fZNZctrgPjpTb6HPk1DaM2vXfhMHaNl8TyHjyeMkvU+CC0ctlPqgoCMLrGWI4Zxnq8yrsnXA==", "dev": true, "requires": { "buffer": "4.9.2", @@ -465,9 +465,9 @@ "dev": true }, "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, "binary-extensions": { diff --git a/source/backend/functions/settings/package.json b/source/backend/functions/settings/package.json index 1730b13f..421cf224 100644 --- a/source/backend/functions/settings/package.json +++ b/source/backend/functions/settings/package.json @@ -18,7 +18,7 @@ "ramda": "0.27.0" }, "devDependencies": { - "aws-sdk": "^2.726.0", + "aws-sdk": "latest", "chai": "^4.2.0", "mocha": "^9.1.2", "nyc": "^15.1.0", diff --git a/source/backend/functions/setup/package-lock.json b/source/backend/functions/setup/package-lock.json index be3edebc..0673fb60 100644 --- a/source/backend/functions/setup/package-lock.json +++ b/source/backend/functions/setup/package-lock.json @@ -5,9 +5,10 @@ "requires": true, "dependencies": { "aws-sdk": { - "version": "2.713.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.713.0.tgz", - "integrity": "sha512-axR1eOVn134KXJc1IT+Au2TXcK6oswY+4nvGe5GfU3pXeehhe0xNeP9Bw9yF36TRBxuvu4IJ2hRHDKma05smgA==", + "version": "2.1031.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1031.0.tgz", + "integrity": "sha512-XXrQG7l9WMYSg4fZNZctrgPjpTb6HPk1DaM2vXfhMHaNl8TyHjyeMkvU+CC0ctlPqgoCMLrGWI4Zxnq8yrsnXA==", + "dev": true, "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -23,7 +24,8 @@ "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true } } }, @@ -33,9 +35,10 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true }, "big-integer": { "version": "1.6.48", @@ -69,6 +72,7 @@ "version": "4.9.2", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", @@ -114,7 +118,8 @@ "events": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true }, "fs.realpath": { "version": "1.0.0", @@ -153,7 +158,8 @@ "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true }, "inflight": { "version": "1.0.6", @@ -177,7 +183,8 @@ "jmespath": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "dev": true }, "listenercount": { "version": "1.0.1", @@ -239,12 +246,14 @@ "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true }, "ramda": { "version": "0.27.1", @@ -281,7 +290,8 @@ "sax": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=", + "dev": true }, "setimmediate": { "version": "1.0.5", @@ -322,6 +332,7 @@ "version": "0.10.3", "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "dev": true, "requires": { "punycode": "1.3.2", "querystring": "0.2.0" @@ -346,6 +357,7 @@ "version": "0.4.19", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "dev": true, "requires": { "sax": ">=0.6.0", "xmlbuilder": "~9.0.1" @@ -354,7 +366,8 @@ "xmlbuilder": { "version": "9.0.7", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true } } } diff --git a/source/backend/functions/setup/package.json b/source/backend/functions/setup/package.json index cdcee29e..8993f061 100644 --- a/source/backend/functions/setup/package.json +++ b/source/backend/functions/setup/package.json @@ -12,11 +12,12 @@ "build": "npm run clean && npm i --production && npm run build:zip && npm run build:dist" }, "dependencies": { - "aws-sdk": "2.713.0", "mime-types": "2.1.27", "ramda": "0.27.1", "unzipper": "0.10.11", "uuid": "3.3.3" }, - "devDependencies": {} + "devDependencies": { + "aws-sdk": "latest" + } } diff --git a/source/cfn/templates/perspective-cloudfront.yaml b/source/cfn/templates/perspective-cloudfront.yaml index 5b026082..105ece25 100644 --- a/source/cfn/templates/perspective-cloudfront.yaml +++ b/source/cfn/templates/perspective-cloudfront.yaml @@ -52,6 +52,20 @@ Resources: Fn::GetAtt: - CloudFrontOriginAccessIdentity - S3CanonicalUserId + - Sid: HttpsOnly + Action: '*' + Effect: Deny + Resource: + - Fn::Sub: + - arn:aws:s3:::${WebUIBucketName} + - WebUIBucketName: '{{resolve:ssm:WebUIBucketName:1}}' + - Fn::Sub: + - arn:aws:s3:::${WebUIBucketName}/* + - WebUIBucketName: '{{resolve:ssm:WebUIBucketName:1}}' + Principal: '*' + Condition: + Bool: + 'aws:SecureTransport': 'false' CloudFrontOriginAccessIdentity: Type: AWS::CloudFront::CloudFrontOriginAccessIdentity Properties: diff --git a/source/frontend/src/Main.js b/source/frontend/src/Main.js index b63f09f2..218e9044 100644 --- a/source/frontend/src/Main.js +++ b/source/frontend/src/Main.js @@ -31,7 +31,6 @@ const fromDate = dayjs() .format('YYYY-MM-DD'); const toDate = dayjs() - .endOf('month') .format('YYYY-MM-DD'); export default (...props) => { diff --git a/source/frontend/src/Utils/Dictionaries/service-names.js b/source/frontend/src/Utils/Dictionaries/service-names.js index 7f56ab2d..02222c0c 100644 --- a/source/frontend/src/Utils/Dictionaries/service-names.js +++ b/source/frontend/src/Utils/Dictionaries/service-names.js @@ -272,6 +272,9 @@ export const services = [ { "service": "Amazon Elasticsearch Service" }, + { + "service": "Amazon OpenSearch Service" + }, { "service": "EMR" }, diff --git a/source/frontend/src/components/Drawer/Costs/QueryBuilder/CostQuery.js b/source/frontend/src/components/Drawer/Costs/QueryBuilder/CostQuery.js index ed1e3835..5e4d3a85 100644 --- a/source/frontend/src/components/Drawer/Costs/QueryBuilder/CostQuery.js +++ b/source/frontend/src/components/Drawer/Costs/QueryBuilder/CostQuery.js @@ -100,8 +100,8 @@ const CostQuery = ({ const buildQuery = () => { return { - toDate: query.toDate ? query.toDate : dayjs().endOf('month').format('YYYY-MM-DD'), - fromDate: query.fromDate ? query.fromDate : dayjs().startOf('month').format('YYYY-MM-DD') , + toDate: R.pathOr(dayjs().format('YYYY-MM-DD'), ['queryOptions', 'resourcesByCostQuery', 'period', 'to'], query), + fromDate: R.pathOr(dayjs().startOf('month').format('YYYY-MM-DD'), ['queryOptions', 'resourcesByCostQuery', 'period', 'from'], query) }; }; diff --git a/source/frontend/src/components/Drawer/Costs/QueryBuilder/CostQueryForm.js b/source/frontend/src/components/Drawer/Costs/QueryBuilder/CostQueryForm.js index 1efd1e19..1ea32b25 100644 --- a/source/frontend/src/components/Drawer/Costs/QueryBuilder/CostQueryForm.js +++ b/source/frontend/src/components/Drawer/Costs/QueryBuilder/CostQueryForm.js @@ -107,7 +107,7 @@ const CostQueryForm = ({ executeQuery, loading, queryDetails }) => { dayjs().startOf('month').format('YYYY-MM-DD') ); const [toDate, setToDate] = React.useState( - dayjs().endOf('month').format('YYYY-MM-DD') + dayjs().format('YYYY-MM-DD') ); const [selectedAccounts, setSelectedAccounts] = React.useState([]); const [selectedRegions, setSelectedRegions] = React.useState([]); @@ -341,6 +341,9 @@ const CostQueryForm = ({ executeQuery, loading, queryDetails }) => { placeholder='YYYY/MM/DD' previousMonthAriaLabel='Previous month' todayAriaLabel='Today' + isDateEnabled={date => + new dayjs(date).isBefore(new dayjs()) + } /> { placeholder='YYYY/MM/DD' previousMonthAriaLabel='Previous month' todayAriaLabel='Today' + isDateEnabled={date => + new dayjs(date).isBefore(new dayjs()) + } /> diff --git a/source/frontend/src/components/Drawer/Costs/QueryBuilder/CostQueryResults.js b/source/frontend/src/components/Drawer/Costs/QueryBuilder/CostQueryResults.js index c9c68b38..9a791973 100644 --- a/source/frontend/src/components/Drawer/Costs/QueryBuilder/CostQueryResults.js +++ b/source/frontend/src/components/Drawer/Costs/QueryBuilder/CostQueryResults.js @@ -8,7 +8,6 @@ import FormField from '@awsui/components-react/form-field'; import Container from '@awsui/components-react/container'; import Multiselect from '@awsui/components-react/multiselect'; import ColumnLayout from '@awsui/components-react/column-layout'; -import DatePicker from '@awsui/components-react/date-picker'; import ExpandableSection from '@awsui/components-react/expandable-section'; import Input from '@awsui/components-react/input'; import getSymbolFromCurrency from 'currency-symbol-map'; @@ -40,7 +39,11 @@ const columns = [ id: 'resource', header: 'Resource', cell: (e) => - e.line_item_resource_id ? e.line_item_resource_id : (e.product_servicename ? e.product_servicename : 'undefined'), + e.line_item_resource_id + ? e.line_item_resource_id + : e.product_servicename + ? e.product_servicename + : 'undefined', width: 320, minWidth: 320, }, @@ -121,7 +124,7 @@ const CostQueryResults = ({
@@ -164,6 +169,9 @@ CostQueryResults.propTypes = { results: PropTypes.object.isRequired, selectedResources: PropTypes.array.isRequired, setSelectedResources: PropTypes.func.isRequired, + queryType: PropTypes.string, + fetchNext: PropTypes.func, + addToGraph: PropTypes.func }; export default CostQueryResults; diff --git a/source/frontend/src/components/Drawer/Costs/Report/CostForm.js b/source/frontend/src/components/Drawer/Costs/Report/CostForm.js index 243669b0..fcc263ba 100644 --- a/source/frontend/src/components/Drawer/Costs/Report/CostForm.js +++ b/source/frontend/src/components/Drawer/Costs/Report/CostForm.js @@ -128,6 +128,9 @@ export default ({ placeholder='YYYY/MM/DD' previousMonthAriaLabel='Previous month' todayAriaLabel='Today' + isDateEnabled={date => + new dayjs(date).isBefore(new dayjs()) + } /> + new dayjs(date).isBefore(new dayjs()) + } /> diff --git a/source/frontend/src/components/Drawer/Costs/Report/CostOverview.js b/source/frontend/src/components/Drawer/Costs/Report/CostOverview.js index 51f4adf2..bb15f435 100644 --- a/source/frontend/src/components/Drawer/Costs/Report/CostOverview.js +++ b/source/frontend/src/components/Drawer/Costs/Report/CostOverview.js @@ -42,7 +42,7 @@ const CostOverview = ({ resources, costDispatch, costPreferences }) => { ); const [toDate, setToDate] = React.useState( R.pathOr( - dayjs().endOf('month').format('YYYY-MM-DD'), + dayjs().format('YYYY-MM-DD'), ['period', 'toDate'], costPreferences ) diff --git a/source/frontend/src/components/Drawer/PersistentDrawer/Costs/CostContainer.js b/source/frontend/src/components/Drawer/PersistentDrawer/Costs/CostContainer.js index 3975fd44..ceafc90b 100644 --- a/source/frontend/src/components/Drawer/PersistentDrawer/Costs/CostContainer.js +++ b/source/frontend/src/components/Drawer/PersistentDrawer/Costs/CostContainer.js @@ -52,7 +52,6 @@ export default function PersistentDrawerLeft() { const [toDate, setToDate] = React.useState( R.pathOr( dayjs() - .endOf('month') .format('YYYY-MM-DD'), ['period', 'toDate'], costPreferences @@ -260,6 +259,9 @@ export default function PersistentDrawerLeft() { placeholder='YYYY-MM-DD' previousMonthAriaLabel='Previous month' todayAriaLabel='Today' + isDateEnabled={date => + new dayjs(date).isBefore(new dayjs()) + } /> + new dayjs(date).isBefore(new dayjs()) + } /> diff --git a/source/frontend/src/components/Drawer/Settings/Costs/CostSettings.js b/source/frontend/src/components/Drawer/Settings/Costs/CostSettings.js index 336bc971..4a6af5f7 100644 --- a/source/frontend/src/components/Drawer/Settings/Costs/CostSettings.js +++ b/source/frontend/src/components/Drawer/Settings/Costs/CostSettings.js @@ -1,16 +1,11 @@ -import React, { useState, useEffect } from 'react'; +import React from 'react'; import { - Header, Alert, Toggle, SpaceBetween, Container, Form, - Link, - Grid, - FormField, - ColumnLayout, - DatePicker, + TextContent, } from '@awsui/components-react'; import { useCostsState } from '../../../Contexts/CostsContext'; @@ -32,7 +27,7 @@ export default () => { ); const [toDate, setToDate] = React.useState( R.pathOr( - dayjs().endOf('month').format('YYYY-MM-DD'), + dayjs().format('YYYY-MM-DD'), ['period', 'toDate'], costPreferences )