@gradientedge/cdk-utils 4.1.2 → 4.2.3

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.
Files changed (227) hide show
  1. package/dist/index.d.ts +3 -25
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -25
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/lib/common/commonConstruct.d.ts +25 -45
  6. package/dist/src/lib/common/commonConstruct.d.ts.map +1 -1
  7. package/dist/src/lib/common/commonConstruct.js +48 -49
  8. package/dist/src/lib/common/commonConstruct.js.map +1 -1
  9. package/dist/src/lib/common/commonStack.d.ts +1 -1
  10. package/dist/src/lib/common/commonStack.d.ts.map +1 -1
  11. package/dist/src/lib/common/commonStack.js.map +1 -1
  12. package/dist/src/lib/common/index.d.ts +3 -0
  13. package/dist/src/lib/common/index.d.ts.map +1 -0
  14. package/dist/src/lib/common/index.js +15 -0
  15. package/dist/src/lib/common/index.js.map +1 -0
  16. package/dist/src/lib/construct/graphQLApiLambda.d.ts +5 -5
  17. package/dist/src/lib/construct/graphQLApiLambda.d.ts.map +1 -1
  18. package/dist/src/lib/construct/graphQLApiLambda.js +2 -2
  19. package/dist/src/lib/construct/graphQLApiLambda.js.map +1 -1
  20. package/dist/src/lib/construct/index.d.ts +4 -0
  21. package/dist/src/lib/construct/index.d.ts.map +1 -0
  22. package/dist/src/lib/construct/index.js +16 -0
  23. package/dist/src/lib/construct/index.js.map +1 -0
  24. package/dist/src/lib/construct/siteWithEcsBackend.d.ts +20 -8
  25. package/dist/src/lib/construct/siteWithEcsBackend.d.ts.map +1 -1
  26. package/dist/src/lib/construct/siteWithEcsBackend.js +32 -5
  27. package/dist/src/lib/construct/siteWithEcsBackend.js.map +1 -1
  28. package/dist/src/lib/construct/staticSite.d.ts +17 -5
  29. package/dist/src/lib/construct/staticSite.d.ts.map +1 -1
  30. package/dist/src/lib/construct/staticSite.js +30 -2
  31. package/dist/src/lib/construct/staticSite.js.map +1 -1
  32. package/dist/src/lib/manager/{acmManager.d.ts → aws/acmManager.d.ts} +7 -7
  33. package/dist/src/lib/manager/aws/acmManager.d.ts.map +1 -0
  34. package/dist/src/lib/manager/{acmManager.js → aws/acmManager.js} +7 -7
  35. package/dist/src/lib/manager/aws/acmManager.js.map +1 -0
  36. package/dist/src/lib/manager/{apiManager.d.ts → aws/apiManager.d.ts} +10 -10
  37. package/dist/src/lib/manager/aws/apiManager.d.ts.map +1 -0
  38. package/dist/src/lib/manager/{apiManager.js → aws/apiManager.js} +12 -14
  39. package/dist/src/lib/manager/aws/apiManager.js.map +1 -0
  40. package/dist/src/lib/manager/{appConfigManager.d.ts → aws/appConfigManager.d.ts} +16 -16
  41. package/dist/src/lib/manager/aws/appConfigManager.d.ts.map +1 -0
  42. package/dist/src/lib/manager/{appConfigManager.js → aws/appConfigManager.js} +18 -18
  43. package/dist/src/lib/manager/aws/appConfigManager.js.map +1 -0
  44. package/dist/src/lib/manager/aws/cloudFrontManager.d.ts +112 -0
  45. package/dist/src/lib/manager/aws/cloudFrontManager.d.ts.map +1 -0
  46. package/dist/src/lib/manager/{cloudFrontManager.js → aws/cloudFrontManager.js} +47 -24
  47. package/dist/src/lib/manager/aws/cloudFrontManager.js.map +1 -0
  48. package/dist/src/lib/manager/{cloudTrailManager.d.ts → aws/cloudTrailManager.d.ts} +8 -8
  49. package/dist/src/lib/manager/aws/cloudTrailManager.d.ts.map +1 -0
  50. package/dist/src/lib/manager/{cloudTrailManager.js → aws/cloudTrailManager.js} +8 -8
  51. package/dist/src/lib/manager/aws/cloudTrailManager.js.map +1 -0
  52. package/dist/src/lib/manager/aws/cloudWatchManager.d.ts +121 -0
  53. package/dist/src/lib/manager/aws/cloudWatchManager.d.ts.map +1 -0
  54. package/dist/src/lib/manager/{cloudWatchManager.js → aws/cloudWatchManager.js} +46 -35
  55. package/dist/src/lib/manager/aws/cloudWatchManager.js.map +1 -0
  56. package/dist/src/lib/manager/{codeBuildManager.d.ts → aws/codeBuildManager.d.ts} +7 -8
  57. package/dist/src/lib/manager/aws/codeBuildManager.d.ts.map +1 -0
  58. package/dist/src/lib/manager/{codeBuildManager.js → aws/codeBuildManager.js} +5 -5
  59. package/dist/src/lib/manager/aws/codeBuildManager.js.map +1 -0
  60. package/dist/src/lib/manager/{ecrManager.d.ts → aws/ecrManager.d.ts} +6 -6
  61. package/dist/src/lib/manager/aws/ecrManager.d.ts.map +1 -0
  62. package/dist/src/lib/manager/{ecrManager.js → aws/ecrManager.js} +6 -6
  63. package/dist/src/lib/manager/aws/ecrManager.js.map +1 -0
  64. package/dist/src/lib/manager/{ecsManager.d.ts → aws/ecsManager.d.ts} +11 -11
  65. package/dist/src/lib/manager/aws/ecsManager.d.ts.map +1 -0
  66. package/dist/src/lib/manager/{ecsManager.js → aws/ecsManager.js} +11 -11
  67. package/dist/src/lib/manager/aws/ecsManager.js.map +1 -0
  68. package/dist/src/lib/manager/{eksManager.d.ts → aws/eksManager.d.ts} +8 -8
  69. package/dist/src/lib/manager/aws/eksManager.d.ts.map +1 -0
  70. package/dist/src/lib/manager/{eksManager.js → aws/eksManager.js} +8 -8
  71. package/dist/src/lib/manager/aws/eksManager.js.map +1 -0
  72. package/dist/src/lib/manager/{eventManager.d.ts → aws/eventManager.d.ts} +11 -11
  73. package/dist/src/lib/manager/aws/eventManager.d.ts.map +1 -0
  74. package/dist/src/lib/manager/{eventManager.js → aws/eventManager.js} +12 -12
  75. package/dist/src/lib/manager/aws/eventManager.js.map +1 -0
  76. package/dist/src/lib/manager/aws/iamManager.d.ts +156 -0
  77. package/dist/src/lib/manager/aws/iamManager.d.ts.map +1 -0
  78. package/dist/src/lib/manager/{iamManager.js → aws/iamManager.js} +35 -34
  79. package/dist/src/lib/manager/aws/iamManager.js.map +1 -0
  80. package/dist/src/lib/manager/aws/index.d.ts +22 -0
  81. package/dist/src/lib/manager/aws/index.d.ts.map +1 -0
  82. package/dist/src/lib/manager/aws/index.js +34 -0
  83. package/dist/src/lib/manager/aws/index.js.map +1 -0
  84. package/dist/src/lib/manager/{lambdaManager.d.ts → aws/lambdaManager.d.ts} +19 -19
  85. package/dist/src/lib/manager/aws/lambdaManager.d.ts.map +1 -0
  86. package/dist/src/lib/manager/{lambdaManager.js → aws/lambdaManager.js} +19 -19
  87. package/dist/src/lib/manager/aws/lambdaManager.js.map +1 -0
  88. package/dist/src/lib/manager/{logManager.d.ts → aws/logManager.d.ts} +14 -14
  89. package/dist/src/lib/manager/aws/logManager.d.ts.map +1 -0
  90. package/dist/src/lib/manager/{logManager.js → aws/logManager.js} +12 -12
  91. package/dist/src/lib/manager/aws/logManager.js.map +1 -0
  92. package/dist/src/lib/manager/{route53Manager.d.ts → aws/route53Manager.d.ts} +16 -16
  93. package/dist/src/lib/manager/aws/route53Manager.d.ts.map +1 -0
  94. package/dist/src/lib/manager/{route53Manager.js → aws/route53Manager.js} +17 -17
  95. package/dist/src/lib/manager/aws/route53Manager.js.map +1 -0
  96. package/dist/src/lib/manager/aws/s3Manager.d.ts +73 -0
  97. package/dist/src/lib/manager/aws/s3Manager.d.ts.map +1 -0
  98. package/dist/src/lib/manager/{s3Manager.js → aws/s3Manager.js} +15 -15
  99. package/dist/src/lib/manager/aws/s3Manager.js.map +1 -0
  100. package/dist/src/lib/manager/{secretsManager.d.ts → aws/secretsManager.d.ts} +5 -5
  101. package/dist/src/lib/manager/aws/secretsManager.d.ts.map +1 -0
  102. package/dist/src/lib/manager/{secretsManager.js → aws/secretsManager.js} +3 -3
  103. package/dist/src/lib/manager/aws/secretsManager.js.map +1 -0
  104. package/dist/src/lib/manager/{snsManager.d.ts → aws/snsManager.d.ts} +11 -11
  105. package/dist/src/lib/manager/aws/snsManager.d.ts.map +1 -0
  106. package/dist/src/lib/manager/{snsManager.js → aws/snsManager.js} +12 -12
  107. package/dist/src/lib/manager/aws/snsManager.js.map +1 -0
  108. package/dist/src/lib/manager/{ssmManager.d.ts → aws/ssmManager.d.ts} +16 -16
  109. package/dist/src/lib/manager/aws/ssmManager.d.ts.map +1 -0
  110. package/dist/src/lib/manager/{ssmManager.js → aws/ssmManager.js} +13 -13
  111. package/dist/src/lib/manager/aws/ssmManager.js.map +1 -0
  112. package/dist/src/lib/manager/{vpcManager.d.ts → aws/vpcManager.d.ts} +10 -10
  113. package/dist/src/lib/manager/aws/vpcManager.d.ts.map +1 -0
  114. package/dist/src/lib/manager/{vpcManager.js → aws/vpcManager.js} +13 -13
  115. package/dist/src/lib/manager/aws/vpcManager.js.map +1 -0
  116. package/dist/src/lib/manager/aws/wafManager.d.ts +39 -0
  117. package/dist/src/lib/manager/aws/wafManager.d.ts.map +1 -0
  118. package/dist/src/lib/manager/{wafManager.js → aws/wafManager.js} +12 -12
  119. package/dist/src/lib/manager/aws/wafManager.js.map +1 -0
  120. package/dist/src/lib/manager/index.d.ts +2 -0
  121. package/dist/src/lib/manager/index.d.ts.map +1 -0
  122. package/dist/src/lib/manager/index.js +14 -0
  123. package/dist/src/lib/manager/index.js.map +1 -0
  124. package/dist/src/lib/{types.d.ts → types/aws/index.d.ts} +27 -16
  125. package/dist/src/lib/types/aws/index.d.ts.map +1 -0
  126. package/dist/src/lib/{types.js → types/aws/index.js} +1 -1
  127. package/dist/src/lib/types/aws/index.js.map +1 -0
  128. package/dist/src/lib/types/index.d.ts +2 -0
  129. package/dist/src/lib/types/index.d.ts.map +1 -0
  130. package/dist/src/lib/types/index.js +14 -0
  131. package/dist/src/lib/types/index.js.map +1 -0
  132. package/dist/src/lib/utils/aws/index.d.ts +16 -0
  133. package/dist/src/lib/utils/aws/index.d.ts.map +1 -0
  134. package/dist/src/lib/utils/aws/index.js +50 -0
  135. package/dist/src/lib/utils/aws/index.js.map +1 -0
  136. package/dist/src/lib/{utils.d.ts → utils/index.d.ts} +2 -26
  137. package/dist/src/lib/utils/index.d.ts.map +1 -0
  138. package/dist/src/lib/utils/index.js +85 -0
  139. package/dist/src/lib/utils/index.js.map +1 -0
  140. package/index.ts +3 -25
  141. package/package.json +26 -16
  142. package/src/lib/common/commonConstruct.ts +53 -73
  143. package/src/lib/common/commonStack.ts +1 -1
  144. package/src/lib/common/index.ts +2 -0
  145. package/src/lib/construct/graphQLApiLambda.ts +5 -5
  146. package/src/lib/construct/index.ts +3 -0
  147. package/src/lib/construct/siteWithEcsBackend.ts +44 -10
  148. package/src/lib/construct/staticSite.ts +40 -6
  149. package/src/lib/manager/{acmManager.ts → aws/acmManager.ts} +11 -11
  150. package/src/lib/manager/{apiManager.ts → aws/apiManager.ts} +16 -18
  151. package/src/lib/manager/{appConfigManager.ts → aws/appConfigManager.ts} +30 -26
  152. package/src/lib/manager/{cloudFrontManager.ts → aws/cloudFrontManager.ts} +67 -39
  153. package/src/lib/manager/{cloudTrailManager.ts → aws/cloudTrailManager.ts} +12 -12
  154. package/src/lib/manager/{cloudWatchManager.ts → aws/cloudWatchManager.ts} +78 -56
  155. package/src/lib/manager/{codeBuildManager.ts → aws/codeBuildManager.ts} +8 -8
  156. package/src/lib/manager/{ecrManager.ts → aws/ecrManager.ts} +8 -8
  157. package/src/lib/manager/{ecsManager.ts → aws/ecsManager.ts} +16 -16
  158. package/src/lib/manager/{eksManager.ts → aws/eksManager.ts} +12 -12
  159. package/src/lib/manager/{eventManager.ts → aws/eventManager.ts} +18 -18
  160. package/src/lib/manager/{iamManager.ts → aws/iamManager.ts} +65 -54
  161. package/src/lib/manager/aws/index.ts +21 -0
  162. package/src/lib/manager/{lambdaManager.ts → aws/lambdaManager.ts} +29 -29
  163. package/src/lib/manager/{logManager.ts → aws/logManager.ts} +22 -17
  164. package/src/lib/manager/{route53Manager.ts → aws/route53Manager.ts} +24 -24
  165. package/src/lib/manager/{s3Manager.ts → aws/s3Manager.ts} +24 -24
  166. package/src/lib/manager/{secretsManager.ts → aws/secretsManager.ts} +10 -5
  167. package/src/lib/manager/{snsManager.ts → aws/snsManager.ts} +18 -18
  168. package/src/lib/manager/{ssmManager.ts → aws/ssmManager.ts} +24 -19
  169. package/src/lib/manager/{vpcManager.ts → aws/vpcManager.ts} +17 -17
  170. package/src/lib/manager/{wafManager.ts → aws/wafManager.ts} +16 -16
  171. package/src/lib/manager/index.ts +1 -0
  172. package/src/lib/{types.ts → types/aws/index.ts} +27 -15
  173. package/src/lib/types/index.ts +1 -0
  174. package/src/lib/utils/aws/index.ts +34 -0
  175. package/src/lib/{utils.ts → utils/index.ts} +1 -45
  176. package/dist/src/lib/manager/acmManager.d.ts.map +0 -1
  177. package/dist/src/lib/manager/acmManager.js.map +0 -1
  178. package/dist/src/lib/manager/apiManager.d.ts.map +0 -1
  179. package/dist/src/lib/manager/apiManager.js.map +0 -1
  180. package/dist/src/lib/manager/appConfigManager.d.ts.map +0 -1
  181. package/dist/src/lib/manager/appConfigManager.js.map +0 -1
  182. package/dist/src/lib/manager/cloudFrontManager.d.ts +0 -101
  183. package/dist/src/lib/manager/cloudFrontManager.d.ts.map +0 -1
  184. package/dist/src/lib/manager/cloudFrontManager.js.map +0 -1
  185. package/dist/src/lib/manager/cloudTrailManager.d.ts.map +0 -1
  186. package/dist/src/lib/manager/cloudTrailManager.js.map +0 -1
  187. package/dist/src/lib/manager/cloudWatchManager.d.ts +0 -121
  188. package/dist/src/lib/manager/cloudWatchManager.d.ts.map +0 -1
  189. package/dist/src/lib/manager/cloudWatchManager.js.map +0 -1
  190. package/dist/src/lib/manager/codeBuildManager.d.ts.map +0 -1
  191. package/dist/src/lib/manager/codeBuildManager.js.map +0 -1
  192. package/dist/src/lib/manager/ecrManager.d.ts.map +0 -1
  193. package/dist/src/lib/manager/ecrManager.js.map +0 -1
  194. package/dist/src/lib/manager/ecsManager.d.ts.map +0 -1
  195. package/dist/src/lib/manager/ecsManager.js.map +0 -1
  196. package/dist/src/lib/manager/eksManager.d.ts.map +0 -1
  197. package/dist/src/lib/manager/eksManager.js.map +0 -1
  198. package/dist/src/lib/manager/eventManager.d.ts.map +0 -1
  199. package/dist/src/lib/manager/eventManager.js.map +0 -1
  200. package/dist/src/lib/manager/iamManager.d.ts +0 -155
  201. package/dist/src/lib/manager/iamManager.d.ts.map +0 -1
  202. package/dist/src/lib/manager/iamManager.js.map +0 -1
  203. package/dist/src/lib/manager/lambdaManager.d.ts.map +0 -1
  204. package/dist/src/lib/manager/lambdaManager.js.map +0 -1
  205. package/dist/src/lib/manager/logManager.d.ts.map +0 -1
  206. package/dist/src/lib/manager/logManager.js.map +0 -1
  207. package/dist/src/lib/manager/route53Manager.d.ts.map +0 -1
  208. package/dist/src/lib/manager/route53Manager.js.map +0 -1
  209. package/dist/src/lib/manager/s3Manager.d.ts +0 -73
  210. package/dist/src/lib/manager/s3Manager.d.ts.map +0 -1
  211. package/dist/src/lib/manager/s3Manager.js.map +0 -1
  212. package/dist/src/lib/manager/secretsManager.d.ts.map +0 -1
  213. package/dist/src/lib/manager/secretsManager.js.map +0 -1
  214. package/dist/src/lib/manager/snsManager.d.ts.map +0 -1
  215. package/dist/src/lib/manager/snsManager.js.map +0 -1
  216. package/dist/src/lib/manager/ssmManager.d.ts.map +0 -1
  217. package/dist/src/lib/manager/ssmManager.js.map +0 -1
  218. package/dist/src/lib/manager/vpcManager.d.ts.map +0 -1
  219. package/dist/src/lib/manager/vpcManager.js.map +0 -1
  220. package/dist/src/lib/manager/wafManager.d.ts +0 -39
  221. package/dist/src/lib/manager/wafManager.d.ts.map +0 -1
  222. package/dist/src/lib/manager/wafManager.js.map +0 -1
  223. package/dist/src/lib/types.d.ts.map +0 -1
  224. package/dist/src/lib/types.js.map +0 -1
  225. package/dist/src/lib/utils.d.ts.map +0 -1
  226. package/dist/src/lib/utils.js +0 -131
  227. package/dist/src/lib/utils.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gradientedge/cdk-utils",
3
- "version": "4.1.2",
3
+ "version": "4.2.3",
4
4
  "description": "Utilities for AWS CDK provisioning",
5
5
  "main": "dist/index.js",
6
6
  "engines": {
@@ -27,6 +27,7 @@
27
27
  "scripts": {
28
28
  "build": "rimraf dist/ && npx tsc",
29
29
  "ci": "yarn install --frozen-lockfile && yarn build && yarn validate && yarn docs",
30
+ "cz": "npx cz",
30
31
  "typedocs": "rimraf api-docs/ && npx typedoc",
31
32
  "docs": "rimraf api-docs && npx jsdoc --pedantic -c jsdoc.json .",
32
33
  "fix": "yarn prettify && eslint --fix **/*.ts",
@@ -42,13 +43,13 @@
42
43
  }
43
44
  },
44
45
  "dependencies": {
45
- "@aws-cdk/aws-lambda-python-alpha": "2.8.0-alpha.0",
46
+ "@aws-cdk/aws-lambda-python-alpha": "2.10.0-alpha.0",
46
47
  "@types/lodash": "^4.14.178",
47
- "@types/node": "^17.0.10",
48
+ "@types/node": "^17.0.13",
48
49
  "app-root-path": "^3.0.0",
49
- "aws-cdk-lib": "^2.8.0",
50
- "aws-sdk": "^2.1060.0",
51
- "constructs": "^10.0.39",
50
+ "aws-cdk-lib": "^2.10.0",
51
+ "aws-sdk": "^2.1066.0",
52
+ "constructs": "^10.0.48",
52
53
  "lodash": "^4.17.21",
53
54
  "moment": "^2.29.1",
54
55
  "nconf": "^0.11.3",
@@ -58,34 +59,43 @@
58
59
  "devDependencies": {
59
60
  "@babel/plugin-proposal-class-properties": "^7.16.7",
60
61
  "@types/jest": "^27.4.0",
61
- "@typescript-eslint/eslint-plugin": "^5.10.0",
62
- "@typescript-eslint/parser": "^5.10.0",
62
+ "@typescript-eslint/eslint-plugin": "^5.10.1",
63
+ "@typescript-eslint/parser": "^5.10.1",
63
64
  "aws-cdk": "*",
64
65
  "babel-eslint": "^10.1.0",
65
- "better-docs": "^2.3.2",
66
+ "better-docs": "^2.7.1",
66
67
  "codecov": "^3.8.3",
67
- "dotenv": "^14.2.0",
68
- "eslint": "^8.7.0",
68
+ "commitizen": "^4.2.4",
69
+ "dotenv": "^14.3.2",
70
+ "eslint": "^8.8.0",
69
71
  "eslint-config-prettier": "^8.3.0",
70
72
  "eslint-plugin-import": "^2.25.4",
71
73
  "husky": "^7.0.4",
72
74
  "jest": "^27.4.7",
73
- "jest-extended": "^1.2.0",
75
+ "jest-extended": "^2.0.0",
74
76
  "jest-junit": "^13.0.0",
75
- "jsdoc": "^3.6.7",
77
+ "jsdoc": "^3.6.10",
76
78
  "jsdoc-babel": "^0.5.0",
77
79
  "jsdoc-mermaid": "^1.0.0",
78
80
  "prettier": "^2.5.1",
81
+ "prettier-plugin-organize-imports": "^2.3.4",
79
82
  "rimraf": "^3.0.2",
80
83
  "semantic-release": "^19.0.2",
81
84
  "ts-jest": "^27.1.3",
82
85
  "ts-node": "^10.4.0",
83
86
  "typedoc": "^0.22.11",
84
87
  "typedoc-plugin-mermaid": "^1.6.0",
85
- "typescript": "4.5.4"
88
+ "typescript": "4.5.5"
86
89
  },
87
90
  "optionalDependencies": {
88
- "@babel/core": "^7.16.10",
89
- "prop-types": "^15.8.1"
91
+ "@babel/core": "^7.16.12",
92
+ "prop-types": "^15.8.1",
93
+ "react": "^17.0.2",
94
+ "react-dom": "^17.0.2"
95
+ },
96
+ "config": {
97
+ "commitizen": {
98
+ "path": "./node_modules/cz-conventional-changelog"
99
+ }
90
100
  }
91
101
  }
@@ -1,28 +1,8 @@
1
1
  import * as cdk from 'aws-cdk-lib'
2
- import { createCfnOutput, isDevStage, isPrdStage, isTestStage, isUatStage } from '../utils'
3
- import { CommonStackProps } from '../types'
4
- import { Route53Manager } from '../manager/route53Manager'
5
- import { S3Manager } from '../manager/s3Manager'
6
- import { AcmManager } from '../manager/acmManager'
7
- import { CloudFrontManager } from '../manager/cloudFrontManager'
8
- import { LogManager } from '../manager/logManager'
9
- import { IamManager } from '../manager/iamManager'
10
- import { CloudTrailManager } from '../manager/cloudTrailManager'
11
- import { EcsManager } from '../manager/ecsManager'
12
- import { EventManager } from '../manager/eventManager'
13
- import { VpcManager } from '../manager/vpcManager'
14
- import { EksManager } from '../manager/eksManager'
15
- import { EcrManager } from '../manager/ecrManager'
16
- import { LambdaManager } from '../manager/lambdaManager'
17
- import { SnsManager } from '../manager/snsManager'
18
- import { SecretsManager } from '../manager/secretsManager'
19
- import { CloudWatchManager } from '../manager/cloudWatchManager'
20
- import { WafManager } from '../manager/wafManager'
21
- import { AppConfigManager } from '../manager/appConfigManager'
22
2
  import { Construct } from 'constructs'
23
- import { ApiManager } from '../manager/apiManager'
24
- import { SsmManager } from '../manager/ssmManager'
25
- import { CodeBuildManager } from '../manager/codeBuildManager'
3
+ import * as aws from '../manager/aws'
4
+ import * as types from '../types'
5
+ import * as utils from '../utils'
26
6
 
27
7
  /**
28
8
  * @stability stable
@@ -45,28 +25,28 @@ import { CodeBuildManager } from '../manager/codeBuildManager'
45
25
  * B(Construct)-->|implements|C(IConstruct);
46
26
  */
47
27
  export class CommonConstruct extends Construct {
48
- props: CommonStackProps
49
- acmManager: AcmManager
50
- apiManager: ApiManager
51
- appConfigManager: AppConfigManager
52
- codeBuildManager: CodeBuildManager
53
- cloudFrontManager: CloudFrontManager
54
- cloudTrailManager: CloudTrailManager
55
- cloudWatchManager: CloudWatchManager
56
- ecrManager: EcrManager
57
- ecsManager: EcsManager
58
- eksManager: EksManager
59
- eventManager: EventManager
60
- iamManager: IamManager
61
- lambdaManager: LambdaManager
62
- logManager: LogManager
63
- route53Manager: Route53Manager
64
- s3Manager: S3Manager
65
- secretsManager: SecretsManager
66
- snsManager: SnsManager
67
- ssMManager: SsmManager
68
- vpcManager: VpcManager
69
- wafManager: WafManager
28
+ props: types.CommonStackProps
29
+ acmManager: aws.AcmManager
30
+ apiManager: aws.ApiManager
31
+ appConfigManager: aws.AppConfigManager
32
+ codeBuildManager: aws.CodeBuildManager
33
+ cloudFrontManager: aws.CloudFrontManager
34
+ cloudTrailManager: aws.CloudTrailManager
35
+ cloudWatchManager: aws.CloudWatchManager
36
+ ecrManager: aws.EcrManager
37
+ ecsManager: aws.EcsManager
38
+ eksManager: aws.EksManager
39
+ eventManager: aws.EventManager
40
+ iamManager: aws.IamManager
41
+ lambdaManager: aws.LambdaManager
42
+ logManager: aws.LogManager
43
+ route53Manager: aws.Route53Manager
44
+ s3Manager: aws.S3Manager
45
+ secretsManager: aws.SecretsManager
46
+ snsManager: aws.SnsManager
47
+ ssMManager: aws.SsmManager
48
+ vpcManager: aws.VpcManager
49
+ wafManager: aws.WafManager
70
50
  fullyQualifiedDomainName: string
71
51
 
72
52
  /**
@@ -75,31 +55,31 @@ export class CommonConstruct extends Construct {
75
55
  * @param {string} id scoped id of the resource
76
56
  * @param {CommonStackProps} props
77
57
  */
78
- constructor(parent: Construct, id: string, props: CommonStackProps) {
58
+ constructor(parent: Construct, id: string, props: types.CommonStackProps) {
79
59
  super(parent, id)
80
60
  this.props = props
81
- this.acmManager = new AcmManager()
82
- this.apiManager = new ApiManager()
83
- this.appConfigManager = new AppConfigManager()
84
- this.codeBuildManager = new CodeBuildManager()
85
- this.cloudFrontManager = new CloudFrontManager()
86
- this.cloudTrailManager = new CloudTrailManager()
87
- this.cloudWatchManager = new CloudWatchManager()
88
- this.ecrManager = new EcrManager()
89
- this.ecsManager = new EcsManager()
90
- this.eksManager = new EksManager()
91
- this.eventManager = new EventManager()
92
- this.iamManager = new IamManager()
93
- this.lambdaManager = new LambdaManager()
94
- this.logManager = new LogManager()
95
- this.route53Manager = new Route53Manager()
96
- this.s3Manager = new S3Manager()
97
- this.secretsManager = new SecretsManager()
98
- this.snsManager = new SnsManager()
99
- this.ssMManager = new SsmManager()
100
- this.vpcManager = new VpcManager()
101
- this.vpcManager = new VpcManager()
102
- this.wafManager = new WafManager()
61
+ this.acmManager = new aws.AcmManager()
62
+ this.apiManager = new aws.ApiManager()
63
+ this.appConfigManager = new aws.AppConfigManager()
64
+ this.codeBuildManager = new aws.CodeBuildManager()
65
+ this.cloudFrontManager = new aws.CloudFrontManager()
66
+ this.cloudTrailManager = new aws.CloudTrailManager()
67
+ this.cloudWatchManager = new aws.CloudWatchManager()
68
+ this.ecrManager = new aws.EcrManager()
69
+ this.ecsManager = new aws.EcsManager()
70
+ this.eksManager = new aws.EksManager()
71
+ this.eventManager = new aws.EventManager()
72
+ this.iamManager = new aws.IamManager()
73
+ this.lambdaManager = new aws.LambdaManager()
74
+ this.logManager = new aws.LogManager()
75
+ this.route53Manager = new aws.Route53Manager()
76
+ this.s3Manager = new aws.S3Manager()
77
+ this.secretsManager = new aws.SecretsManager()
78
+ this.snsManager = new aws.SnsManager()
79
+ this.ssMManager = new aws.SsmManager()
80
+ this.vpcManager = new aws.VpcManager()
81
+ this.vpcManager = new aws.VpcManager()
82
+ this.wafManager = new aws.WafManager()
103
83
 
104
84
  this.determineFullyQualifiedDomain()
105
85
  }
@@ -112,7 +92,7 @@ export class CommonConstruct extends Construct {
112
92
  * @param {boolean} overrideId Flag which indicates whether to override the default logical id of the output
113
93
  */
114
94
  protected addCfnOutput(id: string, value: string, description?: string, overrideId = true): cdk.CfnOutput {
115
- return createCfnOutput(id, this, value, description, overrideId)
95
+ return utils.createCfnOutput(id, this, value, description, overrideId)
116
96
  }
117
97
 
118
98
  /**
@@ -128,23 +108,23 @@ export class CommonConstruct extends Construct {
128
108
  * @summary Utility method to determine if the initialisation is in development (dev) stage
129
109
  * This is determined by the stage property injected via cdk context
130
110
  */
131
- public isDevelopmentStage = () => isDevStage(this.props.stage)
111
+ public isDevelopmentStage = () => utils.isDevStage(this.props.stage)
132
112
 
133
113
  /**
134
114
  * @summary Utility method to determine if the initialisation is in test (tst) stage
135
115
  * This is determined by the stage property injected via cdk context
136
116
  */
137
- public isTestStage = () => isTestStage(this.props.stage)
117
+ public isTestStage = () => utils.isTestStage(this.props.stage)
138
118
 
139
119
  /**
140
120
  * @summary Utility method to determine if the initialisation is in uat (uat) stage
141
121
  * This is determined by the stage property injected via cdk context
142
122
  */
143
- public isUatStage = () => isUatStage(this.props.stage)
123
+ public isUatStage = () => utils.isUatStage(this.props.stage)
144
124
 
145
125
  /**
146
126
  * @summary Utility method to determine if the initialisation is in production (prd) stage
147
127
  * This is determined by the stage property injected via cdk context
148
128
  */
149
- public isProductionStage = () => isPrdStage(this.props.stage)
129
+ public isProductionStage = () => utils.isPrdStage(this.props.stage)
150
130
  }
@@ -1,7 +1,7 @@
1
1
  import * as cdk from 'aws-cdk-lib'
2
+ import { CommonStackProps } from '../types'
2
3
  import { isDevStage } from '../utils'
3
4
  import { CommonConstruct } from './commonConstruct'
4
- import { CommonStackProps } from '../types'
5
5
 
6
6
  const appRoot = require('app-root-path')
7
7
  const fs = require('fs')
@@ -0,0 +1,2 @@
1
+ export * from './commonConstruct'
2
+ export * from './commonStack'
@@ -1,12 +1,12 @@
1
- import { CommonConstruct } from '../common/commonConstruct'
1
+ import * as apig from 'aws-cdk-lib/aws-apigateway'
2
+ import * as acm from 'aws-cdk-lib/aws-certificatemanager'
2
3
  import * as iam from 'aws-cdk-lib/aws-iam'
3
- import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager'
4
4
  import * as lambda from 'aws-cdk-lib/aws-lambda'
5
- import * as apig from 'aws-cdk-lib/aws-apigateway'
6
5
  import * as route53 from 'aws-cdk-lib/aws-route53'
7
- import * as acm from 'aws-cdk-lib/aws-certificatemanager'
8
- import { GraphQlApiLambdaEnvironment, GraphQlApiLambdaProps } from '../types'
6
+ import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager'
9
7
  import { Construct } from 'constructs'
8
+ import { CommonConstruct } from '../common/commonConstruct'
9
+ import { GraphQlApiLambdaEnvironment, GraphQlApiLambdaProps } from '../types'
10
10
 
11
11
  /**
12
12
  * @stability stable
@@ -0,0 +1,3 @@
1
+ export * from './graphQLApiLambda'
2
+ export * from './siteWithEcsBackend'
3
+ export * from './staticSite'
@@ -1,19 +1,19 @@
1
- import { Construct } from 'constructs'
2
- import { CommonConstruct } from '../common/commonConstruct'
3
- import { SiteWithEcsBackendProps } from '../types'
4
1
  import * as cdk from 'aws-cdk-lib'
5
- import * as iam from 'aws-cdk-lib/aws-iam'
6
- import * as ec2 from 'aws-cdk-lib/aws-ec2'
7
- import * as ecs from 'aws-cdk-lib/aws-ecs'
8
- import * as logs from 'aws-cdk-lib/aws-logs'
9
- import * as route53 from 'aws-cdk-lib/aws-route53'
10
2
  import * as certificateManager from 'aws-cdk-lib/aws-certificatemanager'
11
3
  import * as cloudfront from 'aws-cdk-lib/aws-cloudfront'
4
+ import * as origins from 'aws-cdk-lib/aws-cloudfront-origins'
5
+ import * as ec2 from 'aws-cdk-lib/aws-ec2'
6
+ import * as ecs from 'aws-cdk-lib/aws-ecs'
12
7
  import * as ecsPatterns from 'aws-cdk-lib/aws-ecs-patterns'
13
8
  import * as elb from 'aws-cdk-lib/aws-elasticloadbalancingv2'
14
- import * as origins from 'aws-cdk-lib/aws-cloudfront-origins'
9
+ import * as iam from 'aws-cdk-lib/aws-iam'
10
+ import * as logs from 'aws-cdk-lib/aws-logs'
11
+ import * as route53 from 'aws-cdk-lib/aws-route53'
15
12
  import * as s3 from 'aws-cdk-lib/aws-s3'
16
13
  import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager'
14
+ import { Construct } from 'constructs'
15
+ import { CommonConstruct } from '../common/commonConstruct'
16
+ import { SiteWithEcsBackendProps } from '../types'
17
17
 
18
18
  /**
19
19
  * @stability stable
@@ -68,6 +68,8 @@ export class SiteWithEcsBackend extends CommonConstruct {
68
68
  siteInternalDomainName: string
69
69
  siteExternalDomainName: string
70
70
  siteDomainNames: string[]
71
+ siteCloudfrontFunction: cloudfront.Function
72
+ siteFunctionAssociations: cloudfront.FunctionAssociation[]
71
73
 
72
74
  /**
73
75
  * @summary Constructor to initialise the SiteWithEcsBackend Construct
@@ -102,6 +104,8 @@ export class SiteWithEcsBackend extends CommonConstruct {
102
104
  this.createEcsService()
103
105
  this.createSiteLogBucket()
104
106
  this.createSiteOrigin()
107
+ this.createSiteCloudfrontFunction()
108
+ this.resolveSiteFunctionAssociations()
105
109
  this.createDistribution()
106
110
  this.createNetworkMappings()
107
111
  this.invalidateDistributionCache()
@@ -316,6 +320,35 @@ export class SiteWithEcsBackend extends CommonConstruct {
316
320
  })
317
321
  }
318
322
 
323
+ /**
324
+ * @summary Method to create a site cloudfront function
325
+ * @protected
326
+ */
327
+ protected createSiteCloudfrontFunction() {
328
+ if (this.props.siteCloudfrontFunctionProps) {
329
+ this.siteCloudfrontFunction = this.cloudFrontManager.createCloudfrontFunction(
330
+ `${this.id}-function`,
331
+ this,
332
+ this.props.siteCloudfrontFunctionProps
333
+ )
334
+ }
335
+ }
336
+
337
+ /**
338
+ * @summary Method to create a site cloudfront function associations
339
+ * @protected
340
+ */
341
+ protected resolveSiteFunctionAssociations() {
342
+ if (this.props.siteCloudfrontFunctionProps) {
343
+ this.siteFunctionAssociations = [
344
+ {
345
+ function: this.siteCloudfrontFunction,
346
+ eventType: cloudfront.FunctionEventType.VIEWER_REQUEST,
347
+ },
348
+ ]
349
+ }
350
+ }
351
+
319
352
  /**
320
353
  * Method to create Site distribution
321
354
  * @protected
@@ -328,7 +361,8 @@ export class SiteWithEcsBackend extends CommonConstruct {
328
361
  this.siteOrigin,
329
362
  this.siteDomainNames,
330
363
  this.siteLogBucket,
331
- this.siteCertificate
364
+ this.siteCertificate,
365
+ this.siteFunctionAssociations
332
366
  )
333
367
  }
334
368
 
@@ -1,11 +1,11 @@
1
- import { CommonConstruct } from '../common/commonConstruct'
2
- import { StaticSiteProps } from '../types'
3
- import * as route53 from 'aws-cdk-lib/aws-route53'
4
1
  import * as certificateManager from 'aws-cdk-lib/aws-certificatemanager'
5
- import * as s3 from 'aws-cdk-lib/aws-s3'
6
2
  import * as cloudfront from 'aws-cdk-lib/aws-cloudfront'
7
- import { Construct } from 'constructs'
8
3
  import * as origins from 'aws-cdk-lib/aws-cloudfront-origins'
4
+ import * as route53 from 'aws-cdk-lib/aws-route53'
5
+ import * as s3 from 'aws-cdk-lib/aws-s3'
6
+ import { Construct } from 'constructs'
7
+ import { CommonConstruct } from '../common/commonConstruct'
8
+ import { StaticSiteProps } from '../types'
9
9
 
10
10
  /**
11
11
  * @stability stable
@@ -46,6 +46,8 @@ export class StaticSite extends CommonConstruct {
46
46
  siteDistribution: cloudfront.Distribution
47
47
  siteLogBucket: s3.IBucket
48
48
  siteOriginAccessIdentity: cloudfront.OriginAccessIdentity
49
+ siteCloudfrontFunction: cloudfront.Function
50
+ siteFunctionAssociations: cloudfront.FunctionAssociation[]
49
51
 
50
52
  /**
51
53
  * @summary Constructor to initialise the StaticSite Construct
@@ -70,6 +72,8 @@ export class StaticSite extends CommonConstruct {
70
72
  this.createSiteLogBucket()
71
73
  this.createSiteBucket()
72
74
  this.createSiteOrigin()
75
+ this.createSiteCloudfrontFunction()
76
+ this.resolveSiteFunctionAssociations()
73
77
  this.createSiteDistribution()
74
78
  this.createSiteRouteAssets()
75
79
  this.deploySite()
@@ -131,6 +135,35 @@ export class StaticSite extends CommonConstruct {
131
135
  this.siteOrigin = new origins.S3Origin(this.siteBucket)
132
136
  }
133
137
 
138
+ /**
139
+ * @summary Method to create a site cloudfront function
140
+ * @protected
141
+ */
142
+ protected createSiteCloudfrontFunction() {
143
+ if (this.props.siteCloudfrontFunctionProps) {
144
+ this.siteCloudfrontFunction = this.cloudFrontManager.createCloudfrontFunction(
145
+ `${this.id}-function`,
146
+ this,
147
+ this.props.siteCloudfrontFunctionProps
148
+ )
149
+ }
150
+ }
151
+
152
+ /**
153
+ * @summary Method to create a site cloudfront function associations
154
+ * @protected
155
+ */
156
+ protected resolveSiteFunctionAssociations() {
157
+ if (this.props.siteCloudfrontFunctionProps) {
158
+ this.siteFunctionAssociations = [
159
+ {
160
+ function: this.siteCloudfrontFunction,
161
+ eventType: cloudfront.FunctionEventType.VIEWER_REQUEST,
162
+ },
163
+ ]
164
+ }
165
+ }
166
+
134
167
  /**
135
168
  * @summary Method to create a site cloudfront distribution
136
169
  * @protected
@@ -147,7 +180,8 @@ export class StaticSite extends CommonConstruct {
147
180
  this.siteLogBucket,
148
181
  this.siteOriginAccessIdentity,
149
182
  this.siteCertificate,
150
- this.props.siteAliases
183
+ this.props.siteAliases,
184
+ this.siteFunctionAssociations
151
185
  )
152
186
  }
153
187
 
@@ -1,16 +1,16 @@
1
+ import * as cdk from 'aws-cdk-lib'
1
2
  import * as acm from 'aws-cdk-lib/aws-certificatemanager'
2
3
  import * as route53 from 'aws-cdk-lib/aws-route53'
3
- import * as cdk from 'aws-cdk-lib'
4
- import { CommonConstruct } from '../common/commonConstruct'
5
- import { AcmProps } from '../types'
6
- import { createCfnOutput } from '../utils'
4
+ import * as common from '../../common'
5
+ import * as types from '../../types'
6
+ import * as utils from '../../utils'
7
7
 
8
8
  /**
9
9
  * @stability stable
10
10
  * @category Security, Identity & Compliance
11
11
  * @summary Provides operations on AWS Certificates.
12
- * - A new instance of this class is injected into {@link CommonConstruct} constructor.
13
- * - If a custom construct extends {@link CommonConstruct}, an instance is available within the context.
12
+ * - A new instance of this class is injected into {@link common.CommonConstruct} constructor.
13
+ * - If a custom construct extends {@link common.CommonConstruct}, an instance is available within the context.
14
14
  * @example
15
15
  * import { CommonConstruct } from '@gradientedge/cdk-utils'
16
16
  *
@@ -28,8 +28,8 @@ export class AcmManager {
28
28
  /**
29
29
  * @summary Method to create/import a certificate
30
30
  * @param {string} id scoped id of the resource
31
- * @param {CommonConstruct} scope scope in which this resource is defined
32
- * @param {AcmProps} props certificate props
31
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
32
+ * @param {types.AcmProps} props certificate props
33
33
  * @param {route53.HostedZone?} hostedZone optional hosted zone to perform DNS validation
34
34
  * @returns {acm.ICertificate}
35
35
  *
@@ -46,8 +46,8 @@ export class AcmManager {
46
46
  */
47
47
  public resolveCertificate(
48
48
  id: string,
49
- scope: CommonConstruct,
50
- props: AcmProps,
49
+ scope: common.CommonConstruct,
50
+ props: types.AcmProps,
51
51
  hostedZone?: route53.IHostedZone
52
52
  ): acm.ICertificate {
53
53
  if (!props) throw `Certificate props undefined`
@@ -70,7 +70,7 @@ export class AcmManager {
70
70
  })
71
71
  }
72
72
 
73
- createCfnOutput(`${id}-certificateArn`, scope, certificate.certificateArn)
73
+ utils.createCfnOutput(`${id}-certificateArn`, scope, certificate.certificateArn)
74
74
 
75
75
  return certificate
76
76
  }
@@ -1,19 +1,19 @@
1
- import { CommonConstruct } from '../common/commonConstruct'
2
1
  import * as apig from 'aws-cdk-lib/aws-apigateway'
3
- import * as lambda from 'aws-cdk-lib/aws-lambda'
4
2
  import * as acm from 'aws-cdk-lib/aws-certificatemanager'
5
- import { createCfnOutput } from '../utils'
3
+ import * as lambda from 'aws-cdk-lib/aws-lambda'
4
+ import * as common from '../../common'
5
+ import * as utils from '../../utils'
6
6
 
7
7
  /**
8
8
  * @stability stable
9
9
  * @category Networking & Content Delivery
10
10
  * @summary Provides operations on AWS API Gateway.
11
- * - A new instance of this class is injected into {@link CommonConstruct} constructor.
12
- * - If a custom construct extends {@link CommonConstruct}, an instance is available within the context.
11
+ * - A new instance of this class is injected into {@link common.CommonConstruct} constructor.
12
+ * - If a custom construct extends {@link common.CommonConstruct}, an instance is available within the context.
13
13
  * @example
14
- * import { CommonConstruct } from '@gradientedge/cdk-utils'
14
+ * import { common.CommonConstruct } from '@gradientedge/cdk-utils'
15
15
  *
16
- * class CustomConstruct extends CommonConstruct {
16
+ * class CustomConstruct extends common.CommonConstruct {
17
17
  * constructor(parent: cdk.Construct, id: string, props: common.CommonStackProps) {
18
18
  * super(parent, id, props)
19
19
  * this.props = props
@@ -28,19 +28,20 @@ export class ApiManager {
28
28
  /**
29
29
  * @summary Method to create a Rest API with Lambda backend/target
30
30
  * @param {string} id scoped id of the resource
31
- * @param {CommonConstruct} scope scope in which this resource is defined
31
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
32
32
  * @param {AcmProps} props lambda rest api props
33
33
  * @param lambdaFunction
34
34
  */
35
35
  public createLambdaRestApi(
36
36
  id: string,
37
- scope: CommonConstruct,
37
+ scope: common.CommonConstruct,
38
38
  props: apig.LambdaRestApiProps,
39
39
  lambdaFunction: lambda.Function
40
40
  ) {
41
41
  const api = new apig.LambdaRestApi(scope, `${id}`, {
42
42
  binaryMediaTypes: props.binaryMediaTypes,
43
43
  minimumCompressionSize: props.minimumCompressionSize,
44
+ defaultMethodOptions: props.defaultMethodOptions,
44
45
  deploy: props.deploy || true,
45
46
  deployOptions: {
46
47
  stageName: scope.props.stage,
@@ -68,15 +69,12 @@ export class ApiManager {
68
69
  },
69
70
  restApiName: `${props.restApiName}-${scope.props.stage}`,
70
71
  handler: lambdaFunction,
71
- defaultCorsPreflightOptions: {
72
- allowOrigins: props.defaultCorsPreflightOptions?.allowOrigins || apig.Cors.ALL_ORIGINS,
73
- allowMethods: props.defaultCorsPreflightOptions?.allowMethods || apig.Cors.ALL_METHODS,
74
- },
72
+ defaultCorsPreflightOptions: props.defaultCorsPreflightOptions,
75
73
  proxy: props.proxy || true,
76
74
  })
77
75
 
78
- createCfnOutput(`${id}-restApiId`, scope, api.restApiId)
79
- createCfnOutput(`${id}-restApiName`, scope, api.restApiName)
76
+ utils.createCfnOutput(`${id}-restApiId`, scope, api.restApiId)
77
+ utils.createCfnOutput(`${id}-restApiName`, scope, api.restApiName)
80
78
 
81
79
  return api
82
80
  }
@@ -84,11 +82,11 @@ export class ApiManager {
84
82
  /**
85
83
  * @summary Method to create custom api domain
86
84
  * @param {string} id scoped id of the resource
87
- * @param {CommonConstruct} scope scope in which this resource is defined
85
+ * @param {common.CommonConstruct} scope scope in which this resource is defined
88
86
  * @param domainName the domain name to use
89
87
  * @param certificate the certificate used for custom api domain
90
88
  */
91
- public createApiDomain(id: string, scope: CommonConstruct, domainName: string, certificate: acm.ICertificate) {
89
+ public createApiDomain(id: string, scope: common.CommonConstruct, domainName: string, certificate: acm.ICertificate) {
92
90
  const apiDomain = new apig.DomainName(scope, `${id}`, {
93
91
  domainName: domainName,
94
92
  certificate: certificate,
@@ -96,7 +94,7 @@ export class ApiManager {
96
94
  securityPolicy: apig.SecurityPolicy.TLS_1_2,
97
95
  })
98
96
 
99
- createCfnOutput(`${id}-customDomainName`, scope, apiDomain.domainName)
97
+ utils.createCfnOutput(`${id}-customDomainName`, scope, apiDomain.domainName)
100
98
 
101
99
  return apiDomain
102
100
  }