cdk-rds-sql 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +125 -48
- package/.pre-commit-config.yaml +2 -2
- package/README.md +6 -5
- package/cdk.json +1 -2
- package/lib/database.d.ts +16 -6
- package/lib/database.js +17 -2
- package/lib/handler.js +20 -4
- package/lib/provider.js +1 -1
- package/lib/role.custom-resource.d.ts +7 -0
- package/lib/role.custom-resource.js +4 -1
- package/lib/role.d.ts +5 -2
- package/lib/role.js +4 -3
- package/lib/schema.d.ts +2 -1
- package/lib/schema.js +5 -3
- package/lib/sql.d.ts +2 -1
- package/lib/sql.js +5 -3
- package/node_modules/@aws-sdk/abort-controller/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/abort-controller/package.json +2 -2
- package/node_modules/@aws-sdk/client-secrets-manager/CHANGELOG.md +24 -0
- package/node_modules/@aws-sdk/client-secrets-manager/dist-types/runtimeConfig.browser.d.ts +1 -1
- package/node_modules/@aws-sdk/client-secrets-manager/dist-types/runtimeConfig.d.ts +1 -1
- package/node_modules/@aws-sdk/client-secrets-manager/dist-types/runtimeConfig.native.d.ts +1 -1
- package/node_modules/@aws-sdk/client-secrets-manager/dist-types/ts3.4/runtimeConfig.browser.d.ts +3 -1
- package/node_modules/@aws-sdk/client-secrets-manager/dist-types/ts3.4/runtimeConfig.d.ts +3 -1
- package/node_modules/@aws-sdk/client-secrets-manager/dist-types/ts3.4/runtimeConfig.native.d.ts +3 -1
- package/node_modules/@aws-sdk/client-secrets-manager/package.json +26 -26
- package/node_modules/@aws-sdk/client-sso/CHANGELOG.md +16 -0
- package/node_modules/@aws-sdk/client-sso/package.json +23 -23
- package/node_modules/@aws-sdk/client-sts/CHANGELOG.md +24 -0
- package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.browser.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.native.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.browser.d.ts +3 -1
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.d.ts +3 -1
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.native.d.ts +3 -1
- package/node_modules/@aws-sdk/client-sts/package.json +26 -26
- package/node_modules/@aws-sdk/config-resolver/CHANGELOG.md +11 -0
- package/node_modules/@aws-sdk/config-resolver/dist-cjs/endpointsConfig/resolveEndpointsConfig.js +1 -1
- package/node_modules/@aws-sdk/config-resolver/dist-es/endpointsConfig/resolveEndpointsConfig.js +1 -1
- package/node_modules/@aws-sdk/config-resolver/dist-types/endpointsConfig/resolveEndpointsConfig.d.ts +2 -1
- package/node_modules/@aws-sdk/config-resolver/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-env/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/credential-provider-env/package.json +3 -3
- package/node_modules/@aws-sdk/credential-provider-imds/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/credential-provider-imds/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-ini/CHANGELOG.md +16 -0
- package/node_modules/@aws-sdk/credential-provider-ini/package.json +8 -8
- package/node_modules/@aws-sdk/credential-provider-node/CHANGELOG.md +16 -0
- package/node_modules/@aws-sdk/credential-provider-node/package.json +10 -10
- package/node_modules/@aws-sdk/credential-provider-process/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/credential-provider-process/package.json +4 -4
- package/node_modules/@aws-sdk/credential-provider-sso/CHANGELOG.md +16 -0
- package/node_modules/@aws-sdk/credential-provider-sso/package.json +5 -5
- package/node_modules/@aws-sdk/credential-provider-web-identity/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
- package/node_modules/@aws-sdk/fetch-http-handler/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/fetch-http-handler/package.json +5 -5
- package/node_modules/@aws-sdk/hash-node/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/hash-node/package.json +2 -2
- package/node_modules/@aws-sdk/invalid-dependency/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/invalid-dependency/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-content-length/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/middleware-content-length/package.json +3 -3
- package/node_modules/@aws-sdk/middleware-host-header/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/middleware-host-header/package.json +3 -3
- package/node_modules/@aws-sdk/middleware-logger/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/middleware-logger/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-recursion-detection/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +3 -3
- package/node_modules/@aws-sdk/middleware-retry/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/middleware-retry/package.json +6 -6
- package/node_modules/@aws-sdk/middleware-sdk-sts/CHANGELOG.md +16 -0
- package/node_modules/@aws-sdk/middleware-sdk-sts/package.json +6 -6
- package/node_modules/@aws-sdk/middleware-serde/CHANGELOG.md +11 -0
- package/node_modules/@aws-sdk/middleware-serde/dist-cjs/serializerMiddleware.js +8 -1
- package/node_modules/@aws-sdk/middleware-serde/dist-es/serializerMiddleware.js +15 -5
- package/node_modules/@aws-sdk/middleware-serde/dist-types/serdePlugin.d.ts +5 -2
- package/node_modules/@aws-sdk/middleware-serde/dist-types/serializerMiddleware.d.ts +2 -1
- package/node_modules/@aws-sdk/middleware-serde/dist-types/ts3.4/serdePlugin.d.ts +5 -1
- package/node_modules/@aws-sdk/middleware-serde/dist-types/ts3.4/serializerMiddleware.d.ts +2 -1
- package/node_modules/@aws-sdk/middleware-serde/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-signing/CHANGELOG.md +22 -0
- package/node_modules/@aws-sdk/middleware-signing/dist-cjs/configurations.js +30 -15
- package/node_modules/@aws-sdk/middleware-signing/dist-cjs/middleware.js +3 -1
- package/node_modules/@aws-sdk/middleware-signing/dist-es/configurations.js +21 -10
- package/node_modules/@aws-sdk/middleware-signing/dist-es/middleware.js +13 -11
- package/node_modules/@aws-sdk/middleware-signing/dist-types/configurations.d.ts +5 -5
- package/node_modules/@aws-sdk/middleware-signing/dist-types/ts3.4/configurations.d.ts +9 -4
- package/node_modules/@aws-sdk/middleware-signing/package.json +7 -6
- package/node_modules/@aws-sdk/middleware-stack/CHANGELOG.md +11 -0
- package/node_modules/@aws-sdk/middleware-stack/dist-cjs/MiddlewareStack.js +13 -3
- package/node_modules/@aws-sdk/middleware-stack/dist-es/MiddlewareStack.js +14 -3
- package/node_modules/@aws-sdk/middleware-stack/package.json +2 -2
- package/node_modules/@aws-sdk/middleware-user-agent/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/middleware-user-agent/package.json +4 -4
- package/node_modules/@aws-sdk/node-config-provider/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/node-config-provider/package.json +4 -4
- package/node_modules/@aws-sdk/node-http-handler/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/node-http-handler/package.json +5 -5
- package/node_modules/@aws-sdk/property-provider/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/property-provider/package.json +2 -2
- package/node_modules/@aws-sdk/protocol-http/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/protocol-http/package.json +2 -2
- package/node_modules/@aws-sdk/querystring-builder/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/querystring-builder/package.json +2 -2
- package/node_modules/@aws-sdk/querystring-parser/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/querystring-parser/package.json +2 -2
- package/node_modules/@aws-sdk/service-error-classification/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/service-error-classification/package.json +2 -2
- package/node_modules/@aws-sdk/shared-ini-file-loader/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/shared-ini-file-loader/package.json +2 -2
- package/node_modules/@aws-sdk/signature-v4/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/signature-v4/package.json +4 -4
- package/node_modules/@aws-sdk/smithy-client/CHANGELOG.md +19 -0
- package/node_modules/@aws-sdk/smithy-client/dist-types/exceptions.d.ts +2 -2
- package/node_modules/@aws-sdk/smithy-client/dist-types/ts3.4/exceptions.d.ts +4 -1
- package/node_modules/@aws-sdk/smithy-client/package.json +3 -3
- package/node_modules/@aws-sdk/types/CHANGELOG.md +11 -0
- package/node_modules/@aws-sdk/types/dist-types/auth.d.ts +11 -0
- package/node_modules/@aws-sdk/types/dist-types/endpoint.d.ts +4 -1
- package/node_modules/@aws-sdk/types/dist-types/middleware.d.ts +12 -0
- package/node_modules/@aws-sdk/types/dist-types/ts3.4/auth.d.ts +2 -0
- package/node_modules/@aws-sdk/types/dist-types/ts3.4/endpoint.d.ts +4 -1
- package/node_modules/@aws-sdk/types/dist-types/ts3.4/middleware.d.ts +3 -0
- package/node_modules/@aws-sdk/types/package.json +1 -1
- package/node_modules/@aws-sdk/url-parser/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/url-parser/package.json +3 -3
- package/node_modules/@aws-sdk/util-defaults-mode-browser/CHANGELOG.md +16 -0
- package/node_modules/@aws-sdk/util-defaults-mode-browser/package.json +4 -4
- package/node_modules/@aws-sdk/util-defaults-mode-node/CHANGELOG.md +16 -0
- package/node_modules/@aws-sdk/util-defaults-mode-node/package.json +7 -7
- package/node_modules/@aws-sdk/util-middleware/CHANGELOG.md +11 -0
- package/node_modules/@aws-sdk/util-middleware/dist-types/normalizeProvider.d.ts +3 -0
- package/node_modules/@aws-sdk/util-middleware/package.json +2 -2
- package/node_modules/@aws-sdk/util-user-agent-browser/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/util-user-agent-browser/package.json +3 -3
- package/node_modules/@aws-sdk/util-user-agent-node/CHANGELOG.md +8 -0
- package/node_modules/@aws-sdk/util-user-agent-node/package.json +4 -4
- package/node_modules/aws-sdk/CHANGELOG.md +43 -1
- package/node_modules/aws-sdk/README.md +1 -1
- package/node_modules/aws-sdk/apis/backup-gateway-2021-01-01.min.json +59 -8
- package/node_modules/aws-sdk/apis/ce-2017-10-25.min.json +10 -8
- package/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.min.json +247 -3
- package/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.paginators.json +12 -0
- package/node_modules/aws-sdk/apis/codestar-notifications-2019-10-15.min.json +7 -2
- package/node_modules/aws-sdk/apis/comprehend-2017-11-27.min.json +237 -126
- package/node_modules/aws-sdk/apis/devicefarm-2015-06-23.min.json +166 -132
- package/node_modules/aws-sdk/apis/ec2-2016-11-15.min.json +1294 -1251
- package/node_modules/aws-sdk/apis/glue-2017-03-31.min.json +3 -1
- package/node_modules/aws-sdk/apis/iotfleetwise-2021-06-17.examples.json +5 -0
- package/node_modules/aws-sdk/apis/iotfleetwise-2021-06-17.min.json +1961 -0
- package/node_modules/aws-sdk/apis/iotfleetwise-2021-06-17.paginators.json +82 -0
- package/node_modules/aws-sdk/apis/iotfleetwise-2021-06-17.waiters2.json +5 -0
- package/node_modules/aws-sdk/apis/lightsail-2016-11-28.min.json +59 -22
- package/node_modules/aws-sdk/apis/location-2020-11-19.min.json +64 -17
- package/node_modules/aws-sdk/apis/mediaconnect-2018-11-14.min.json +21 -0
- package/node_modules/aws-sdk/apis/metadata.json +3 -0
- package/node_modules/aws-sdk/apis/models.lex.v2-2020-08-07.min.json +228 -142
- package/node_modules/aws-sdk/apis/nimble-2020-08-01.waiters2.json +1 -1
- package/node_modules/aws-sdk/apis/s3control-2018-08-20.min.json +102 -19
- package/node_modules/aws-sdk/apis/sagemaker-2017-07-24.min.json +584 -572
- package/node_modules/aws-sdk/apis/ssm-2014-11-06.min.json +396 -287
- package/node_modules/aws-sdk/clients/all.d.ts +1 -0
- package/node_modules/aws-sdk/clients/all.js +2 -1
- package/node_modules/aws-sdk/clients/apprunner.d.ts +1 -1
- package/node_modules/aws-sdk/clients/backupgateway.d.ts +72 -0
- package/node_modules/aws-sdk/clients/cloudtrail.d.ts +335 -6
- package/node_modules/aws-sdk/clients/codestarnotifications.d.ts +29 -29
- package/node_modules/aws-sdk/clients/comprehend.d.ts +148 -34
- package/node_modules/aws-sdk/clients/costexplorer.d.ts +15 -7
- package/node_modules/aws-sdk/clients/cur.d.ts +1 -1
- package/node_modules/aws-sdk/clients/devicefarm.d.ts +38 -0
- package/node_modules/aws-sdk/clients/ec2.d.ts +154 -105
- package/node_modules/aws-sdk/clients/ecs.d.ts +11 -11
- package/node_modules/aws-sdk/clients/glue.d.ts +8 -0
- package/node_modules/aws-sdk/clients/identitystore.d.ts +8 -8
- package/node_modules/aws-sdk/clients/iotfleetwise.d.ts +2549 -0
- package/node_modules/aws-sdk/clients/iotfleetwise.js +19 -0
- package/node_modules/aws-sdk/clients/kendra.d.ts +36 -36
- package/node_modules/aws-sdk/clients/lexmodelsv2.d.ts +85 -0
- package/node_modules/aws-sdk/clients/lightsail.d.ts +66 -3
- package/node_modules/aws-sdk/clients/location.d.ts +54 -4
- package/node_modules/aws-sdk/clients/mediaconnect.d.ts +25 -1
- package/node_modules/aws-sdk/clients/nimble.d.ts +14 -14
- package/node_modules/aws-sdk/clients/rds.d.ts +18 -18
- package/node_modules/aws-sdk/clients/s3control.d.ts +109 -41
- package/node_modules/aws-sdk/clients/sagemaker.d.ts +31 -10
- package/node_modules/aws-sdk/clients/ssm.d.ts +113 -2
- package/node_modules/aws-sdk/clients/wafv2.d.ts +7 -7
- package/node_modules/aws-sdk/dist/aws-sdk-core-react-native.js +31 -11
- package/node_modules/aws-sdk/dist/aws-sdk-react-native.js +107 -37
- package/node_modules/aws-sdk/dist/aws-sdk.js +2448 -1829
- package/node_modules/aws-sdk/dist/aws-sdk.min.js +86 -85
- package/node_modules/aws-sdk/lib/config_service_placeholders.d.ts +2 -0
- package/node_modules/aws-sdk/lib/core.js +1 -1
- package/node_modules/aws-sdk/lib/event_listeners.js +1 -0
- package/node_modules/aws-sdk/lib/protocol/rest_json.js +15 -2
- package/node_modules/aws-sdk/package.json +1 -1
- package/node_modules/es-abstract/2015/GetSubstitution.js +1 -1
- package/node_modules/es-abstract/2015/ToNumber.js +1 -1
- package/node_modules/es-abstract/2016/GetSubstitution.js +1 -1
- package/node_modules/es-abstract/2016/ToNumber.js +1 -1
- package/node_modules/es-abstract/2017/GetSubstitution.js +1 -1
- package/node_modules/es-abstract/2017/ToNumber.js +1 -1
- package/node_modules/es-abstract/2018/GetSubstitution.js +1 -1
- package/node_modules/es-abstract/2018/ToNumber.js +1 -1
- package/node_modules/es-abstract/2019/GetSubstitution.js +1 -1
- package/node_modules/es-abstract/2019/ToNumber.js +1 -1
- package/node_modules/es-abstract/2020/GetSubstitution.js +1 -1
- package/node_modules/es-abstract/2020/ToNumber.js +1 -1
- package/node_modules/es-abstract/2021/GetSubstitution.js +1 -1
- package/node_modules/es-abstract/2021/ToNumber.js +1 -1
- package/node_modules/es-abstract/2022/GetSubstitution.js +1 -1
- package/node_modules/es-abstract/2022/StringToNumber.js +1 -1
- package/node_modules/es-abstract/CHANGELOG.md +6 -0
- package/node_modules/es-abstract/helpers/regexTester.js +2 -6
- package/node_modules/es-abstract/package.json +6 -5
- package/node_modules/is-callable/CHANGELOG.md +13 -0
- package/node_modules/is-callable/README.md +5 -2
- package/node_modules/is-callable/index.js +13 -7
- package/node_modules/is-callable/package.json +1 -1
- package/node_modules/is-callable/test/index.js +26 -9
- package/node_modules/safe-regex-test/.eslintrc +9 -0
- package/node_modules/safe-regex-test/.github/FUNDING.yml +12 -0
- package/node_modules/safe-regex-test/CHANGELOG.md +15 -0
- package/node_modules/safe-regex-test/LICENSE +21 -0
- package/node_modules/safe-regex-test/README.md +42 -0
- package/node_modules/safe-regex-test/index.js +17 -0
- package/node_modules/safe-regex-test/package.json +75 -0
- package/node_modules/safe-regex-test/test/index.js +37 -0
- package/package.json +10 -10
package/.jsii
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
]
|
|
8
8
|
},
|
|
9
9
|
"bundled": {
|
|
10
|
-
"@aws-sdk/client-secrets-manager": "^3.
|
|
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",
|
|
@@ -3031,7 +3031,7 @@
|
|
|
3031
3031
|
"stability": "stable"
|
|
3032
3032
|
},
|
|
3033
3033
|
"homepage": "https://github.com/berenddeboer/cdk-rds-sql.git",
|
|
3034
|
-
"jsiiVersion": "1.
|
|
3034
|
+
"jsiiVersion": "1.69.0 (build f656c31)",
|
|
3035
3035
|
"keywords": [
|
|
3036
3036
|
"aurora",
|
|
3037
3037
|
"aws",
|
|
@@ -3050,7 +3050,7 @@
|
|
|
3050
3050
|
},
|
|
3051
3051
|
"name": "cdk-rds-sql",
|
|
3052
3052
|
"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
|
|
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 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
3054
|
},
|
|
3055
3055
|
"repository": {
|
|
3056
3056
|
"type": "git",
|
|
@@ -3076,7 +3076,7 @@
|
|
|
3076
3076
|
},
|
|
3077
3077
|
"locationInModule": {
|
|
3078
3078
|
"filename": "src/database.ts",
|
|
3079
|
-
"line":
|
|
3079
|
+
"line": 51
|
|
3080
3080
|
},
|
|
3081
3081
|
"parameters": [
|
|
3082
3082
|
{
|
|
@@ -3099,11 +3099,54 @@
|
|
|
3099
3099
|
}
|
|
3100
3100
|
]
|
|
3101
3101
|
},
|
|
3102
|
+
"interfaces": [
|
|
3103
|
+
"cdk-rds-sql.IDatabase"
|
|
3104
|
+
],
|
|
3102
3105
|
"kind": "class",
|
|
3103
3106
|
"locationInModule": {
|
|
3104
3107
|
"filename": "src/database.ts",
|
|
3105
|
-
"line":
|
|
3108
|
+
"line": 39
|
|
3106
3109
|
},
|
|
3110
|
+
"methods": [
|
|
3111
|
+
{
|
|
3112
|
+
"docs": {
|
|
3113
|
+
"remarks": "Use for importing existing databases.",
|
|
3114
|
+
"stability": "stable",
|
|
3115
|
+
"summary": "Return a Database based upon name only."
|
|
3116
|
+
},
|
|
3117
|
+
"locationInModule": {
|
|
3118
|
+
"filename": "src/database.ts",
|
|
3119
|
+
"line": 43
|
|
3120
|
+
},
|
|
3121
|
+
"name": "fromDatabaseName",
|
|
3122
|
+
"parameters": [
|
|
3123
|
+
{
|
|
3124
|
+
"name": "scope",
|
|
3125
|
+
"type": {
|
|
3126
|
+
"fqn": "constructs.Construct"
|
|
3127
|
+
}
|
|
3128
|
+
},
|
|
3129
|
+
{
|
|
3130
|
+
"name": "id",
|
|
3131
|
+
"type": {
|
|
3132
|
+
"primitive": "string"
|
|
3133
|
+
}
|
|
3134
|
+
},
|
|
3135
|
+
{
|
|
3136
|
+
"name": "databaseName",
|
|
3137
|
+
"type": {
|
|
3138
|
+
"primitive": "string"
|
|
3139
|
+
}
|
|
3140
|
+
}
|
|
3141
|
+
],
|
|
3142
|
+
"returns": {
|
|
3143
|
+
"type": {
|
|
3144
|
+
"fqn": "cdk-rds-sql.IDatabase"
|
|
3145
|
+
}
|
|
3146
|
+
},
|
|
3147
|
+
"static": true
|
|
3148
|
+
}
|
|
3149
|
+
],
|
|
3107
3150
|
"name": "Database",
|
|
3108
3151
|
"properties": [
|
|
3109
3152
|
{
|
|
@@ -3113,9 +3156,10 @@
|
|
|
3113
3156
|
"immutable": true,
|
|
3114
3157
|
"locationInModule": {
|
|
3115
3158
|
"filename": "src/database.ts",
|
|
3116
|
-
"line":
|
|
3159
|
+
"line": 49
|
|
3117
3160
|
},
|
|
3118
3161
|
"name": "databaseName",
|
|
3162
|
+
"overrides": "cdk-rds-sql.IDatabase",
|
|
3119
3163
|
"type": {
|
|
3120
3164
|
"primitive": "string"
|
|
3121
3165
|
}
|
|
@@ -3133,7 +3177,7 @@
|
|
|
3133
3177
|
"kind": "interface",
|
|
3134
3178
|
"locationInModule": {
|
|
3135
3179
|
"filename": "src/database.ts",
|
|
3136
|
-
"line":
|
|
3180
|
+
"line": 19
|
|
3137
3181
|
},
|
|
3138
3182
|
"name": "DatabaseProps",
|
|
3139
3183
|
"properties": [
|
|
@@ -3146,7 +3190,7 @@
|
|
|
3146
3190
|
"immutable": true,
|
|
3147
3191
|
"locationInModule": {
|
|
3148
3192
|
"filename": "src/database.ts",
|
|
3149
|
-
"line":
|
|
3193
|
+
"line": 11
|
|
3150
3194
|
},
|
|
3151
3195
|
"name": "databaseName",
|
|
3152
3196
|
"type": {
|
|
@@ -3162,7 +3206,7 @@
|
|
|
3162
3206
|
"immutable": true,
|
|
3163
3207
|
"locationInModule": {
|
|
3164
3208
|
"filename": "src/database.ts",
|
|
3165
|
-
"line":
|
|
3209
|
+
"line": 23
|
|
3166
3210
|
},
|
|
3167
3211
|
"name": "provider",
|
|
3168
3212
|
"type": {
|
|
@@ -3178,7 +3222,7 @@
|
|
|
3178
3222
|
"immutable": true,
|
|
3179
3223
|
"locationInModule": {
|
|
3180
3224
|
"filename": "src/database.ts",
|
|
3181
|
-
"line":
|
|
3225
|
+
"line": 16
|
|
3182
3226
|
},
|
|
3183
3227
|
"name": "owner",
|
|
3184
3228
|
"optional": true,
|
|
@@ -3189,6 +3233,37 @@
|
|
|
3189
3233
|
],
|
|
3190
3234
|
"symbolId": "src/database:DatabaseProps"
|
|
3191
3235
|
},
|
|
3236
|
+
"cdk-rds-sql.IDatabase": {
|
|
3237
|
+
"assembly": "cdk-rds-sql",
|
|
3238
|
+
"docs": {
|
|
3239
|
+
"stability": "stable"
|
|
3240
|
+
},
|
|
3241
|
+
"fqn": "cdk-rds-sql.IDatabase",
|
|
3242
|
+
"kind": "interface",
|
|
3243
|
+
"locationInModule": {
|
|
3244
|
+
"filename": "src/database.ts",
|
|
3245
|
+
"line": 26
|
|
3246
|
+
},
|
|
3247
|
+
"name": "IDatabase",
|
|
3248
|
+
"properties": [
|
|
3249
|
+
{
|
|
3250
|
+
"abstract": true,
|
|
3251
|
+
"docs": {
|
|
3252
|
+
"stability": "stable"
|
|
3253
|
+
},
|
|
3254
|
+
"immutable": true,
|
|
3255
|
+
"locationInModule": {
|
|
3256
|
+
"filename": "src/database.ts",
|
|
3257
|
+
"line": 27
|
|
3258
|
+
},
|
|
3259
|
+
"name": "databaseName",
|
|
3260
|
+
"type": {
|
|
3261
|
+
"primitive": "string"
|
|
3262
|
+
}
|
|
3263
|
+
}
|
|
3264
|
+
],
|
|
3265
|
+
"symbolId": "src/database:IDatabase"
|
|
3266
|
+
},
|
|
3192
3267
|
"cdk-rds-sql.Provider": {
|
|
3193
3268
|
"assembly": "cdk-rds-sql",
|
|
3194
3269
|
"base": "constructs.Construct",
|
|
@@ -3430,7 +3505,7 @@
|
|
|
3430
3505
|
},
|
|
3431
3506
|
"locationInModule": {
|
|
3432
3507
|
"filename": "src/role.ts",
|
|
3433
|
-
"line":
|
|
3508
|
+
"line": 52
|
|
3434
3509
|
},
|
|
3435
3510
|
"parameters": [
|
|
3436
3511
|
{
|
|
@@ -3456,7 +3531,7 @@
|
|
|
3456
3531
|
"kind": "class",
|
|
3457
3532
|
"locationInModule": {
|
|
3458
3533
|
"filename": "src/role.ts",
|
|
3459
|
-
"line":
|
|
3534
|
+
"line": 41
|
|
3460
3535
|
},
|
|
3461
3536
|
"name": "Role",
|
|
3462
3537
|
"properties": [
|
|
@@ -3468,7 +3543,7 @@
|
|
|
3468
3543
|
"immutable": true,
|
|
3469
3544
|
"locationInModule": {
|
|
3470
3545
|
"filename": "src/role.ts",
|
|
3471
|
-
"line":
|
|
3546
|
+
"line": 45
|
|
3472
3547
|
},
|
|
3473
3548
|
"name": "roleName",
|
|
3474
3549
|
"type": {
|
|
@@ -3483,7 +3558,7 @@
|
|
|
3483
3558
|
"immutable": true,
|
|
3484
3559
|
"locationInModule": {
|
|
3485
3560
|
"filename": "src/role.ts",
|
|
3486
|
-
"line":
|
|
3561
|
+
"line": 50
|
|
3487
3562
|
},
|
|
3488
3563
|
"name": "secret",
|
|
3489
3564
|
"type": {
|
|
@@ -3503,7 +3578,7 @@
|
|
|
3503
3578
|
"kind": "interface",
|
|
3504
3579
|
"locationInModule": {
|
|
3505
3580
|
"filename": "src/role.ts",
|
|
3506
|
-
"line":
|
|
3581
|
+
"line": 10
|
|
3507
3582
|
},
|
|
3508
3583
|
"name": "RoleProps",
|
|
3509
3584
|
"properties": [
|
|
@@ -3516,7 +3591,7 @@
|
|
|
3516
3591
|
"immutable": true,
|
|
3517
3592
|
"locationInModule": {
|
|
3518
3593
|
"filename": "src/role.ts",
|
|
3519
|
-
"line":
|
|
3594
|
+
"line": 31
|
|
3520
3595
|
},
|
|
3521
3596
|
"name": "cluster",
|
|
3522
3597
|
"type": {
|
|
@@ -3527,48 +3602,50 @@
|
|
|
3527
3602
|
"abstract": true,
|
|
3528
3603
|
"docs": {
|
|
3529
3604
|
"stability": "stable",
|
|
3530
|
-
"summary": "
|
|
3605
|
+
"summary": "Provider."
|
|
3531
3606
|
},
|
|
3532
3607
|
"immutable": true,
|
|
3533
3608
|
"locationInModule": {
|
|
3534
3609
|
"filename": "src/role.ts",
|
|
3535
|
-
"line":
|
|
3610
|
+
"line": 14
|
|
3536
3611
|
},
|
|
3537
|
-
"name": "
|
|
3612
|
+
"name": "provider",
|
|
3538
3613
|
"type": {
|
|
3539
|
-
"
|
|
3614
|
+
"fqn": "cdk-rds-sql.Provider"
|
|
3540
3615
|
}
|
|
3541
3616
|
},
|
|
3542
3617
|
{
|
|
3543
3618
|
"abstract": true,
|
|
3544
3619
|
"docs": {
|
|
3545
3620
|
"stability": "stable",
|
|
3546
|
-
"summary": "
|
|
3621
|
+
"summary": "SQL."
|
|
3547
3622
|
},
|
|
3548
3623
|
"immutable": true,
|
|
3549
3624
|
"locationInModule": {
|
|
3550
3625
|
"filename": "src/role.ts",
|
|
3551
|
-
"line":
|
|
3626
|
+
"line": 19
|
|
3552
3627
|
},
|
|
3553
|
-
"name": "
|
|
3628
|
+
"name": "roleName",
|
|
3554
3629
|
"type": {
|
|
3555
|
-
"
|
|
3630
|
+
"primitive": "string"
|
|
3556
3631
|
}
|
|
3557
3632
|
},
|
|
3558
3633
|
{
|
|
3559
3634
|
"abstract": true,
|
|
3560
3635
|
"docs": {
|
|
3636
|
+
"default": "no connection to any database is granted",
|
|
3561
3637
|
"stability": "stable",
|
|
3562
|
-
"summary": "
|
|
3638
|
+
"summary": "Ootional database name this user is expected to use."
|
|
3563
3639
|
},
|
|
3564
3640
|
"immutable": true,
|
|
3565
3641
|
"locationInModule": {
|
|
3566
3642
|
"filename": "src/role.ts",
|
|
3567
|
-
"line":
|
|
3643
|
+
"line": 26
|
|
3568
3644
|
},
|
|
3569
|
-
"name": "
|
|
3645
|
+
"name": "database",
|
|
3646
|
+
"optional": true,
|
|
3570
3647
|
"type": {
|
|
3571
|
-
"
|
|
3648
|
+
"fqn": "cdk-rds-sql.IDatabase"
|
|
3572
3649
|
}
|
|
3573
3650
|
},
|
|
3574
3651
|
{
|
|
@@ -3581,7 +3658,7 @@
|
|
|
3581
3658
|
"immutable": true,
|
|
3582
3659
|
"locationInModule": {
|
|
3583
3660
|
"filename": "src/role.ts",
|
|
3584
|
-
"line":
|
|
3661
|
+
"line": 38
|
|
3585
3662
|
},
|
|
3586
3663
|
"name": "encryptionKey",
|
|
3587
3664
|
"optional": true,
|
|
@@ -3605,7 +3682,7 @@
|
|
|
3605
3682
|
},
|
|
3606
3683
|
"locationInModule": {
|
|
3607
3684
|
"filename": "src/schema.ts",
|
|
3608
|
-
"line":
|
|
3685
|
+
"line": 29
|
|
3609
3686
|
},
|
|
3610
3687
|
"parameters": [
|
|
3611
3688
|
{
|
|
@@ -3631,7 +3708,7 @@
|
|
|
3631
3708
|
"kind": "class",
|
|
3632
3709
|
"locationInModule": {
|
|
3633
3710
|
"filename": "src/schema.ts",
|
|
3634
|
-
"line":
|
|
3711
|
+
"line": 26
|
|
3635
3712
|
},
|
|
3636
3713
|
"name": "Schema",
|
|
3637
3714
|
"properties": [
|
|
@@ -3642,7 +3719,7 @@
|
|
|
3642
3719
|
"immutable": true,
|
|
3643
3720
|
"locationInModule": {
|
|
3644
3721
|
"filename": "src/schema.ts",
|
|
3645
|
-
"line":
|
|
3722
|
+
"line": 27
|
|
3646
3723
|
},
|
|
3647
3724
|
"name": "schemaName",
|
|
3648
3725
|
"type": {
|
|
@@ -3662,7 +3739,7 @@
|
|
|
3662
3739
|
"kind": "interface",
|
|
3663
3740
|
"locationInModule": {
|
|
3664
3741
|
"filename": "src/schema.ts",
|
|
3665
|
-
"line":
|
|
3742
|
+
"line": 7
|
|
3666
3743
|
},
|
|
3667
3744
|
"name": "SchemaProps",
|
|
3668
3745
|
"properties": [
|
|
@@ -3675,7 +3752,7 @@
|
|
|
3675
3752
|
"immutable": true,
|
|
3676
3753
|
"locationInModule": {
|
|
3677
3754
|
"filename": "src/schema.ts",
|
|
3678
|
-
"line":
|
|
3755
|
+
"line": 11
|
|
3679
3756
|
},
|
|
3680
3757
|
"name": "provider",
|
|
3681
3758
|
"type": {
|
|
@@ -3691,7 +3768,7 @@
|
|
|
3691
3768
|
"immutable": true,
|
|
3692
3769
|
"locationInModule": {
|
|
3693
3770
|
"filename": "src/schema.ts",
|
|
3694
|
-
"line":
|
|
3771
|
+
"line": 23
|
|
3695
3772
|
},
|
|
3696
3773
|
"name": "schemaName",
|
|
3697
3774
|
"type": {
|
|
@@ -3708,12 +3785,12 @@
|
|
|
3708
3785
|
"immutable": true,
|
|
3709
3786
|
"locationInModule": {
|
|
3710
3787
|
"filename": "src/schema.ts",
|
|
3711
|
-
"line":
|
|
3788
|
+
"line": 18
|
|
3712
3789
|
},
|
|
3713
|
-
"name": "
|
|
3790
|
+
"name": "database",
|
|
3714
3791
|
"optional": true,
|
|
3715
3792
|
"type": {
|
|
3716
|
-
"
|
|
3793
|
+
"fqn": "cdk-rds-sql.IDatabase"
|
|
3717
3794
|
}
|
|
3718
3795
|
}
|
|
3719
3796
|
],
|
|
@@ -3732,7 +3809,7 @@
|
|
|
3732
3809
|
},
|
|
3733
3810
|
"locationInModule": {
|
|
3734
3811
|
"filename": "src/sql.ts",
|
|
3735
|
-
"line":
|
|
3812
|
+
"line": 27
|
|
3736
3813
|
},
|
|
3737
3814
|
"parameters": [
|
|
3738
3815
|
{
|
|
@@ -3758,7 +3835,7 @@
|
|
|
3758
3835
|
"kind": "class",
|
|
3759
3836
|
"locationInModule": {
|
|
3760
3837
|
"filename": "src/sql.ts",
|
|
3761
|
-
"line":
|
|
3838
|
+
"line": 26
|
|
3762
3839
|
},
|
|
3763
3840
|
"name": "Sql",
|
|
3764
3841
|
"symbolId": "src/sql:Sql"
|
|
@@ -3773,7 +3850,7 @@
|
|
|
3773
3850
|
"kind": "interface",
|
|
3774
3851
|
"locationInModule": {
|
|
3775
3852
|
"filename": "src/sql.ts",
|
|
3776
|
-
"line":
|
|
3853
|
+
"line": 7
|
|
3777
3854
|
},
|
|
3778
3855
|
"name": "SqlProps",
|
|
3779
3856
|
"properties": [
|
|
@@ -3786,7 +3863,7 @@
|
|
|
3786
3863
|
"immutable": true,
|
|
3787
3864
|
"locationInModule": {
|
|
3788
3865
|
"filename": "src/sql.ts",
|
|
3789
|
-
"line":
|
|
3866
|
+
"line": 11
|
|
3790
3867
|
},
|
|
3791
3868
|
"name": "provider",
|
|
3792
3869
|
"type": {
|
|
@@ -3803,12 +3880,12 @@
|
|
|
3803
3880
|
"immutable": true,
|
|
3804
3881
|
"locationInModule": {
|
|
3805
3882
|
"filename": "src/sql.ts",
|
|
3806
|
-
"line":
|
|
3883
|
+
"line": 18
|
|
3807
3884
|
},
|
|
3808
|
-
"name": "
|
|
3885
|
+
"name": "database",
|
|
3809
3886
|
"optional": true,
|
|
3810
3887
|
"type": {
|
|
3811
|
-
"
|
|
3888
|
+
"fqn": "cdk-rds-sql.IDatabase"
|
|
3812
3889
|
}
|
|
3813
3890
|
},
|
|
3814
3891
|
{
|
|
@@ -3820,7 +3897,7 @@
|
|
|
3820
3897
|
"immutable": true,
|
|
3821
3898
|
"locationInModule": {
|
|
3822
3899
|
"filename": "src/sql.ts",
|
|
3823
|
-
"line":
|
|
3900
|
+
"line": 23
|
|
3824
3901
|
},
|
|
3825
3902
|
"name": "statement",
|
|
3826
3903
|
"optional": true,
|
|
@@ -3832,6 +3909,6 @@
|
|
|
3832
3909
|
"symbolId": "src/sql:SqlProps"
|
|
3833
3910
|
}
|
|
3834
3911
|
},
|
|
3835
|
-
"version": "1.0
|
|
3836
|
-
"fingerprint": "
|
|
3912
|
+
"version": "1.1.0",
|
|
3913
|
+
"fingerprint": "+gWr9endrBrN9L5jDUDBG/e4/6Hyd3hyRgmYZOFnj/Y="
|
|
3837
3914
|
}
|
package/.pre-commit-config.yaml
CHANGED
|
@@ -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:
|
|
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/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
|
-
|
|
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
|
|
214
|
+
npx cdk deploy --context vpc-id=vpc-0123456789
|
|
215
215
|
|
|
216
216
|
# To do
|
|
217
217
|
|
|
218
|
-
-
|
|
219
|
-
|
|
220
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
Database[_a] = { fqn: "cdk-rds-sql.Database", version: "1.1.0" };
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNEM7QUFDNUMsMkNBQXNDO0FBQ3RDLGlDQUF1QztBQTJCdkMsTUFBTSxnQkFBaUIsU0FBUSxzQkFBUztJQUd0QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFBO0lBQ3hDLENBQUM7Q0FDRjtBQUVELE1BQWEsUUFBUyxTQUFRLDRCQUFjO0lBWTFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ3pDLFVBQVUsRUFBRTtnQkFDVixRQUFRLEVBQUUscUJBQWMsQ0FBQyxRQUFRO2dCQUNqQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFlBQVk7Z0JBQzlCLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTO2dCQUMxQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRO2FBQzdCO1NBQ0YsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQTtRQUN0QyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDckM7SUFDSCxDQUFDO0lBMUJEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFlBQW9CO1FBQ3hFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3JDLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUMsQ0FBQTtJQUNKLENBQUM7O0FBUkgsNEJBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0IHsgUmRzU3FsUmVzb3VyY2UgfSBmcm9tIFwiLi9lbnVtXCJcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcIi4vcHJvdmlkZXJcIlxuaW1wb3J0IHsgUm9sZSB9IGZyb20gXCIuL3JvbGVcIlxuXG5pbnRlcmZhY2UgRGF0YWJhc2VBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgZGF0YWJhc2UgdG8gY3JlYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmdcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGF0YWJhc2Ugb3duZXIuXG4gICAqL1xuICByZWFkb25seSBvd25lcj86IFJvbGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZVByb3BzIGV4dGVuZHMgRGF0YWJhc2VBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFByb3ZpZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXI6IFByb3ZpZGVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFiYXNlIHtcbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmdcbn1cblxuY2xhc3MgSW1wb3J0ZWREYXRhYmFzZSBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElEYXRhYmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEYXRhYmFzZUF0dHJpYnV0ZXMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG4gICAgdGhpcy5kYXRhYmFzZU5hbWUgPSBwcm9wcy5kYXRhYmFzZU5hbWVcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0YWJhc2UgZXh0ZW5kcyBDdXN0b21SZXNvdXJjZSBpbXBsZW1lbnRzIElEYXRhYmFzZSB7XG4gIC8qKlxuICAgKiBSZXR1cm4gYSBEYXRhYmFzZSBiYXNlZCB1cG9uIG5hbWUgb25seS4gVXNlIGZvciBpbXBvcnRpbmcgZXhpc3RpbmcgZGF0YWJhc2VzLlxuICAgKi9cbiAgc3RhdGljIGZyb21EYXRhYmFzZU5hbWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZGF0YWJhc2VOYW1lOiBzdHJpbmcpOiBJRGF0YWJhc2Uge1xuICAgIHJldHVybiBuZXcgSW1wb3J0ZWREYXRhYmFzZShzY29wZSwgaWQsIHtcbiAgICAgIGRhdGFiYXNlTmFtZTogZGF0YWJhc2VOYW1lLFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgc2VydmljZVRva2VuOiBwcm9wcy5wcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIFJlc291cmNlOiBSZHNTcWxSZXNvdXJjZS5EQVRBQkFTRSxcbiAgICAgICAgUmVzb3VyY2VJZDogcHJvcHMuZGF0YWJhc2VOYW1lLFxuICAgICAgICBTZWNyZXRBcm46IHByb3BzLnByb3ZpZGVyLnNlY3JldC5zZWNyZXRBcm4sXG4gICAgICAgIE93bmVyOiBwcm9wcy5vd25lcj8ucm9sZU5hbWUsXG4gICAgICB9LFxuICAgIH0pXG4gICAgdGhpcy5ub2RlLmFkZERlcGVuZGVuY3kocHJvcHMucHJvdmlkZXIpXG4gICAgdGhpcy5kYXRhYmFzZU5hbWUgPSBwcm9wcy5kYXRhYmFzZU5hbWVcbiAgICBpZiAocHJvcHMub3duZXIpIHtcbiAgICAgIHRoaXMubm9kZS5hZGREZXBlbmRlbmN5KHByb3BzLm93bmVyKVxuICAgIH1cbiAgfVxufVxuIl19
|