cdk-rds-sql 1.0.1 → 1.1.1

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 (232) hide show
  1. package/.jsii +165 -49
  2. package/.pre-commit-config.yaml +2 -2
  3. package/.projenrc.ts +1 -1
  4. package/README.md +6 -5
  5. package/cdk.json +1 -2
  6. package/lib/database.d.ts +16 -6
  7. package/lib/database.js +17 -2
  8. package/lib/handler.js +27 -5
  9. package/lib/provider.js +1 -1
  10. package/lib/role.custom-resource.d.ts +7 -0
  11. package/lib/role.custom-resource.js +4 -1
  12. package/lib/role.d.ts +5 -2
  13. package/lib/role.js +4 -3
  14. package/lib/schema.d.ts +2 -1
  15. package/lib/schema.js +5 -3
  16. package/lib/sql.d.ts +2 -1
  17. package/lib/sql.js +5 -3
  18. package/node_modules/@aws-sdk/abort-controller/CHANGELOG.md +8 -0
  19. package/node_modules/@aws-sdk/abort-controller/package.json +2 -2
  20. package/node_modules/@aws-sdk/client-secrets-manager/CHANGELOG.md +24 -0
  21. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/runtimeConfig.browser.d.ts +1 -1
  22. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/runtimeConfig.d.ts +1 -1
  23. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/runtimeConfig.native.d.ts +1 -1
  24. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/ts3.4/runtimeConfig.browser.d.ts +3 -1
  25. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/ts3.4/runtimeConfig.d.ts +3 -1
  26. package/node_modules/@aws-sdk/client-secrets-manager/dist-types/ts3.4/runtimeConfig.native.d.ts +3 -1
  27. package/node_modules/@aws-sdk/client-secrets-manager/package.json +26 -26
  28. package/node_modules/@aws-sdk/client-sso/CHANGELOG.md +16 -0
  29. package/node_modules/@aws-sdk/client-sso/package.json +23 -23
  30. package/node_modules/@aws-sdk/client-sts/CHANGELOG.md +24 -0
  31. package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.browser.d.ts +1 -1
  32. package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.d.ts +1 -1
  33. package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.native.d.ts +1 -1
  34. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.browser.d.ts +3 -1
  35. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.d.ts +3 -1
  36. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.native.d.ts +3 -1
  37. package/node_modules/@aws-sdk/client-sts/package.json +26 -26
  38. package/node_modules/@aws-sdk/config-resolver/CHANGELOG.md +11 -0
  39. package/node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/resolveEndpointsConfig.js +1 -1
  40. package/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/resolveEndpointsConfig.js +1 -1
  41. package/node_modules/@aws-sdk/config-resolver/dist-types/endpointsConfig/resolveEndpointsConfig.d.ts +2 -1
  42. package/node_modules/@aws-sdk/config-resolver/package.json +5 -5
  43. package/node_modules/@aws-sdk/credential-provider-env/CHANGELOG.md +8 -0
  44. package/node_modules/@aws-sdk/credential-provider-env/package.json +3 -3
  45. package/node_modules/@aws-sdk/credential-provider-imds/CHANGELOG.md +8 -0
  46. package/node_modules/@aws-sdk/credential-provider-imds/package.json +5 -5
  47. package/node_modules/@aws-sdk/credential-provider-ini/CHANGELOG.md +16 -0
  48. package/node_modules/@aws-sdk/credential-provider-ini/package.json +8 -8
  49. package/node_modules/@aws-sdk/credential-provider-node/CHANGELOG.md +16 -0
  50. package/node_modules/@aws-sdk/credential-provider-node/package.json +10 -10
  51. package/node_modules/@aws-sdk/credential-provider-process/CHANGELOG.md +8 -0
  52. package/node_modules/@aws-sdk/credential-provider-process/package.json +4 -4
  53. package/node_modules/@aws-sdk/credential-provider-sso/CHANGELOG.md +16 -0
  54. package/node_modules/@aws-sdk/credential-provider-sso/package.json +5 -5
  55. package/node_modules/@aws-sdk/credential-provider-web-identity/CHANGELOG.md +8 -0
  56. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  57. package/node_modules/@aws-sdk/fetch-http-handler/CHANGELOG.md +8 -0
  58. package/node_modules/@aws-sdk/fetch-http-handler/package.json +5 -5
  59. package/node_modules/@aws-sdk/hash-node/CHANGELOG.md +8 -0
  60. package/node_modules/@aws-sdk/hash-node/package.json +2 -2
  61. package/node_modules/@aws-sdk/invalid-dependency/CHANGELOG.md +8 -0
  62. package/node_modules/@aws-sdk/invalid-dependency/package.json +2 -2
  63. package/node_modules/@aws-sdk/middleware-content-length/CHANGELOG.md +8 -0
  64. package/node_modules/@aws-sdk/middleware-content-length/package.json +3 -3
  65. package/node_modules/@aws-sdk/middleware-host-header/CHANGELOG.md +8 -0
  66. package/node_modules/@aws-sdk/middleware-host-header/package.json +3 -3
  67. package/node_modules/@aws-sdk/middleware-logger/CHANGELOG.md +8 -0
  68. package/node_modules/@aws-sdk/middleware-logger/package.json +2 -2
  69. package/node_modules/@aws-sdk/middleware-recursion-detection/CHANGELOG.md +8 -0
  70. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +3 -3
  71. package/node_modules/@aws-sdk/middleware-retry/CHANGELOG.md +8 -0
  72. package/node_modules/@aws-sdk/middleware-retry/package.json +6 -6
  73. package/node_modules/@aws-sdk/middleware-sdk-sts/CHANGELOG.md +16 -0
  74. package/node_modules/@aws-sdk/middleware-sdk-sts/package.json +6 -6
  75. package/node_modules/@aws-sdk/middleware-serde/CHANGELOG.md +11 -0
  76. package/node_modules/@aws-sdk/middleware-serde/dist-cjs/serializerMiddleware.js +8 -1
  77. package/node_modules/@aws-sdk/middleware-serde/dist-es/serializerMiddleware.js +15 -5
  78. package/node_modules/@aws-sdk/middleware-serde/dist-types/serdePlugin.d.ts +5 -2
  79. package/node_modules/@aws-sdk/middleware-serde/dist-types/serializerMiddleware.d.ts +2 -1
  80. package/node_modules/@aws-sdk/middleware-serde/dist-types/ts3.4/serdePlugin.d.ts +5 -1
  81. package/node_modules/@aws-sdk/middleware-serde/dist-types/ts3.4/serializerMiddleware.d.ts +2 -1
  82. package/node_modules/@aws-sdk/middleware-serde/package.json +2 -2
  83. package/node_modules/@aws-sdk/middleware-signing/CHANGELOG.md +22 -0
  84. package/node_modules/@aws-sdk/middleware-signing/dist-cjs/configurations.js +30 -15
  85. package/node_modules/@aws-sdk/middleware-signing/dist-cjs/middleware.js +3 -1
  86. package/node_modules/@aws-sdk/middleware-signing/dist-es/configurations.js +21 -10
  87. package/node_modules/@aws-sdk/middleware-signing/dist-es/middleware.js +13 -11
  88. package/node_modules/@aws-sdk/middleware-signing/dist-types/configurations.d.ts +5 -5
  89. package/node_modules/@aws-sdk/middleware-signing/dist-types/ts3.4/configurations.d.ts +9 -4
  90. package/node_modules/@aws-sdk/middleware-signing/package.json +7 -6
  91. package/node_modules/@aws-sdk/middleware-stack/CHANGELOG.md +11 -0
  92. package/node_modules/@aws-sdk/middleware-stack/dist-cjs/MiddlewareStack.js +13 -3
  93. package/node_modules/@aws-sdk/middleware-stack/dist-es/MiddlewareStack.js +14 -3
  94. package/node_modules/@aws-sdk/middleware-stack/package.json +2 -2
  95. package/node_modules/@aws-sdk/middleware-user-agent/CHANGELOG.md +8 -0
  96. package/node_modules/@aws-sdk/middleware-user-agent/package.json +4 -4
  97. package/node_modules/@aws-sdk/node-config-provider/CHANGELOG.md +8 -0
  98. package/node_modules/@aws-sdk/node-config-provider/package.json +4 -4
  99. package/node_modules/@aws-sdk/node-http-handler/CHANGELOG.md +8 -0
  100. package/node_modules/@aws-sdk/node-http-handler/package.json +5 -5
  101. package/node_modules/@aws-sdk/property-provider/CHANGELOG.md +8 -0
  102. package/node_modules/@aws-sdk/property-provider/package.json +2 -2
  103. package/node_modules/@aws-sdk/protocol-http/CHANGELOG.md +8 -0
  104. package/node_modules/@aws-sdk/protocol-http/package.json +2 -2
  105. package/node_modules/@aws-sdk/querystring-builder/CHANGELOG.md +8 -0
  106. package/node_modules/@aws-sdk/querystring-builder/package.json +2 -2
  107. package/node_modules/@aws-sdk/querystring-parser/CHANGELOG.md +8 -0
  108. package/node_modules/@aws-sdk/querystring-parser/package.json +2 -2
  109. package/node_modules/@aws-sdk/service-error-classification/CHANGELOG.md +8 -0
  110. package/node_modules/@aws-sdk/service-error-classification/package.json +2 -2
  111. package/node_modules/@aws-sdk/shared-ini-file-loader/CHANGELOG.md +8 -0
  112. package/node_modules/@aws-sdk/shared-ini-file-loader/package.json +2 -2
  113. package/node_modules/@aws-sdk/signature-v4/CHANGELOG.md +8 -0
  114. package/node_modules/@aws-sdk/signature-v4/package.json +4 -4
  115. package/node_modules/@aws-sdk/smithy-client/CHANGELOG.md +19 -0
  116. package/node_modules/@aws-sdk/smithy-client/dist-types/exceptions.d.ts +2 -2
  117. package/node_modules/@aws-sdk/smithy-client/dist-types/ts3.4/exceptions.d.ts +4 -1
  118. package/node_modules/@aws-sdk/smithy-client/package.json +3 -3
  119. package/node_modules/@aws-sdk/types/CHANGELOG.md +11 -0
  120. package/node_modules/@aws-sdk/types/dist-types/auth.d.ts +11 -0
  121. package/node_modules/@aws-sdk/types/dist-types/endpoint.d.ts +4 -1
  122. package/node_modules/@aws-sdk/types/dist-types/middleware.d.ts +12 -0
  123. package/node_modules/@aws-sdk/types/dist-types/ts3.4/auth.d.ts +2 -0
  124. package/node_modules/@aws-sdk/types/dist-types/ts3.4/endpoint.d.ts +4 -1
  125. package/node_modules/@aws-sdk/types/dist-types/ts3.4/middleware.d.ts +3 -0
  126. package/node_modules/@aws-sdk/types/package.json +1 -1
  127. package/node_modules/@aws-sdk/url-parser/CHANGELOG.md +8 -0
  128. package/node_modules/@aws-sdk/url-parser/package.json +3 -3
  129. package/node_modules/@aws-sdk/util-defaults-mode-browser/CHANGELOG.md +16 -0
  130. package/node_modules/@aws-sdk/util-defaults-mode-browser/package.json +4 -4
  131. package/node_modules/@aws-sdk/util-defaults-mode-node/CHANGELOG.md +16 -0
  132. package/node_modules/@aws-sdk/util-defaults-mode-node/package.json +7 -7
  133. package/node_modules/@aws-sdk/util-middleware/CHANGELOG.md +11 -0
  134. package/node_modules/@aws-sdk/util-middleware/dist-types/normalizeProvider.d.ts +3 -0
  135. package/node_modules/@aws-sdk/util-middleware/package.json +2 -2
  136. package/node_modules/@aws-sdk/util-user-agent-browser/CHANGELOG.md +8 -0
  137. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +3 -3
  138. package/node_modules/@aws-sdk/util-user-agent-node/CHANGELOG.md +8 -0
  139. package/node_modules/@aws-sdk/util-user-agent-node/package.json +4 -4
  140. package/node_modules/aws-sdk/CHANGELOG.md +43 -1
  141. package/node_modules/aws-sdk/README.md +1 -1
  142. package/node_modules/aws-sdk/apis/backup-gateway-2021-01-01.min.json +59 -8
  143. package/node_modules/aws-sdk/apis/ce-2017-10-25.min.json +10 -8
  144. package/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.min.json +247 -3
  145. package/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.paginators.json +12 -0
  146. package/node_modules/aws-sdk/apis/codestar-notifications-2019-10-15.min.json +7 -2
  147. package/node_modules/aws-sdk/apis/comprehend-2017-11-27.min.json +237 -126
  148. package/node_modules/aws-sdk/apis/devicefarm-2015-06-23.min.json +166 -132
  149. package/node_modules/aws-sdk/apis/ec2-2016-11-15.min.json +1294 -1251
  150. package/node_modules/aws-sdk/apis/glue-2017-03-31.min.json +3 -1
  151. package/node_modules/aws-sdk/apis/iotfleetwise-2021-06-17.examples.json +5 -0
  152. package/node_modules/aws-sdk/apis/iotfleetwise-2021-06-17.min.json +1961 -0
  153. package/node_modules/aws-sdk/apis/iotfleetwise-2021-06-17.paginators.json +82 -0
  154. package/node_modules/aws-sdk/apis/iotfleetwise-2021-06-17.waiters2.json +5 -0
  155. package/node_modules/aws-sdk/apis/lightsail-2016-11-28.min.json +59 -22
  156. package/node_modules/aws-sdk/apis/location-2020-11-19.min.json +64 -17
  157. package/node_modules/aws-sdk/apis/mediaconnect-2018-11-14.min.json +21 -0
  158. package/node_modules/aws-sdk/apis/metadata.json +3 -0
  159. package/node_modules/aws-sdk/apis/models.lex.v2-2020-08-07.min.json +228 -142
  160. package/node_modules/aws-sdk/apis/nimble-2020-08-01.waiters2.json +1 -1
  161. package/node_modules/aws-sdk/apis/s3control-2018-08-20.min.json +102 -19
  162. package/node_modules/aws-sdk/apis/sagemaker-2017-07-24.min.json +584 -572
  163. package/node_modules/aws-sdk/apis/ssm-2014-11-06.min.json +396 -287
  164. package/node_modules/aws-sdk/clients/all.d.ts +1 -0
  165. package/node_modules/aws-sdk/clients/all.js +2 -1
  166. package/node_modules/aws-sdk/clients/apprunner.d.ts +1 -1
  167. package/node_modules/aws-sdk/clients/backupgateway.d.ts +72 -0
  168. package/node_modules/aws-sdk/clients/cloudtrail.d.ts +335 -6
  169. package/node_modules/aws-sdk/clients/codestarnotifications.d.ts +29 -29
  170. package/node_modules/aws-sdk/clients/comprehend.d.ts +148 -34
  171. package/node_modules/aws-sdk/clients/costexplorer.d.ts +15 -7
  172. package/node_modules/aws-sdk/clients/cur.d.ts +1 -1
  173. package/node_modules/aws-sdk/clients/devicefarm.d.ts +38 -0
  174. package/node_modules/aws-sdk/clients/ec2.d.ts +154 -105
  175. package/node_modules/aws-sdk/clients/ecs.d.ts +11 -11
  176. package/node_modules/aws-sdk/clients/glue.d.ts +8 -0
  177. package/node_modules/aws-sdk/clients/identitystore.d.ts +8 -8
  178. package/node_modules/aws-sdk/clients/iotfleetwise.d.ts +2549 -0
  179. package/node_modules/aws-sdk/clients/iotfleetwise.js +19 -0
  180. package/node_modules/aws-sdk/clients/kendra.d.ts +36 -36
  181. package/node_modules/aws-sdk/clients/lexmodelsv2.d.ts +85 -0
  182. package/node_modules/aws-sdk/clients/lightsail.d.ts +66 -3
  183. package/node_modules/aws-sdk/clients/location.d.ts +54 -4
  184. package/node_modules/aws-sdk/clients/mediaconnect.d.ts +25 -1
  185. package/node_modules/aws-sdk/clients/nimble.d.ts +14 -14
  186. package/node_modules/aws-sdk/clients/rds.d.ts +18 -18
  187. package/node_modules/aws-sdk/clients/s3control.d.ts +109 -41
  188. package/node_modules/aws-sdk/clients/sagemaker.d.ts +31 -10
  189. package/node_modules/aws-sdk/clients/ssm.d.ts +113 -2
  190. package/node_modules/aws-sdk/clients/wafv2.d.ts +7 -7
  191. package/node_modules/aws-sdk/dist/aws-sdk-core-react-native.js +31 -11
  192. package/node_modules/aws-sdk/dist/aws-sdk-react-native.js +107 -37
  193. package/node_modules/aws-sdk/dist/aws-sdk.js +2448 -1829
  194. package/node_modules/aws-sdk/dist/aws-sdk.min.js +86 -85
  195. package/node_modules/aws-sdk/lib/config_service_placeholders.d.ts +2 -0
  196. package/node_modules/aws-sdk/lib/core.js +1 -1
  197. package/node_modules/aws-sdk/lib/event_listeners.js +1 -0
  198. package/node_modules/aws-sdk/lib/protocol/rest_json.js +15 -2
  199. package/node_modules/aws-sdk/package.json +1 -1
  200. package/node_modules/es-abstract/2015/GetSubstitution.js +1 -1
  201. package/node_modules/es-abstract/2015/ToNumber.js +1 -1
  202. package/node_modules/es-abstract/2016/GetSubstitution.js +1 -1
  203. package/node_modules/es-abstract/2016/ToNumber.js +1 -1
  204. package/node_modules/es-abstract/2017/GetSubstitution.js +1 -1
  205. package/node_modules/es-abstract/2017/ToNumber.js +1 -1
  206. package/node_modules/es-abstract/2018/GetSubstitution.js +1 -1
  207. package/node_modules/es-abstract/2018/ToNumber.js +1 -1
  208. package/node_modules/es-abstract/2019/GetSubstitution.js +1 -1
  209. package/node_modules/es-abstract/2019/ToNumber.js +1 -1
  210. package/node_modules/es-abstract/2020/GetSubstitution.js +1 -1
  211. package/node_modules/es-abstract/2020/ToNumber.js +1 -1
  212. package/node_modules/es-abstract/2021/GetSubstitution.js +1 -1
  213. package/node_modules/es-abstract/2021/ToNumber.js +1 -1
  214. package/node_modules/es-abstract/2022/GetSubstitution.js +1 -1
  215. package/node_modules/es-abstract/2022/StringToNumber.js +1 -1
  216. package/node_modules/es-abstract/CHANGELOG.md +6 -0
  217. package/node_modules/es-abstract/helpers/regexTester.js +2 -6
  218. package/node_modules/es-abstract/package.json +6 -5
  219. package/node_modules/is-callable/CHANGELOG.md +13 -0
  220. package/node_modules/is-callable/README.md +5 -2
  221. package/node_modules/is-callable/index.js +13 -7
  222. package/node_modules/is-callable/package.json +1 -1
  223. package/node_modules/is-callable/test/index.js +26 -9
  224. package/node_modules/safe-regex-test/.eslintrc +9 -0
  225. package/node_modules/safe-regex-test/.github/FUNDING.yml +12 -0
  226. package/node_modules/safe-regex-test/CHANGELOG.md +15 -0
  227. package/node_modules/safe-regex-test/LICENSE +21 -0
  228. package/node_modules/safe-regex-test/README.md +42 -0
  229. package/node_modules/safe-regex-test/index.js +17 -0
  230. package/node_modules/safe-regex-test/package.json +75 -0
  231. package/node_modules/safe-regex-test/test/index.js +37 -0
  232. package/package.json +12 -12
package/.jsii CHANGED
@@ -7,7 +7,7 @@
7
7
  ]
8
8
  },
9
9
  "bundled": {
10
- "@aws-sdk/client-secrets-manager": "^3.171.0",
10
+ "@aws-sdk/client-secrets-manager": "^3.180.0",
11
11
  "aws-lambda": "^1.0.7",
12
12
  "ms": "^2.1.3",
13
13
  "node-pg-format": "^1.3.5",
@@ -15,7 +15,7 @@
15
15
  "source-map-support": "^0.5.21"
16
16
  },
17
17
  "dependencies": {
18
- "aws-cdk-lib": "^2.41.0",
18
+ "aws-cdk-lib": "^2.43.1",
19
19
  "constructs": "^10.1.104"
20
20
  },
21
21
  "dependencyClosure": {
@@ -737,6 +737,19 @@
737
737
  }
738
738
  }
739
739
  },
740
+ "aws-cdk-lib.aws_controltower": {
741
+ "targets": {
742
+ "dotnet": {
743
+ "namespace": "Amazon.CDK.AWS.ControlTower"
744
+ },
745
+ "java": {
746
+ "package": "software.amazon.awscdk.services.controltower"
747
+ },
748
+ "python": {
749
+ "module": "aws_cdk.aws_controltower"
750
+ }
751
+ }
752
+ },
740
753
  "aws-cdk-lib.aws_cur": {
741
754
  "targets": {
742
755
  "dotnet": {
@@ -1855,6 +1868,19 @@
1855
1868
  }
1856
1869
  }
1857
1870
  },
1871
+ "aws-cdk-lib.aws_m2": {
1872
+ "targets": {
1873
+ "dotnet": {
1874
+ "namespace": "Amazon.CDK.AWS.M2"
1875
+ },
1876
+ "java": {
1877
+ "package": "software.amazon.awscdk.services.m2"
1878
+ },
1879
+ "python": {
1880
+ "module": "aws_cdk.aws_m2"
1881
+ }
1882
+ }
1883
+ },
1858
1884
  "aws-cdk-lib.aws_macie": {
1859
1885
  "targets": {
1860
1886
  "dotnet": {
@@ -2713,6 +2739,19 @@
2713
2739
  }
2714
2740
  }
2715
2741
  },
2742
+ "aws-cdk-lib.aws_supportapp": {
2743
+ "targets": {
2744
+ "dotnet": {
2745
+ "namespace": "Amazon.CDK.AWS.SupportApp"
2746
+ },
2747
+ "java": {
2748
+ "package": "software.amazon.awscdk.services.supportapp"
2749
+ },
2750
+ "python": {
2751
+ "module": "aws_cdk.aws_supportapp"
2752
+ }
2753
+ }
2754
+ },
2716
2755
  "aws-cdk-lib.aws_synthetics": {
2717
2756
  "targets": {
2718
2757
  "dotnet": {
@@ -3031,7 +3070,7 @@
3031
3070
  "stability": "stable"
3032
3071
  },
3033
3072
  "homepage": "https://github.com/berenddeboer/cdk-rds-sql.git",
3034
- "jsiiVersion": "1.67.0 (build 2c027f5)",
3073
+ "jsiiVersion": "1.69.0 (build f656c31)",
3035
3074
  "keywords": [
3036
3075
  "aurora",
3037
3076
  "aws",
@@ -3050,7 +3089,7 @@
3050
3089
  },
3051
3090
  "name": "cdk-rds-sql",
3052
3091
  "readme": {
3053
- "markdown": "# About\n\nThis CDK construct library makes it possible create databases,\nschemas, and roles to an Aurora Serverless database created in that\nstack.\n\nThis construct library is intended to be used in enterprise\nenvironments, and works in isolated subnets.\n\n<p align=\"left\">\n <a href=\"https://github.com/semantic-release/semantic-release\"><img src=\"https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release\" alt=semantic-release: angular\"></a>\n <a href=\"https://github.com/berenddeboer/cdk-rds-sql/actions/workflows/release.yml\"><img src=\"https://github.com/berenddeboer/cdk-rds-sql/actions/workflows/release.yml/badge.svg\" alt=\"Release badge\"></a>\n</p>\n\n# Requirements\n\n- CDK v2.\n\n# Installation\n\n npm i cdk-rds-sql\n\n# Usage\n\n## Provider\n\nFirst setup your VPC and create your cluster:\n\n```ts\nimport { Duration, RemovalPolicy } from \"aws-cdk-lib\"\nimport * as ec2 from \"aws-cdk-lib/aws-ec2\"\nimport * as rds from \"aws-cdk-lib/aws-rds\"\n\nconst vpc = ec2.Vpc.fromLookup(this, \"Vpc\", {\n vpcId: this.node.tryGetContext(\"vpc-id\"),\n})\n\nconst cluster = new rds.ServerlessCluster(this, \"Cluster\", {\n vpc: vpc,\n vpcSubnets: {\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED,\n },\n engine: rds.DatabaseClusterEngine.AURORA_POSTGRESQL,\n parameterGroup: rds.ParameterGroup.fromParameterGroupName(\n this,\n \"ParameterGroup\",\n \"default.aurora-postgresql10\"\n ),\n removalPolicy: RemovalPolicy.DESTROY,\n scaling: {\n autoPause: Duration.minutes(60),\n minCapacity: rds.AuroraCapacityUnit.ACU_2,\n maxCapacity: rds.AuroraCapacityUnit.ACU_2,\n },\n})\n```\n\nThen create a provider which will connect to your database:\n\n```ts\nimport { Provider } from \"cdk-rds-sql\"\n\nconst provider = new Provider(this, \"Provider\", {\n vpc: vpc,\n cluster: cluster,\n secret: cluster.secret!,\n})\n```\n\nThe provider will setup a lambda, which will live in the same VPC, or\nat minimum in a VPC that can get access to the database. The provider\nwill automatically setup a connection to the given cluster.\n\n## Roles\n\nCreate a postgres role (user) as follows:\n\n```ts\nimport { Role } from \"cdk-rds-sql\"\n\nconst role = new Role(this, \"Role\", {\n provider: provider,\n roleName: \"myrole\",\n cluster: cluster,\n databaseName: \"mydb\",\n})\n```\n\nThis will automatically create a secret just like `ServerlessCluster`\ndoes, with all the connection info needed for this user. It's secret value is a JSON like:\n\n```json\n{\n \"dbClusterIdentifier\": \"teststack-clustereb1186t9-sh4wpqfdyfvu\",\n \"password\": \"very-long-and-boring\",\n \"dbname\": \"mydb\",\n \"engine\": \"postgres\",\n \"port\": 5432,\n \"host\": \"teststack-clustereb1186t9-sh4wpqfdyfvu.cluster-cgudolabssna.us-east-1.rds.amazonaws.com\",\n \"username\": \"myrole\"\n}\n```\n\nYou can access the secret via `role.secret`.\n\n## Database\n\nCreate a datdabse as follows:\n\n```ts\nimport { Database } from \"cdk-rds-sql\"\n\nconst database = new Database(this, \"Database\", {\n provider: provider,\n databaseName: \"mydb\",\n})\n```\n\nYou can provide an owner, which makes it easy to create database owned\nby a new user:\n\n```ts\nconst database = new Database(this, \"Database\", {\n provider: provider,\n databaseName: \"mydb\",\n owner: role,\n})\n```\n\n## Schema\n\nCreate a schema in the default database as follows:\n\n```ts\nimport { Schema } from \"cdk-rds-sql\"\n\nnew Schema(this, \"Schema\", {\n provider: provider,\n schemaName: \"myschema\",\n})\n```\n\nOr in another database:\n\n```ts\nconst database = new Database(this, \"Database\", {\n provider: provider,\n databaseName: \"mydb\",\n})\n\nnew Schema(this, \"Schema\", {\n provider: provider,\n schemaName: \"myschema\",\n databaseName: database.databaseName,\n})\n```\n\n## Sql\n\nYou can insert arbitrary SQL into your database with the `Sql` construct:\n\n```ts\nimport { Sql } from \"cdk-rds-sql\"\n\nconst sql = new Sql(this, \"Sql\", {\n provider: provider,\n databaseName: database.databaseName,\n statement: \"create table t (i int)\",\n})\n```\n\nNote that there is no synchronisation between various `Sql`\nconstructs, in particular the order in your code does not determine\nthe order in which your SQL is executed. This happens in parallel,\nunless you specify an explicit dependency via `sql.node.addDepency()`.\n\nThere are a lot of concerns when using `Sql`:\n\n- When you update your Sql, your previous Sql is not \"rolled back\",\n the new Sql is simply executed again.\n- The same when you delete your `Sql` construct: nothing is rolled\n back in the database.\n- Currently the `Sql` constructs has less than 5 minutes to execute\n its work.\n- It is unknown how large your SQL can be.\n\n## Dependencies\n\nThis library manages dependencies, there is no need to specify\ndependencies except possibly for `Sql` constructs.\n\n# Working on this code\n\nThis code is managed by\n[projen](https://github.com/projen/projen/blob/main/README.md). In\naddition [pre-commit](https://pre-commit.com/) is used.\n\nSo after git clone and `npm ci` you would do:\n\n```\npre-commit install --install-hooks --hook-type commit-msg --hook-type pre-commit\n```\n\nto install the pre-commit hooks.\n\n## Testing\n\nTest code via projen with:\n\n npx projen test\n\nYou can run the sample stack with:\n\n npx cdk synth --context vpc-id=vpc-0123456789\n\n# To do\n\n- Add `.from()` functions to make everything more type-safe, and make\n it impossible to import database from other stacks or created\n outside the stack.\n"
3092
+ "markdown": "# About\n\nThis CDK construct library makes it possible create databases,\nschemas, and roles to an Aurora Serverless database created in that\nstack.\n\nThis construct library is intended to be used in enterprise\nenvironments, and works in isolated subnets.\n\n<p align=\"left\">\n <a href=\"https://github.com/semantic-release/semantic-release\"><img src=\"https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release\" alt=semantic-release: angular\"></a>\n <a href=\"https://github.com/berenddeboer/cdk-rds-sql/actions/workflows/release.yml\"><img src=\"https://github.com/berenddeboer/cdk-rds-sql/actions/workflows/release.yml/badge.svg\" alt=\"Release badge\"></a>\n</p>\n\n# Requirements\n\n- CDK v2.\n\n# Installation\n\n npm i cdk-rds-sql\n\n# Usage\n\n## Provider\n\nFirst setup your VPC and create your cluster:\n\n```ts\nimport { Duration, RemovalPolicy } from \"aws-cdk-lib\"\nimport * as ec2 from \"aws-cdk-lib/aws-ec2\"\nimport * as rds from \"aws-cdk-lib/aws-rds\"\n\nconst vpc = ec2.Vpc.fromLookup(this, \"Vpc\", {\n vpcId: this.node.tryGetContext(\"vpc-id\"),\n})\n\nconst cluster = new rds.ServerlessCluster(this, \"Cluster\", {\n vpc: vpc,\n vpcSubnets: {\n subnetType: ec2.SubnetType.PRIVATE_ISOLATED,\n },\n engine: rds.DatabaseClusterEngine.AURORA_POSTGRESQL,\n parameterGroup: rds.ParameterGroup.fromParameterGroupName(\n this,\n \"ParameterGroup\",\n \"default.aurora-postgresql10\"\n ),\n removalPolicy: RemovalPolicy.DESTROY,\n scaling: {\n autoPause: Duration.minutes(60),\n minCapacity: rds.AuroraCapacityUnit.ACU_2,\n maxCapacity: rds.AuroraCapacityUnit.ACU_2,\n },\n})\n```\n\nThen create a provider which will connect to your database:\n\n```ts\nimport { Provider } from \"cdk-rds-sql\"\n\nconst provider = new Provider(this, \"Provider\", {\n vpc: vpc,\n cluster: cluster,\n secret: cluster.secret!,\n})\n```\n\nThe provider will setup a lambda, which will live in the same VPC, or\nat minimum in a VPC that can get access to the database. The provider\nwill automatically setup a connection to the given cluster.\n\n## Roles\n\nCreate a postgres role (user) as follows:\n\n```ts\nimport { Role } from \"cdk-rds-sql\"\n\nconst role = new Role(this, \"Role\", {\n provider: provider,\n roleName: \"myrole\",\n cluster: cluster,\n databaseName: \"mydb\",\n})\n```\n\nThis will automatically create a secret just like `ServerlessCluster`\ndoes, with all the connection info needed for this user. It's secret value is a JSON like:\n\n```json\n{\n \"dbClusterIdentifier\": \"teststack-clustereb1186t9-sh4wpqfdyfvu\",\n \"password\": \"very-long-and-boring\",\n \"dbname\": \"mydb\",\n \"engine\": \"postgres\",\n \"port\": 5432,\n \"host\": \"teststack-clustereb1186t9-sh4wpqfdyfvu.cluster-cgudolabssna.us-east-1.rds.amazonaws.com\",\n \"username\": \"myrole\"\n}\n```\n\nYou can access the secret via `role.secret`.\n\n## Database\n\nCreate a datdabse as follows:\n\n```ts\nimport { Database } from \"cdk-rds-sql\"\n\nconst database = new Database(this, \"Database\", {\n provider: provider,\n databaseName: \"mydb\",\n})\n```\n\nYou can provide an owner, which makes it easy to create database owned\nby a new user:\n\n```ts\nconst database = new Database(this, \"Database\", {\n provider: provider,\n databaseName: \"mydb\",\n owner: role,\n})\n```\n\n## Schema\n\nCreate a schema in the default database as follows:\n\n```ts\nimport { Schema } from \"cdk-rds-sql\"\n\nnew Schema(this, \"Schema\", {\n provider: provider,\n schemaName: \"myschema\",\n})\n```\n\nOr in another database:\n\n```ts\nconst database = new Database(this, \"Database\", {\n provider: provider,\n databaseName: \"mydb\",\n})\n\nnew Schema(this, \"Schema\", {\n provider: provider,\n schemaName: \"myschema\",\n databaseName: database.databaseName,\n})\n```\n\n## Sql\n\nYou can insert arbitrary SQL into your database with the `Sql` construct:\n\n```ts\nimport { Sql } from \"cdk-rds-sql\"\n\nconst sql = new Sql(this, \"Sql\", {\n provider: provider,\n database: database,\n statement: \"create table t (i int)\",\n})\n```\n\nNote that there is no synchronisation between various `Sql`\nconstructs, in particular the order in your code does not determine\nthe order in which your SQL is executed. This happens in parallel,\nunless you specify an explicit dependency via `sql.node.addDepency()`.\n\nThere are a lot of concerns when using `Sql`:\n\n- When you update your Sql, your previous Sql is not \"rolled back\",\n the new Sql is simply executed again.\n- The same when you delete your `Sql` construct: nothing is rolled\n back in the database.\n- Currently the `Sql` constructs has less than 5 minutes to execute\n its work.\n- It is unknown how large your SQL can be.\n\n## Dependencies\n\nThis library manages dependencies, there is no need to specify\ndependencies except possibly for `Sql` constructs.\n\n# Working on this code\n\nThis code is managed by\n[projen](https://github.com/projen/projen/blob/main/README.md). In\naddition [pre-commit](https://pre-commit.com/) is used.\n\nSo after git clone and `npm ci` you would do:\n\n```\npre-commit install --install-hooks --hook-type commit-msg --hook-type pre-commit\n```\n\nto install the pre-commit hooks.\n\n## Testing\n\nTest code via projen with:\n\n npx projen test\n\nYou can run the sample stack with:\n\n npx cdk deploy --context vpc-id=vpc-0123456789\n\n# To do\n\n- Update role: will not revoke connect to previous database if database name has changed.\n- If the cluster is configured for autopausing, wake cluster up before doing any SQL operations.\n- We rename roles and database on update: is that actually the best\n thing? More change to get us into an irrecoverable situation??\n"
3054
3093
  },
3055
3094
  "repository": {
3056
3095
  "type": "git",
@@ -3076,7 +3115,7 @@
3076
3115
  },
3077
3116
  "locationInModule": {
3078
3117
  "filename": "src/database.ts",
3079
- "line": 27
3118
+ "line": 51
3080
3119
  },
3081
3120
  "parameters": [
3082
3121
  {
@@ -3099,11 +3138,54 @@
3099
3138
  }
3100
3139
  ]
3101
3140
  },
3141
+ "interfaces": [
3142
+ "cdk-rds-sql.IDatabase"
3143
+ ],
3102
3144
  "kind": "class",
3103
3145
  "locationInModule": {
3104
3146
  "filename": "src/database.ts",
3105
- "line": 24
3147
+ "line": 39
3106
3148
  },
3149
+ "methods": [
3150
+ {
3151
+ "docs": {
3152
+ "remarks": "Use for importing existing databases.",
3153
+ "stability": "stable",
3154
+ "summary": "Return a Database based upon name only."
3155
+ },
3156
+ "locationInModule": {
3157
+ "filename": "src/database.ts",
3158
+ "line": 43
3159
+ },
3160
+ "name": "fromDatabaseName",
3161
+ "parameters": [
3162
+ {
3163
+ "name": "scope",
3164
+ "type": {
3165
+ "fqn": "constructs.Construct"
3166
+ }
3167
+ },
3168
+ {
3169
+ "name": "id",
3170
+ "type": {
3171
+ "primitive": "string"
3172
+ }
3173
+ },
3174
+ {
3175
+ "name": "databaseName",
3176
+ "type": {
3177
+ "primitive": "string"
3178
+ }
3179
+ }
3180
+ ],
3181
+ "returns": {
3182
+ "type": {
3183
+ "fqn": "cdk-rds-sql.IDatabase"
3184
+ }
3185
+ },
3186
+ "static": true
3187
+ }
3188
+ ],
3107
3189
  "name": "Database",
3108
3190
  "properties": [
3109
3191
  {
@@ -3113,9 +3195,10 @@
3113
3195
  "immutable": true,
3114
3196
  "locationInModule": {
3115
3197
  "filename": "src/database.ts",
3116
- "line": 25
3198
+ "line": 49
3117
3199
  },
3118
3200
  "name": "databaseName",
3201
+ "overrides": "cdk-rds-sql.IDatabase",
3119
3202
  "type": {
3120
3203
  "primitive": "string"
3121
3204
  }
@@ -3133,7 +3216,7 @@
3133
3216
  "kind": "interface",
3134
3217
  "locationInModule": {
3135
3218
  "filename": "src/database.ts",
3136
- "line": 7
3219
+ "line": 19
3137
3220
  },
3138
3221
  "name": "DatabaseProps",
3139
3222
  "properties": [
@@ -3146,7 +3229,7 @@
3146
3229
  "immutable": true,
3147
3230
  "locationInModule": {
3148
3231
  "filename": "src/database.ts",
3149
- "line": 16
3232
+ "line": 11
3150
3233
  },
3151
3234
  "name": "databaseName",
3152
3235
  "type": {
@@ -3162,7 +3245,7 @@
3162
3245
  "immutable": true,
3163
3246
  "locationInModule": {
3164
3247
  "filename": "src/database.ts",
3165
- "line": 11
3248
+ "line": 23
3166
3249
  },
3167
3250
  "name": "provider",
3168
3251
  "type": {
@@ -3178,7 +3261,7 @@
3178
3261
  "immutable": true,
3179
3262
  "locationInModule": {
3180
3263
  "filename": "src/database.ts",
3181
- "line": 21
3264
+ "line": 16
3182
3265
  },
3183
3266
  "name": "owner",
3184
3267
  "optional": true,
@@ -3189,6 +3272,37 @@
3189
3272
  ],
3190
3273
  "symbolId": "src/database:DatabaseProps"
3191
3274
  },
3275
+ "cdk-rds-sql.IDatabase": {
3276
+ "assembly": "cdk-rds-sql",
3277
+ "docs": {
3278
+ "stability": "stable"
3279
+ },
3280
+ "fqn": "cdk-rds-sql.IDatabase",
3281
+ "kind": "interface",
3282
+ "locationInModule": {
3283
+ "filename": "src/database.ts",
3284
+ "line": 26
3285
+ },
3286
+ "name": "IDatabase",
3287
+ "properties": [
3288
+ {
3289
+ "abstract": true,
3290
+ "docs": {
3291
+ "stability": "stable"
3292
+ },
3293
+ "immutable": true,
3294
+ "locationInModule": {
3295
+ "filename": "src/database.ts",
3296
+ "line": 27
3297
+ },
3298
+ "name": "databaseName",
3299
+ "type": {
3300
+ "primitive": "string"
3301
+ }
3302
+ }
3303
+ ],
3304
+ "symbolId": "src/database:IDatabase"
3305
+ },
3192
3306
  "cdk-rds-sql.Provider": {
3193
3307
  "assembly": "cdk-rds-sql",
3194
3308
  "base": "constructs.Construct",
@@ -3430,7 +3544,7 @@
3430
3544
  },
3431
3545
  "locationInModule": {
3432
3546
  "filename": "src/role.ts",
3433
- "line": 49
3547
+ "line": 52
3434
3548
  },
3435
3549
  "parameters": [
3436
3550
  {
@@ -3456,7 +3570,7 @@
3456
3570
  "kind": "class",
3457
3571
  "locationInModule": {
3458
3572
  "filename": "src/role.ts",
3459
- "line": 38
3573
+ "line": 41
3460
3574
  },
3461
3575
  "name": "Role",
3462
3576
  "properties": [
@@ -3468,7 +3582,7 @@
3468
3582
  "immutable": true,
3469
3583
  "locationInModule": {
3470
3584
  "filename": "src/role.ts",
3471
- "line": 42
3585
+ "line": 45
3472
3586
  },
3473
3587
  "name": "roleName",
3474
3588
  "type": {
@@ -3483,7 +3597,7 @@
3483
3597
  "immutable": true,
3484
3598
  "locationInModule": {
3485
3599
  "filename": "src/role.ts",
3486
- "line": 47
3600
+ "line": 50
3487
3601
  },
3488
3602
  "name": "secret",
3489
3603
  "type": {
@@ -3503,7 +3617,7 @@
3503
3617
  "kind": "interface",
3504
3618
  "locationInModule": {
3505
3619
  "filename": "src/role.ts",
3506
- "line": 9
3620
+ "line": 10
3507
3621
  },
3508
3622
  "name": "RoleProps",
3509
3623
  "properties": [
@@ -3516,7 +3630,7 @@
3516
3630
  "immutable": true,
3517
3631
  "locationInModule": {
3518
3632
  "filename": "src/role.ts",
3519
- "line": 28
3633
+ "line": 31
3520
3634
  },
3521
3635
  "name": "cluster",
3522
3636
  "type": {
@@ -3527,48 +3641,50 @@
3527
3641
  "abstract": true,
3528
3642
  "docs": {
3529
3643
  "stability": "stable",
3530
- "summary": "Database name this user is expected to use."
3644
+ "summary": "Provider."
3531
3645
  },
3532
3646
  "immutable": true,
3533
3647
  "locationInModule": {
3534
3648
  "filename": "src/role.ts",
3535
- "line": 23
3649
+ "line": 14
3536
3650
  },
3537
- "name": "databaseName",
3651
+ "name": "provider",
3538
3652
  "type": {
3539
- "primitive": "string"
3653
+ "fqn": "cdk-rds-sql.Provider"
3540
3654
  }
3541
3655
  },
3542
3656
  {
3543
3657
  "abstract": true,
3544
3658
  "docs": {
3545
3659
  "stability": "stable",
3546
- "summary": "Provider."
3660
+ "summary": "SQL."
3547
3661
  },
3548
3662
  "immutable": true,
3549
3663
  "locationInModule": {
3550
3664
  "filename": "src/role.ts",
3551
- "line": 13
3665
+ "line": 19
3552
3666
  },
3553
- "name": "provider",
3667
+ "name": "roleName",
3554
3668
  "type": {
3555
- "fqn": "cdk-rds-sql.Provider"
3669
+ "primitive": "string"
3556
3670
  }
3557
3671
  },
3558
3672
  {
3559
3673
  "abstract": true,
3560
3674
  "docs": {
3675
+ "default": "no connection to any database is granted",
3561
3676
  "stability": "stable",
3562
- "summary": "SQL."
3677
+ "summary": "Ootional database name this user is expected to use."
3563
3678
  },
3564
3679
  "immutable": true,
3565
3680
  "locationInModule": {
3566
3681
  "filename": "src/role.ts",
3567
- "line": 18
3682
+ "line": 26
3568
3683
  },
3569
- "name": "roleName",
3684
+ "name": "database",
3685
+ "optional": true,
3570
3686
  "type": {
3571
- "primitive": "string"
3687
+ "fqn": "cdk-rds-sql.IDatabase"
3572
3688
  }
3573
3689
  },
3574
3690
  {
@@ -3581,7 +3697,7 @@
3581
3697
  "immutable": true,
3582
3698
  "locationInModule": {
3583
3699
  "filename": "src/role.ts",
3584
- "line": 35
3700
+ "line": 38
3585
3701
  },
3586
3702
  "name": "encryptionKey",
3587
3703
  "optional": true,
@@ -3605,7 +3721,7 @@
3605
3721
  },
3606
3722
  "locationInModule": {
3607
3723
  "filename": "src/schema.ts",
3608
- "line": 28
3724
+ "line": 29
3609
3725
  },
3610
3726
  "parameters": [
3611
3727
  {
@@ -3631,7 +3747,7 @@
3631
3747
  "kind": "class",
3632
3748
  "locationInModule": {
3633
3749
  "filename": "src/schema.ts",
3634
- "line": 25
3750
+ "line": 26
3635
3751
  },
3636
3752
  "name": "Schema",
3637
3753
  "properties": [
@@ -3642,7 +3758,7 @@
3642
3758
  "immutable": true,
3643
3759
  "locationInModule": {
3644
3760
  "filename": "src/schema.ts",
3645
- "line": 26
3761
+ "line": 27
3646
3762
  },
3647
3763
  "name": "schemaName",
3648
3764
  "type": {
@@ -3662,7 +3778,7 @@
3662
3778
  "kind": "interface",
3663
3779
  "locationInModule": {
3664
3780
  "filename": "src/schema.ts",
3665
- "line": 6
3781
+ "line": 7
3666
3782
  },
3667
3783
  "name": "SchemaProps",
3668
3784
  "properties": [
@@ -3675,7 +3791,7 @@
3675
3791
  "immutable": true,
3676
3792
  "locationInModule": {
3677
3793
  "filename": "src/schema.ts",
3678
- "line": 10
3794
+ "line": 11
3679
3795
  },
3680
3796
  "name": "provider",
3681
3797
  "type": {
@@ -3691,7 +3807,7 @@
3691
3807
  "immutable": true,
3692
3808
  "locationInModule": {
3693
3809
  "filename": "src/schema.ts",
3694
- "line": 22
3810
+ "line": 23
3695
3811
  },
3696
3812
  "name": "schemaName",
3697
3813
  "type": {
@@ -3708,12 +3824,12 @@
3708
3824
  "immutable": true,
3709
3825
  "locationInModule": {
3710
3826
  "filename": "src/schema.ts",
3711
- "line": 17
3827
+ "line": 18
3712
3828
  },
3713
- "name": "databaseName",
3829
+ "name": "database",
3714
3830
  "optional": true,
3715
3831
  "type": {
3716
- "primitive": "string"
3832
+ "fqn": "cdk-rds-sql.IDatabase"
3717
3833
  }
3718
3834
  }
3719
3835
  ],
@@ -3732,7 +3848,7 @@
3732
3848
  },
3733
3849
  "locationInModule": {
3734
3850
  "filename": "src/sql.ts",
3735
- "line": 26
3851
+ "line": 27
3736
3852
  },
3737
3853
  "parameters": [
3738
3854
  {
@@ -3758,7 +3874,7 @@
3758
3874
  "kind": "class",
3759
3875
  "locationInModule": {
3760
3876
  "filename": "src/sql.ts",
3761
- "line": 25
3877
+ "line": 26
3762
3878
  },
3763
3879
  "name": "Sql",
3764
3880
  "symbolId": "src/sql:Sql"
@@ -3773,7 +3889,7 @@
3773
3889
  "kind": "interface",
3774
3890
  "locationInModule": {
3775
3891
  "filename": "src/sql.ts",
3776
- "line": 6
3892
+ "line": 7
3777
3893
  },
3778
3894
  "name": "SqlProps",
3779
3895
  "properties": [
@@ -3786,7 +3902,7 @@
3786
3902
  "immutable": true,
3787
3903
  "locationInModule": {
3788
3904
  "filename": "src/sql.ts",
3789
- "line": 10
3905
+ "line": 11
3790
3906
  },
3791
3907
  "name": "provider",
3792
3908
  "type": {
@@ -3803,12 +3919,12 @@
3803
3919
  "immutable": true,
3804
3920
  "locationInModule": {
3805
3921
  "filename": "src/sql.ts",
3806
- "line": 17
3922
+ "line": 18
3807
3923
  },
3808
- "name": "databaseName",
3924
+ "name": "database",
3809
3925
  "optional": true,
3810
3926
  "type": {
3811
- "primitive": "string"
3927
+ "fqn": "cdk-rds-sql.IDatabase"
3812
3928
  }
3813
3929
  },
3814
3930
  {
@@ -3820,7 +3936,7 @@
3820
3936
  "immutable": true,
3821
3937
  "locationInModule": {
3822
3938
  "filename": "src/sql.ts",
3823
- "line": 22
3939
+ "line": 23
3824
3940
  },
3825
3941
  "name": "statement",
3826
3942
  "optional": true,
@@ -3832,6 +3948,6 @@
3832
3948
  "symbolId": "src/sql:SqlProps"
3833
3949
  }
3834
3950
  },
3835
- "version": "1.0.1",
3836
- "fingerprint": "xd5l5D0F3gWHGA/dNvWEpl0VUfEOIuy/cCZzbFG1m9Y="
3951
+ "version": "1.1.1",
3952
+ "fingerprint": "10S8iJf38MZT3c0zV9U9P1Tf+WfVXvVT2ZGFz3O3/+w="
3837
3953
  }
@@ -40,8 +40,8 @@ repos:
40
40
  - id: synth
41
41
  name: synth
42
42
  language: system
43
- entry: sh -c 'npx cdk synth --quiet'
44
- files: (bin|src)/.*\.ts$
43
+ entry: sh -c 'npx cdk synth --quiet --context vpc-id=$VPC_ID'
44
+ files: src/.*\.ts$
45
45
  - repo: local
46
46
  hooks:
47
47
  - id: compile-project
package/.projenrc.ts CHANGED
@@ -13,7 +13,7 @@ const project = new awscdk.AwsCdkConstructLibrary({
13
13
  repositoryUrl: "https://github.com/berenddeboer/cdk-rds-sql.git",
14
14
  projenrcTs: true,
15
15
  constructsVersion: "10.1.104",
16
- cdkVersion: "2.41.0",
16
+ cdkVersion: "2.43.1",
17
17
  disableTsconfig: true,
18
18
  tsconfigDev: {
19
19
  compilerOptions: {
package/README.md CHANGED
@@ -164,7 +164,7 @@ import { Sql } from "cdk-rds-sql"
164
164
 
165
165
  const sql = new Sql(this, "Sql", {
166
166
  provider: provider,
167
- databaseName: database.databaseName,
167
+ database: database,
168
168
  statement: "create table t (i int)",
169
169
  })
170
170
  ```
@@ -211,10 +211,11 @@ Test code via projen with:
211
211
 
212
212
  You can run the sample stack with:
213
213
 
214
- npx cdk synth --context vpc-id=vpc-0123456789
214
+ npx cdk deploy --context vpc-id=vpc-0123456789
215
215
 
216
216
  # To do
217
217
 
218
- - Add `.from()` functions to make everything more type-safe, and make
219
- it impossible to import database from other stacks or created
220
- outside the stack.
218
+ - Update role: will not revoke connect to previous database if database name has changed.
219
+ - If the cluster is configured for autopausing, wake cluster up before doing any SQL operations.
220
+ - We rename roles and database on update: is that actually the best
221
+ thing? More change to get us into an irrecoverable situation??
package/cdk.json CHANGED
@@ -22,7 +22,6 @@
22
22
  "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true,
23
23
  "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true,
24
24
  "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true,
25
- "@aws-cdk/core:target-partitions": ["aws", "aws-cn"],
26
- "vpc-id": "vpc-0f42b9b4c9c371d3f"
25
+ "@aws-cdk/core:target-partitions": ["aws", "aws-cn"]
27
26
  }
28
27
  }
package/lib/database.d.ts CHANGED
@@ -2,11 +2,7 @@ import { CustomResource } from "aws-cdk-lib";
2
2
  import { Construct } from "constructs";
3
3
  import { Provider } from "./provider";
4
4
  import { Role } from "./role";
5
- export interface DatabaseProps {
6
- /**
7
- * Provider.
8
- */
9
- readonly provider: Provider;
5
+ interface DatabaseAttributes {
10
6
  /**
11
7
  * Name of database to create.
12
8
  */
@@ -16,7 +12,21 @@ export interface DatabaseProps {
16
12
  */
17
13
  readonly owner?: Role;
18
14
  }
19
- export declare class Database extends CustomResource {
15
+ export interface DatabaseProps extends DatabaseAttributes {
16
+ /**
17
+ * Provider.
18
+ */
19
+ readonly provider: Provider;
20
+ }
21
+ export interface IDatabase {
22
+ readonly databaseName: string;
23
+ }
24
+ export declare class Database extends CustomResource implements IDatabase {
25
+ /**
26
+ * Return a Database based upon name only. Use for importing existing databases.
27
+ */
28
+ static fromDatabaseName(scope: Construct, id: string, databaseName: string): IDatabase;
20
29
  readonly databaseName: string;
21
30
  constructor(scope: Construct, id: string, props: DatabaseProps);
22
31
  }
32
+ export {};
package/lib/database.js CHANGED
@@ -4,7 +4,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Database = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const aws_cdk_lib_1 = require("aws-cdk-lib");
7
+ const constructs_1 = require("constructs");
7
8
  const enum_1 = require("./enum");
9
+ class ImportedDatabase extends constructs_1.Construct {
10
+ constructor(scope, id, props) {
11
+ super(scope, id);
12
+ this.databaseName = props.databaseName;
13
+ }
14
+ }
8
15
  class Database extends aws_cdk_lib_1.CustomResource {
9
16
  constructor(scope, id, props) {
10
17
  super(scope, id, {
@@ -22,8 +29,16 @@ class Database extends aws_cdk_lib_1.CustomResource {
22
29
  this.node.addDependency(props.owner);
23
30
  }
24
31
  }
32
+ /**
33
+ * Return a Database based upon name only. Use for importing existing databases.
34
+ */
35
+ static fromDatabaseName(scope, id, databaseName) {
36
+ return new ImportedDatabase(scope, id, {
37
+ databaseName: databaseName,
38
+ });
39
+ }
25
40
  }
26
41
  exports.Database = Database;
27
42
  _a = JSII_RTTI_SYMBOL_1;
28
- Database[_a] = { fqn: "cdk-rds-sql.Database", version: "1.0.1" };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNEM7QUFFNUMsaUNBQXVDO0FBcUJ2QyxNQUFhLFFBQVMsU0FBUSw0QkFBYztJQUcxQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWTtZQUN6QyxVQUFVLEVBQUU7Z0JBQ1YsUUFBUSxFQUFFLHFCQUFjLENBQUMsUUFBUTtnQkFDakMsVUFBVSxFQUFFLEtBQUssQ0FBQyxZQUFZO2dCQUM5QixTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUztnQkFDMUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsUUFBUTthQUM3QjtTQUNGLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUE7UUFDdEMsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1NBQ3JDO0lBQ0gsQ0FBQzs7QUFsQkgsNEJBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0IHsgUmRzU3FsUmVzb3VyY2UgfSBmcm9tIFwiLi9lbnVtXCJcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcIi4vcHJvdmlkZXJcIlxuaW1wb3J0IHsgUm9sZSB9IGZyb20gXCIuL3JvbGVcIlxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlUHJvcHMge1xuICAvKipcbiAgICogUHJvdmlkZXIuXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlcjogUHJvdmlkZXJcblxuICAvKipcbiAgICogTmFtZSBvZiBkYXRhYmFzZSB0byBjcmVhdGUuXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkYXRhYmFzZSBvd25lci5cbiAgICovXG4gIHJlYWRvbmx5IG93bmVyPzogUm9sZVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YWJhc2UgZXh0ZW5kcyBDdXN0b21SZXNvdXJjZSB7XG4gIHB1YmxpYyByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhYmFzZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3BzLnByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgUmVzb3VyY2U6IFJkc1NxbFJlc291cmNlLkRBVEFCQVNFLFxuICAgICAgICBSZXNvdXJjZUlkOiBwcm9wcy5kYXRhYmFzZU5hbWUsXG4gICAgICAgIFNlY3JldEFybjogcHJvcHMucHJvdmlkZXIuc2VjcmV0LnNlY3JldEFybixcbiAgICAgICAgT3duZXI6IHByb3BzLm93bmVyPy5yb2xlTmFtZSxcbiAgICAgIH0sXG4gICAgfSlcbiAgICB0aGlzLm5vZGUuYWRkRGVwZW5kZW5jeShwcm9wcy5wcm92aWRlcilcbiAgICB0aGlzLmRhdGFiYXNlTmFtZSA9IHByb3BzLmRhdGFiYXNlTmFtZVxuICAgIGlmIChwcm9wcy5vd25lcikge1xuICAgICAgdGhpcy5ub2RlLmFkZERlcGVuZGVuY3kocHJvcHMub3duZXIpXG4gICAgfVxuICB9XG59XG4iXX0=
43
+ Database[_a] = { fqn: "cdk-rds-sql.Database", version: "1.1.1" };
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNEM7QUFDNUMsMkNBQXNDO0FBQ3RDLGlDQUF1QztBQTJCdkMsTUFBTSxnQkFBaUIsU0FBUSxzQkFBUztJQUd0QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFBO0lBQ3hDLENBQUM7Q0FDRjtBQUVELE1BQWEsUUFBUyxTQUFRLDRCQUFjO0lBWTFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ3pDLFVBQVUsRUFBRTtnQkFDVixRQUFRLEVBQUUscUJBQWMsQ0FBQyxRQUFRO2dCQUNqQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFlBQVk7Z0JBQzlCLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTO2dCQUMxQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRO2FBQzdCO1NBQ0YsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQTtRQUN0QyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDckM7SUFDSCxDQUFDO0lBMUJEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFlBQW9CO1FBQ3hFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3JDLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUMsQ0FBQTtJQUNKLENBQUM7O0FBUkgsNEJBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0IHsgUmRzU3FsUmVzb3VyY2UgfSBmcm9tIFwiLi9lbnVtXCJcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcIi4vcHJvdmlkZXJcIlxuaW1wb3J0IHsgUm9sZSB9IGZyb20gXCIuL3JvbGVcIlxuXG5pbnRlcmZhY2UgRGF0YWJhc2VBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgZGF0YWJhc2UgdG8gY3JlYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmdcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGF0YWJhc2Ugb3duZXIuXG4gICAqL1xuICByZWFkb25seSBvd25lcj86IFJvbGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZVByb3BzIGV4dGVuZHMgRGF0YWJhc2VBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFByb3ZpZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXI6IFByb3ZpZGVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFiYXNlIHtcbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmdcbn1cblxuY2xhc3MgSW1wb3J0ZWREYXRhYmFzZSBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElEYXRhYmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhYmFzZUF0dHJpYnV0ZXMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG4gICAgdGhpcy5kYXRhYmFzZU5hbWUgPSBwcm9wcy5kYXRhYmFzZU5hbWVcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YWJhc2UgZXh0ZW5kcyBDdXN0b21SZXNvdXJjZSBpbXBsZW1lbnRzIElEYXRhYmFzZSB7XG4gIC8qKlxuICAgKiBSZXR1cm4gYSBEYXRhYmFzZSBiYXNlZCB1cG9uIG5hbWUgb25seS4gVXNlIGZvciBpbXBvcnRpbmcgZXhpc3RpbmcgZGF0YWJhc2VzLlxuICAgKi9cbiAgc3RhdGljIGZyb21EYXRhYmFzZU5hbWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZGF0YWJhc2VOYW1lOiBzdHJpbmcpOiBJRGF0YWJhc2Uge1xuICAgIHJldHVybiBuZXcgSW1wb3J0ZWREYXRhYmFzZShzY29wZSwgaWQsIHtcbiAgICAgIGRhdGFiYXNlTmFtZTogZGF0YWJhc2VOYW1lLFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgc2VydmljZVRva2VuOiBwcm9wcy5wcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIFJlc291cmNlOiBSZHNTcWxSZXNvdXJjZS5EQVRBQkFTRSxcbiAgICAgICAgUmVzb3VyY2VJZDogcHJvcHMuZGF0YWJhc2VOYW1lLFxuICAgICAgICBTZWNyZXRBcm46IHByb3BzLnByb3ZpZGVyLnNlY3JldC5zZWNyZXRBcm4sXG4gICAgICAgIE93bmVyOiBwcm9wcy5vd25lcj8ucm9sZU5hbWUsXG4gICAgICB9LFxuICAgIH0pXG4gICAgdGhpcy5ub2RlLmFkZERlcGVuZGVuY3kocHJvcHMucHJvdmlkZXIpXG4gICAgdGhpcy5kYXRhYmFzZU5hbWUgPSBwcm9wcy5kYXRhYmFzZU5hbWVcbiAgICBpZiAocHJvcHMub3duZXIpIHtcbiAgICAgIHRoaXMubm9kZS5hZGREZXBlbmRlbmN5KHByb3BzLm93bmVyKVxuICAgIH1cbiAgfVxufVxuIl19