@gradientedge/cdk-utils 7.10.0 → 7.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,6 +29,7 @@ const iam = __importStar(require("aws-cdk-lib/aws-iam"));
29
29
  const lambda = __importStar(require("aws-cdk-lib/aws-lambda"));
30
30
  const utils = __importStar(require("../../utils"));
31
31
  const cloudfront_manager_1 = require("./cloudfront-manager");
32
+ const ssm_manager_1 = require("./ssm-manager");
32
33
  /**
33
34
  * @stability stable
34
35
  * @category cdk-utils.lambda-manager
@@ -104,8 +105,10 @@ class LambdaManager {
104
105
  architecture: props.architecture ?? lambda.Architecture.ARM_64,
105
106
  environment: {
106
107
  REGION: scope.props.region,
107
- LAST_MODIFIED_TS: new Date().toISOString(),
108
108
  STAGE: scope.props.stage,
109
+ LAST_MODIFIED_TS: props.excludeLastModifiedTimestamp
110
+ ? ''
111
+ : scope.ssmManager.readStringParameter(`${id}-sm-ts`, scope, `${ssm_manager_1.SsmManager.SECRETS_MODIFIED_TIMESTAMP_PARAM}-${scope.props.stage}`),
109
112
  ...environment,
110
113
  },
111
114
  filesystem: accessPoint
@@ -23,6 +23,7 @@ import * as types from '../../types';
23
23
  * @see [CDK Systems Manager Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ssm-readme.html}
24
24
  */
25
25
  export declare class SsmManager {
26
+ static SECRETS_MODIFIED_TIMESTAMP_PARAM: string;
26
27
  /**
27
28
  * Method to write a string parameter to the parameters store
28
29
  * @param {string} id scoped id of the resource
@@ -48,6 +48,7 @@ const utils = __importStar(require("../../utils"));
48
48
  * @see [CDK Systems Manager Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ssm-readme.html}
49
49
  */
50
50
  class SsmManager {
51
+ static SECRETS_MODIFIED_TIMESTAMP_PARAM = 'secrets-last-modified-timestamp';
51
52
  /**
52
53
  * Method to write a string parameter to the parameters store
53
54
  * @param {string} id scoped id of the resource
@@ -477,8 +477,6 @@ export interface CloudTrailProps extends cloudtrail.CfnTrailProps {
477
477
  * @subcategory Properties
478
478
  */
479
479
  export interface DashboardProps extends watch.DashboardProps {
480
- positionX: number;
481
- positionY: number;
482
480
  }
483
481
  /**
484
482
  * @category cdk-utils.cloudwatch-manager
@@ -596,6 +594,7 @@ export interface LambdaProps extends lambda.FunctionProps {
596
594
  dlq?: QueueProps;
597
595
  redriveq?: QueueProps;
598
596
  timeoutInSecs?: number;
597
+ excludeLastModifiedTimestamp?: boolean;
599
598
  }
600
599
  /**
601
600
  * @category cdk-utils.lambda-manager
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gradientedge/cdk-utils",
3
- "version": "7.10.0",
3
+ "version": "7.12.0",
4
4
  "description": "Utilities for AWS CDK provisioning",
5
5
  "main": "dist/index.js",
6
6
  "engines": {
@@ -38,7 +38,7 @@
38
38
  "prettier": "npx prettier --check \"**/*.{ts,json,md}\"",
39
39
  "prettify": "npx prettier --write \"**/*.{ts,json,md}\"",
40
40
  "test": "rimraf coverage && npx jest --ci --runInBand",
41
- "upgrade": "ncu -u -x lerna",
41
+ "update:deps": "ncu -u -x lerna",
42
42
  "validate": "yarn prettier && yarn test"
43
43
  },
44
44
  "husky": {
@@ -47,12 +47,12 @@
47
47
  }
48
48
  },
49
49
  "dependencies": {
50
- "@types/lodash": "^4.14.190",
51
- "@types/node": "^18.11.9",
50
+ "@types/lodash": "^4.14.191",
51
+ "@types/node": "^18.11.11",
52
52
  "app-root-path": "^3.1.0",
53
- "aws-cdk-lib": "^2.52.0",
54
- "aws-sdk": "^2.1262.0",
55
- "constructs": "^10.1.173",
53
+ "aws-cdk-lib": "^2.54.0",
54
+ "aws-sdk": "^2.1270.0",
55
+ "constructs": "^10.1.183",
56
56
  "lodash": "^4.17.21",
57
57
  "moment": "^2.29.4",
58
58
  "nconf": "^0.12.0",
@@ -61,16 +61,16 @@
61
61
  },
62
62
  "devDependencies": {
63
63
  "@babel/plugin-proposal-class-properties": "^7.18.6",
64
- "@types/jest": "^29.2.3",
65
- "@typescript-eslint/eslint-plugin": "^5.44.0",
66
- "@typescript-eslint/parser": "^5.44.0",
64
+ "@types/jest": "^29.2.4",
65
+ "@typescript-eslint/eslint-plugin": "^5.46.0",
66
+ "@typescript-eslint/parser": "^5.46.0",
67
67
  "aws-cdk": "*",
68
68
  "babel-eslint": "^10.1.0",
69
69
  "better-docs": "^2.7.2",
70
70
  "codecov": "^3.8.3",
71
- "commitizen": "^4.2.5",
71
+ "commitizen": "^4.2.6",
72
72
  "dotenv": "^16.0.3",
73
- "eslint": "^8.28.0",
73
+ "eslint": "^8.29.0",
74
74
  "eslint-config-prettier": "^8.5.0",
75
75
  "eslint-plugin-import": "^2.26.0",
76
76
  "husky": "^8.0.2",
@@ -81,17 +81,17 @@
81
81
  "jsdoc-babel": "^0.5.0",
82
82
  "jsdoc-mermaid": "^1.0.0",
83
83
  "lerna": "^5.6.2",
84
- "prettier": "^2.8.0",
84
+ "prettier": "^2.8.1",
85
85
  "prettier-plugin-organize-imports": "^3.2.1",
86
86
  "rimraf": "^3.0.2",
87
87
  "semantic-release": "^19.0.5",
88
88
  "taffydb": "^2.7.3",
89
89
  "ts-jest": "^29.0.3",
90
90
  "ts-node": "^10.9.1",
91
- "typescript": "4.9.3"
91
+ "typescript": "4.9.4"
92
92
  },
93
93
  "optionalDependencies": {
94
- "@babel/core": "^7.20.2",
94
+ "@babel/core": "^7.20.5",
95
95
  "prop-types": "^15.8.1",
96
96
  "react": "^18.2.0",
97
97
  "react-dom": "^18.2.0"
@@ -7,6 +7,7 @@ import * as common from '../../common'
7
7
  import * as types from '../../types'
8
8
  import * as utils from '../../utils'
9
9
  import { CloudFrontManager } from './cloudfront-manager'
10
+ import { SsmManager } from './ssm-manager'
10
11
 
11
12
  /**
12
13
  * @stability stable
@@ -103,8 +104,14 @@ export class LambdaManager {
103
104
  architecture: props.architecture ?? lambda.Architecture.ARM_64,
104
105
  environment: {
105
106
  REGION: scope.props.region,
106
- LAST_MODIFIED_TS: new Date().toISOString(),
107
107
  STAGE: scope.props.stage,
108
+ LAST_MODIFIED_TS: props.excludeLastModifiedTimestamp
109
+ ? ''
110
+ : scope.ssmManager.readStringParameter(
111
+ `${id}-sm-ts`,
112
+ scope,
113
+ `${SsmManager.SECRETS_MODIFIED_TIMESTAMP_PARAM}-${scope.props.stage}`
114
+ ),
108
115
  ...environment,
109
116
  },
110
117
  filesystem: accessPoint
@@ -25,6 +25,7 @@ import * as utils from '../../utils'
25
25
  * @see [CDK Systems Manager Module]{@link https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ssm-readme.html}
26
26
  */
27
27
  export class SsmManager {
28
+ public static SECRETS_MODIFIED_TIMESTAMP_PARAM = 'secrets-last-modified-timestamp'
28
29
  /**
29
30
  * Method to write a string parameter to the parameters store
30
31
  * @param {string} id scoped id of the resource
@@ -502,10 +502,7 @@ export interface CloudTrailProps extends cloudtrail.CfnTrailProps {}
502
502
  * @category cdk-utils.cloudwatch-manager
503
503
  * @subcategory Properties
504
504
  */
505
- export interface DashboardProps extends watch.DashboardProps {
506
- positionX: number
507
- positionY: number
508
- }
505
+ export interface DashboardProps extends watch.DashboardProps {}
509
506
 
510
507
  /**
511
508
  * @category cdk-utils.cloudwatch-manager
@@ -634,6 +631,7 @@ export interface LambdaProps extends lambda.FunctionProps {
634
631
  dlq?: QueueProps
635
632
  redriveq?: QueueProps
636
633
  timeoutInSecs?: number
634
+ excludeLastModifiedTimestamp?: boolean
637
635
  }
638
636
 
639
637
  /**