cdk-rds-sql 8.2.0__tar.gz → 9.0.1__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cdk-rds-sql
3
- Version: 8.2.0
3
+ Version: 9.0.1
4
4
  Summary: A CDK construct that allows creating roles or users and databases on Aurora Serverless PostgreSQL or MySQL/MariaDB clusters, as well as AWS DSQL clusters.
5
5
  Home-page: https://github.com/berenddeboer/cdk-rds-sql.git
6
6
  Author: Berend de Boer<berend@pobox.com>
@@ -10,20 +10,21 @@ Classifier: Intended Audience :: Developers
10
10
  Classifier: Operating System :: OS Independent
11
11
  Classifier: Programming Language :: JavaScript
12
12
  Classifier: Programming Language :: Python :: 3 :: Only
13
- Classifier: Programming Language :: Python :: 3.9
14
13
  Classifier: Programming Language :: Python :: 3.10
15
14
  Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: 3.14
16
18
  Classifier: Typing :: Typed
17
19
  Classifier: Development Status :: 5 - Production/Stable
18
20
  Classifier: License :: OSI Approved
19
- Requires-Python: ~=3.9
21
+ Requires-Python: >=3.10
20
22
  Description-Content-Type: text/markdown
21
23
  License-File: LICENSE
22
- Requires-Dist: aws-cdk-lib<3.0.0,>=2.214.0
23
- Requires-Dist: constructs<11.0.0,>=10.4.2
24
- Requires-Dist: jsii<2.0.0,>=1.129.0
24
+ Requires-Dist: aws-cdk-lib<3.0.0,>=2.273.0
25
+ Requires-Dist: constructs<11.0.0,>=10.5.0
26
+ Requires-Dist: jsii<2.0.0,>=1.141.0
25
27
  Requires-Dist: publication>=0.0.3
26
- Requires-Dist: typeguard==2.13.3
27
28
 
28
29
  # About
29
30
 
@@ -43,6 +44,8 @@ environments, and works in isolated subnets.
43
44
  # Requirements
44
45
 
45
46
  * CDK v2.
47
+ * Node.js 22.14 or newer for consumers, as declared in `package.json`'s `engines`.
48
+ This is the library's supported minimum, independent of its development tools.
46
49
 
47
50
  # Installation
48
51
 
@@ -571,17 +574,35 @@ const provider = new Provider(this, "Provider", {
571
574
 
572
575
  # Working on this code
573
576
 
574
- This code is managed by
575
- [projen](https://github.com/projen/projen/blob/main/README.md). In
576
- addition [pre-commit](https://pre-commit.com/) is used.
577
+ This code is managed by [projen](https://github.com/projen/projen).
578
+ [mise](https://mise.jdx.dev/) installs Node 24, pnpm 12, and
579
+ [hk](https://hk.jdx.dev/) for Git hooks. Biome handles formatting and linting.
577
580
 
578
- So after git clone and `pnpm install` you would do:
581
+ Development and CI use Node 24. Testcontainers is a development-only dependency;
582
+ its dependency tree requires newer APIs than the consumer minimum of Node 22.14.
579
583
 
584
+ After cloning:
585
+
586
+ ```sh
587
+ mise trust
588
+ mise install
589
+ mise run setup
580
590
  ```
581
- pre-commit install --install-hooks --hook-type commit-msg --hook-type pre-commit
582
- ```
583
591
 
584
- to install the pre-commit hooks.
592
+ When migrating an existing clone, replace the old pre-commit hooks with
593
+ `mise exec -- hk install --mise --force`.
594
+
595
+ Run all checks with `mise run check`, or format and lint with
596
+ `pnpm exec projen biome`. Tests require Docker. TypeScript stays on the
597
+ 6.0 release line supported by jsii 6.0.
598
+
599
+ The pre-commit hook runs the full build, tests, and packaging, so Docker must
600
+ be running. When `VPC_ID` is set, changes under `src/` also run CDK synthesis
601
+ against that VPC; this requires AWS credentials. Unset `VPC_ID` to skip synthesis.
602
+
603
+ The development tsconfig uses `node16` module resolution, including package
604
+ exports. Jest tasks enable Node's VM module support for native dynamic imports
605
+ such as the MySQL driver import.
585
606
 
586
607
  ## Testing
587
608
 
@@ -591,6 +612,9 @@ Test code via projen with:
591
612
  pnpm exec projen test
592
613
  ```
593
614
 
615
+ Tests do not update snapshots automatically. To intentionally refresh them, run
616
+ `pnpm exec projen test:update` and review the snapshot diff.
617
+
594
618
  You can run the PostgreSQL sample stack with:
595
619
 
596
620
  ```
@@ -16,6 +16,8 @@ environments, and works in isolated subnets.
16
16
  # Requirements
17
17
 
18
18
  * CDK v2.
19
+ * Node.js 22.14 or newer for consumers, as declared in `package.json`'s `engines`.
20
+ This is the library's supported minimum, independent of its development tools.
19
21
 
20
22
  # Installation
21
23
 
@@ -544,17 +546,35 @@ const provider = new Provider(this, "Provider", {
544
546
 
545
547
  # Working on this code
546
548
 
547
- This code is managed by
548
- [projen](https://github.com/projen/projen/blob/main/README.md). In
549
- addition [pre-commit](https://pre-commit.com/) is used.
549
+ This code is managed by [projen](https://github.com/projen/projen).
550
+ [mise](https://mise.jdx.dev/) installs Node 24, pnpm 12, and
551
+ [hk](https://hk.jdx.dev/) for Git hooks. Biome handles formatting and linting.
550
552
 
551
- So after git clone and `pnpm install` you would do:
553
+ Development and CI use Node 24. Testcontainers is a development-only dependency;
554
+ its dependency tree requires newer APIs than the consumer minimum of Node 22.14.
552
555
 
556
+ After cloning:
557
+
558
+ ```sh
559
+ mise trust
560
+ mise install
561
+ mise run setup
553
562
  ```
554
- pre-commit install --install-hooks --hook-type commit-msg --hook-type pre-commit
555
- ```
556
563
 
557
- to install the pre-commit hooks.
564
+ When migrating an existing clone, replace the old pre-commit hooks with
565
+ `mise exec -- hk install --mise --force`.
566
+
567
+ Run all checks with `mise run check`, or format and lint with
568
+ `pnpm exec projen biome`. Tests require Docker. TypeScript stays on the
569
+ 6.0 release line supported by jsii 6.0.
570
+
571
+ The pre-commit hook runs the full build, tests, and packaging, so Docker must
572
+ be running. When `VPC_ID` is set, changes under `src/` also run CDK synthesis
573
+ against that VPC; this requires AWS credentials. Unset `VPC_ID` to skip synthesis.
574
+
575
+ The development tsconfig uses `node16` module resolution, including package
576
+ exports. Jest tasks enable Node's VM module support for native dynamic imports
577
+ such as the MySQL driver import.
558
578
 
559
579
  ## Testing
560
580
 
@@ -564,6 +584,9 @@ Test code via projen with:
564
584
  pnpm exec projen test
565
585
  ```
566
586
 
587
+ Tests do not update snapshots automatically. To intentionally refresh them, run
588
+ `pnpm exec projen test:update` and review the snapshot diff.
589
+
567
590
  You can run the PostgreSQL sample stack with:
568
591
 
569
592
  ```
@@ -1,9 +1,9 @@
1
1
  [build-system]
2
- requires = ["setuptools~=75.3.2", "build~=1.3.0"]
2
+ requires = ["setuptools~=75.3.2", "build~=1.6.1"]
3
3
  build-backend = "setuptools.build_meta"
4
4
 
5
5
  [tool.pyright]
6
6
  defineConstant = { DEBUG = true }
7
- pythonVersion = "3.9"
7
+ pythonVersion = "3.10"
8
8
  pythonPlatform = "All"
9
9
  reportSelfClsParameterName = false
@@ -5,7 +5,7 @@ kwargs = json.loads(
5
5
  """
6
6
  {
7
7
  "name": "cdk-rds-sql",
8
- "version": "8.2.0",
8
+ "version": "9.0.1",
9
9
  "description": "A CDK construct that allows creating roles or users and databases on Aurora Serverless PostgreSQL or MySQL/MariaDB clusters, as well as AWS DSQL clusters.",
10
10
  "license": "Apache-2.0",
11
11
  "url": "https://github.com/berenddeboer/cdk-rds-sql.git",
@@ -26,28 +26,29 @@ kwargs = json.loads(
26
26
  ],
27
27
  "package_data": {
28
28
  "cdk_rds_sql._jsii": [
29
- "cdk-rds-sql@8.2.0.jsii.tgz"
29
+ "cdk-rds-sql@9.0.1.jsii.tgz"
30
30
  ],
31
31
  "cdk_rds_sql": [
32
32
  "py.typed"
33
33
  ]
34
34
  },
35
- "python_requires": "~=3.9",
35
+ "python_requires": ">=3.10",
36
36
  "install_requires": [
37
- "aws-cdk-lib>=2.214.0, <3.0.0",
38
- "constructs>=10.4.2, <11.0.0",
39
- "jsii>=1.129.0, <2.0.0",
40
- "publication>=0.0.3",
41
- "typeguard==2.13.3"
37
+ "aws-cdk-lib>=2.273.0, <3.0.0",
38
+ "constructs>=10.5.0, <11.0.0",
39
+ "jsii>=1.141.0, <2.0.0",
40
+ "publication>=0.0.3"
42
41
  ],
43
42
  "classifiers": [
44
43
  "Intended Audience :: Developers",
45
44
  "Operating System :: OS Independent",
46
45
  "Programming Language :: JavaScript",
47
46
  "Programming Language :: Python :: 3 :: Only",
48
- "Programming Language :: Python :: 3.9",
49
47
  "Programming Language :: Python :: 3.10",
50
48
  "Programming Language :: Python :: 3.11",
49
+ "Programming Language :: Python :: 3.12",
50
+ "Programming Language :: Python :: 3.13",
51
+ "Programming Language :: Python :: 3.14",
51
52
  "Typing :: Typed",
52
53
  "Development Status :: 5 - Production/Stable",
53
54
  "License :: OSI Approved"
@@ -17,6 +17,8 @@ environments, and works in isolated subnets.
17
17
  # Requirements
18
18
 
19
19
  * CDK v2.
20
+ * Node.js 22.14 or newer for consumers, as declared in `package.json`'s `engines`.
21
+ This is the library's supported minimum, independent of its development tools.
20
22
 
21
23
  # Installation
22
24
 
@@ -545,17 +547,35 @@ const provider = new Provider(this, "Provider", {
545
547
 
546
548
  # Working on this code
547
549
 
548
- This code is managed by
549
- [projen](https://github.com/projen/projen/blob/main/README.md). In
550
- addition [pre-commit](https://pre-commit.com/) is used.
550
+ This code is managed by [projen](https://github.com/projen/projen).
551
+ [mise](https://mise.jdx.dev/) installs Node 24, pnpm 12, and
552
+ [hk](https://hk.jdx.dev/) for Git hooks. Biome handles formatting and linting.
551
553
 
552
- So after git clone and `pnpm install` you would do:
554
+ Development and CI use Node 24. Testcontainers is a development-only dependency;
555
+ its dependency tree requires newer APIs than the consumer minimum of Node 22.14.
553
556
 
557
+ After cloning:
558
+
559
+ ```sh
560
+ mise trust
561
+ mise install
562
+ mise run setup
554
563
  ```
555
- pre-commit install --install-hooks --hook-type commit-msg --hook-type pre-commit
556
- ```
557
564
 
558
- to install the pre-commit hooks.
565
+ When migrating an existing clone, replace the old pre-commit hooks with
566
+ `mise exec -- hk install --mise --force`.
567
+
568
+ Run all checks with `mise run check`, or format and lint with
569
+ `pnpm exec projen biome`. Tests require Docker. TypeScript stays on the
570
+ 6.0 release line supported by jsii 6.0.
571
+
572
+ The pre-commit hook runs the full build, tests, and packaging, so Docker must
573
+ be running. When `VPC_ID` is set, changes under `src/` also run CDK synthesis
574
+ against that VPC; this requires AWS credentials. Unset `VPC_ID` to skip synthesis.
575
+
576
+ The development tsconfig uses `node16` module resolution, including package
577
+ exports. Jest tasks enable Node's VM module support for native dynamic imports
578
+ such as the MySQL driver import.
559
579
 
560
580
  ## Testing
561
581
 
@@ -565,6 +585,9 @@ Test code via projen with:
565
585
  pnpm exec projen test
566
586
  ```
567
587
 
588
+ Tests do not update snapshots automatically. To intentionally refresh them, run
589
+ `pnpm exec projen test:update` and review the snapshot diff.
590
+
568
591
  You can run the PostgreSQL sample stack with:
569
592
 
570
593
  ```
@@ -587,6 +610,8 @@ pnpm exec projen integ:deploy:dsql
587
610
 
588
611
  * Update role: will not revoke connect to previous database if database name has changed.
589
612
  '''
613
+ from __future__ import annotations
614
+
590
615
  from pkgutil import extend_path
591
616
  __path__ = extend_path(__path__, __name__)
592
617
 
@@ -600,33 +625,41 @@ import jsii
600
625
  import publication
601
626
  import typing_extensions
602
627
 
603
- import typeguard
604
- from importlib.metadata import version as _metadata_package_version
605
- TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
606
-
607
- def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
608
- if TYPEGUARD_MAJOR_VERSION <= 2:
609
- return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
610
- else:
611
- if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
612
- pass
613
- else:
614
- if TYPEGUARD_MAJOR_VERSION == 3:
615
- typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
616
- typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
617
- else:
618
- typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
628
+ from jsii._type_checking import cached_type_hints, check_type
629
+
619
630
 
620
631
  from ._jsii import *
621
632
 
622
- import aws_cdk as _aws_cdk_ceddda9d
623
- import aws_cdk.aws_dsql as _aws_cdk_aws_dsql_ceddda9d
624
- import aws_cdk.aws_ec2 as _aws_cdk_aws_ec2_ceddda9d
625
- import aws_cdk.aws_kms as _aws_cdk_aws_kms_ceddda9d
626
- import aws_cdk.aws_lambda as _aws_cdk_aws_lambda_ceddda9d
627
- import aws_cdk.aws_rds as _aws_cdk_aws_rds_ceddda9d
628
- import aws_cdk.aws_secretsmanager as _aws_cdk_aws_secretsmanager_ceddda9d
629
- import constructs as _constructs_77d1e7e8
633
+ class _LazyImport:
634
+ def __init__(self, module_name: str) -> None:
635
+ self._module_name = module_name
636
+ self._module: typing.Any = None
637
+ def __getattr__(self, name: str) -> typing.Any:
638
+ if self._module is None:
639
+ import importlib
640
+ self._module = importlib.import_module(self._module_name)
641
+ return getattr(self._module, name)
642
+
643
+ if typing.TYPE_CHECKING:
644
+
645
+ import aws_cdk as _aws_cdk_ceddda9d
646
+ import aws_cdk.aws_dsql as _aws_cdk_aws_dsql_ceddda9d
647
+ import aws_cdk.aws_ec2 as _aws_cdk_aws_ec2_ceddda9d
648
+ import aws_cdk.aws_kms as _aws_cdk_aws_kms_ceddda9d
649
+ import aws_cdk.aws_lambda as _aws_cdk_aws_lambda_ceddda9d
650
+ import aws_cdk.aws_rds as _aws_cdk_aws_rds_ceddda9d
651
+ import aws_cdk.aws_secretsmanager as _aws_cdk_aws_secretsmanager_ceddda9d
652
+ import constructs as _constructs_77d1e7e8
653
+ else:
654
+
655
+ _aws_cdk_aws_dsql_ceddda9d = _LazyImport("aws_cdk.aws_dsql")
656
+ _aws_cdk_aws_ec2_ceddda9d = _LazyImport("aws_cdk.aws_ec2")
657
+ _aws_cdk_aws_kms_ceddda9d = _LazyImport("aws_cdk.aws_kms")
658
+ _aws_cdk_aws_lambda_ceddda9d = _LazyImport("aws_cdk.aws_lambda")
659
+ _aws_cdk_aws_rds_ceddda9d = _LazyImport("aws_cdk.aws_rds")
660
+ _aws_cdk_aws_secretsmanager_ceddda9d = _LazyImport("aws_cdk.aws_secretsmanager")
661
+ _aws_cdk_ceddda9d = _LazyImport("aws_cdk")
662
+ _constructs_77d1e7e8 = _LazyImport("constructs")
630
663
 
631
664
 
632
665
  @jsii.enum(jsii_type="cdk-rds-sql.DatabaseEngine")
@@ -661,7 +694,7 @@ class DatabaseProps:
661
694
  :param owner: Optional database owner.
662
695
  '''
663
696
  if __debug__:
664
- type_hints = typing.get_type_hints(_typecheckingstub__d02a87af93e26ceaf647662fc78818b2f43fe154b349df3c4f5752d22b61ea34)
697
+ type_hints = cached_type_hints(_typecheckingstub__d02a87af93e26ceaf647662fc78818b2f43fe154b349df3c4f5752d22b61ea34)
665
698
  check_type(argname="argument database_name", value=database_name, expected_type=type_hints["database_name"])
666
699
  check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
667
700
  check_type(argname="argument owner", value=owner, expected_type=type_hints["owner"])
@@ -810,7 +843,7 @@ class IamGrant(
810
843
  :param role_name: Database role name to grant IAM access to.
811
844
  '''
812
845
  if __debug__:
813
- type_hints = typing.get_type_hints(_typecheckingstub__ddc8001ac6195e8fb417d17f2106bdcd50800e6da2afb84794113f44cc6c18c9)
846
+ type_hints = cached_type_hints(_typecheckingstub__ddc8001ac6195e8fb417d17f2106bdcd50800e6da2afb84794113f44cc6c18c9)
814
847
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
815
848
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
816
849
  props = IamGrantProps(
@@ -843,7 +876,7 @@ class IamGrantProps:
843
876
  :param role_name: Database role name to grant IAM access to.
844
877
  '''
845
878
  if __debug__:
846
- type_hints = typing.get_type_hints(_typecheckingstub__4887252bb5c41c89521a26b729d32055341e5bee89b4f65947a38d7c0aaf5dec)
879
+ type_hints = cached_type_hints(_typecheckingstub__4887252bb5c41c89521a26b729d32055341e5bee89b4f65947a38d7c0aaf5dec)
847
880
  check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
848
881
  check_type(argname="argument resource_arn", value=resource_arn, expected_type=type_hints["resource_arn"])
849
882
  check_type(argname="argument role_name", value=role_name, expected_type=type_hints["role_name"])
@@ -919,7 +952,7 @@ class Provider(
919
952
  :param vpc_subnets: Where to place the network provider lambda within the VPC. Default: - the isolated subnet if not specified
920
953
  '''
921
954
  if __debug__:
922
- type_hints = typing.get_type_hints(_typecheckingstub__f569409e68b7292df1965d915629ef8c34532a3dcd05bea0032c564041e409e4)
955
+ type_hints = cached_type_hints(_typecheckingstub__f569409e68b7292df1965d915629ef8c34532a3dcd05bea0032c564041e409e4)
923
956
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
924
957
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
925
958
  props = RdsSqlProps(
@@ -957,7 +990,7 @@ class Provider(
957
990
  :param function_name:
958
991
  '''
959
992
  if __debug__:
960
- type_hints = typing.get_type_hints(_typecheckingstub__6447e54f3866ee95542c4c6e6f57beb9f77e9508347c20f14c7bb52a36c8133c)
993
+ type_hints = cached_type_hints(_typecheckingstub__6447e54f3866ee95542c4c6e6f57beb9f77e9508347c20f14c7bb52a36c8133c)
961
994
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
962
995
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
963
996
  attrs = ProviderAttributes(
@@ -997,7 +1030,7 @@ class Provider(
997
1030
  :param vpc_subnets: Where to place the network provider lambda within the VPC. Default: - the isolated subnet if not specified
998
1031
  '''
999
1032
  if __debug__:
1000
- type_hints = typing.get_type_hints(_typecheckingstub__16aa0dc03b1ffdc1c49190bb39d545df3907972a07f344528a5a891c23d0f28c)
1033
+ type_hints = cached_type_hints(_typecheckingstub__16aa0dc03b1ffdc1c49190bb39d545df3907972a07f344528a5a891c23d0f28c)
1001
1034
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1002
1035
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1003
1036
  props = RdsSqlProps(
@@ -1071,7 +1104,7 @@ class ProviderAttributes:
1071
1104
  :param function_name:
1072
1105
  '''
1073
1106
  if __debug__:
1074
- type_hints = typing.get_type_hints(_typecheckingstub__38638fb01c5b5c1e90a480e969bec755370ee72cad8844940b704cff73c8057c)
1107
+ type_hints = cached_type_hints(_typecheckingstub__38638fb01c5b5c1e90a480e969bec755370ee72cad8844940b704cff73c8057c)
1075
1108
  check_type(argname="argument engine", value=engine, expected_type=type_hints["engine"])
1076
1109
  check_type(argname="argument cluster", value=cluster, expected_type=type_hints["cluster"])
1077
1110
  check_type(argname="argument function_arn", value=function_arn, expected_type=type_hints["function_arn"])
@@ -1178,7 +1211,7 @@ class RdsSqlProps:
1178
1211
  if isinstance(vpc_subnets, dict):
1179
1212
  vpc_subnets = _aws_cdk_aws_ec2_ceddda9d.SubnetSelection(**vpc_subnets)
1180
1213
  if __debug__:
1181
- type_hints = typing.get_type_hints(_typecheckingstub__1562dfb28e0e71a0b95785ddbc26511738019b8ab5c6885e0ff1f2050e6d045b)
1214
+ type_hints = cached_type_hints(_typecheckingstub__1562dfb28e0e71a0b95785ddbc26511738019b8ab5c6885e0ff1f2050e6d045b)
1182
1215
  check_type(argname="argument cluster", value=cluster, expected_type=type_hints["cluster"])
1183
1216
  check_type(argname="argument function_props", value=function_props, expected_type=type_hints["function_props"])
1184
1217
  check_type(argname="argument logger", value=logger, expected_type=type_hints["logger"])
@@ -1357,7 +1390,7 @@ class Role(
1357
1390
  :param secret_name: A new secret is created for this user. Optionally add secret name to the secret.
1358
1391
  '''
1359
1392
  if __debug__:
1360
- type_hints = typing.get_type_hints(_typecheckingstub__062afab8717d46f6fc2a31188b28d9e663190b2080174cc7f1ddd691f699de7e)
1393
+ type_hints = cached_type_hints(_typecheckingstub__062afab8717d46f6fc2a31188b28d9e663190b2080174cc7f1ddd691f699de7e)
1361
1394
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1362
1395
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1363
1396
  props = RoleProps(
@@ -1437,7 +1470,7 @@ class RoleProps:
1437
1470
  :param secret_name: A new secret is created for this user. Optionally add secret name to the secret.
1438
1471
  '''
1439
1472
  if __debug__:
1440
- type_hints = typing.get_type_hints(_typecheckingstub__a7ed79cdb7903207b3240698f6bcb0582905979c1519e2b49d66fa6fbdac11ee)
1473
+ type_hints = cached_type_hints(_typecheckingstub__a7ed79cdb7903207b3240698f6bcb0582905979c1519e2b49d66fa6fbdac11ee)
1441
1474
  check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
1442
1475
  check_type(argname="argument role_name", value=role_name, expected_type=type_hints["role_name"])
1443
1476
  check_type(argname="argument database", value=database, expected_type=type_hints["database"])
@@ -1612,7 +1645,7 @@ class Schema(
1612
1645
  :param role: Optional role which will be granted usage and create permissions to this schema. This way the role can read its own tables, but cannot see or access tables created by others.
1613
1646
  '''
1614
1647
  if __debug__:
1615
- type_hints = typing.get_type_hints(_typecheckingstub__23264d20ca42f56453469fb6eae1679bf4f901ace3ccab77b186aa28167779bf)
1648
+ type_hints = cached_type_hints(_typecheckingstub__23264d20ca42f56453469fb6eae1679bf4f901ace3ccab77b186aa28167779bf)
1616
1649
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1617
1650
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1618
1651
  props = SchemaProps(
@@ -1653,7 +1686,7 @@ class SchemaProps:
1653
1686
  :param role: Optional role which will be granted usage and create permissions to this schema. This way the role can read its own tables, but cannot see or access tables created by others.
1654
1687
  '''
1655
1688
  if __debug__:
1656
- type_hints = typing.get_type_hints(_typecheckingstub__3e5c9257731fa92bb3b0a3fd8f4556888ed99294fcba1b14ade48e8d8d57c6b0)
1689
+ type_hints = cached_type_hints(_typecheckingstub__3e5c9257731fa92bb3b0a3fd8f4556888ed99294fcba1b14ade48e8d8d57c6b0)
1657
1690
  check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
1658
1691
  check_type(argname="argument schema_name", value=schema_name, expected_type=type_hints["schema_name"])
1659
1692
  check_type(argname="argument database", value=database, expected_type=type_hints["database"])
@@ -1736,7 +1769,7 @@ class Sql(
1736
1769
  :param statement: SQL.
1737
1770
  '''
1738
1771
  if __debug__:
1739
- type_hints = typing.get_type_hints(_typecheckingstub__a34aa094d1e87a65ca4be0fe7c3fad7c2a9f986cfd40a3f07de15d3d6b0d2139)
1772
+ type_hints = cached_type_hints(_typecheckingstub__a34aa094d1e87a65ca4be0fe7c3fad7c2a9f986cfd40a3f07de15d3d6b0d2139)
1740
1773
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1741
1774
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1742
1775
  props = SqlProps(
@@ -1775,7 +1808,7 @@ class SqlProps:
1775
1808
  :param statement: SQL.
1776
1809
  '''
1777
1810
  if __debug__:
1778
- type_hints = typing.get_type_hints(_typecheckingstub__fee81de7736c28ed1e24db0db96a0f7084eb4dad448f37b2efdc59960daf7f24)
1811
+ type_hints = cached_type_hints(_typecheckingstub__fee81de7736c28ed1e24db0db96a0f7084eb4dad448f37b2efdc59960daf7f24)
1779
1812
  check_type(argname="argument provider", value=provider, expected_type=type_hints["provider"])
1780
1813
  check_type(argname="argument database", value=database, expected_type=type_hints["database"])
1781
1814
  check_type(argname="argument rollback", value=rollback, expected_type=type_hints["rollback"])
@@ -1853,7 +1886,7 @@ class Database(
1853
1886
  :param owner: Optional database owner.
1854
1887
  '''
1855
1888
  if __debug__:
1856
- type_hints = typing.get_type_hints(_typecheckingstub__9b0a129482abaf744a12ee5aabac9c0545bc3cdf8edcfb3dca83d0c1051326ed)
1889
+ type_hints = cached_type_hints(_typecheckingstub__9b0a129482abaf744a12ee5aabac9c0545bc3cdf8edcfb3dca83d0c1051326ed)
1857
1890
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1858
1891
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1859
1892
  props = DatabaseProps(
@@ -1879,7 +1912,7 @@ class Database(
1879
1912
  :param database_name: -
1880
1913
  '''
1881
1914
  if __debug__:
1882
- type_hints = typing.get_type_hints(_typecheckingstub__771fb1f62814ed88a15c2f9d4d948498f7416f30cd8e9d630b3ea09667333681)
1915
+ type_hints = cached_type_hints(_typecheckingstub__771fb1f62814ed88a15c2f9d4d948498f7416f30cd8e9d630b3ea09667333681)
1883
1916
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1884
1917
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1885
1918
  check_type(argname="argument database_name", value=database_name, expected_type=type_hints["database_name"])
@@ -0,0 +1,28 @@
1
+ from pkgutil import extend_path
2
+ __path__ = extend_path(__path__, __name__)
3
+
4
+ import abc
5
+ import builtins
6
+ import datetime
7
+ import enum
8
+ import typing
9
+
10
+ import jsii
11
+ import publication
12
+ import typing_extensions
13
+
14
+ from jsii._type_checking import cached_type_hints, check_type
15
+
16
+
17
+ import aws_cdk._jsii
18
+ import constructs._jsii
19
+
20
+ __jsii_assembly__ = jsii.JSIIAssembly.load(
21
+ "cdk-rds-sql", "9.0.1", __name__[0:-6], "cdk-rds-sql@9.0.1.jsii.tgz"
22
+ )
23
+
24
+ __all__ = [
25
+ "__jsii_assembly__",
26
+ ]
27
+
28
+ publication.publish()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cdk-rds-sql
3
- Version: 8.2.0
3
+ Version: 9.0.1
4
4
  Summary: A CDK construct that allows creating roles or users and databases on Aurora Serverless PostgreSQL or MySQL/MariaDB clusters, as well as AWS DSQL clusters.
5
5
  Home-page: https://github.com/berenddeboer/cdk-rds-sql.git
6
6
  Author: Berend de Boer<berend@pobox.com>
@@ -10,20 +10,21 @@ Classifier: Intended Audience :: Developers
10
10
  Classifier: Operating System :: OS Independent
11
11
  Classifier: Programming Language :: JavaScript
12
12
  Classifier: Programming Language :: Python :: 3 :: Only
13
- Classifier: Programming Language :: Python :: 3.9
14
13
  Classifier: Programming Language :: Python :: 3.10
15
14
  Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: 3.14
16
18
  Classifier: Typing :: Typed
17
19
  Classifier: Development Status :: 5 - Production/Stable
18
20
  Classifier: License :: OSI Approved
19
- Requires-Python: ~=3.9
21
+ Requires-Python: >=3.10
20
22
  Description-Content-Type: text/markdown
21
23
  License-File: LICENSE
22
- Requires-Dist: aws-cdk-lib<3.0.0,>=2.214.0
23
- Requires-Dist: constructs<11.0.0,>=10.4.2
24
- Requires-Dist: jsii<2.0.0,>=1.129.0
24
+ Requires-Dist: aws-cdk-lib<3.0.0,>=2.273.0
25
+ Requires-Dist: constructs<11.0.0,>=10.5.0
26
+ Requires-Dist: jsii<2.0.0,>=1.141.0
25
27
  Requires-Dist: publication>=0.0.3
26
- Requires-Dist: typeguard==2.13.3
27
28
 
28
29
  # About
29
30
 
@@ -43,6 +44,8 @@ environments, and works in isolated subnets.
43
44
  # Requirements
44
45
 
45
46
  * CDK v2.
47
+ * Node.js 22.14 or newer for consumers, as declared in `package.json`'s `engines`.
48
+ This is the library's supported minimum, independent of its development tools.
46
49
 
47
50
  # Installation
48
51
 
@@ -571,17 +574,35 @@ const provider = new Provider(this, "Provider", {
571
574
 
572
575
  # Working on this code
573
576
 
574
- This code is managed by
575
- [projen](https://github.com/projen/projen/blob/main/README.md). In
576
- addition [pre-commit](https://pre-commit.com/) is used.
577
+ This code is managed by [projen](https://github.com/projen/projen).
578
+ [mise](https://mise.jdx.dev/) installs Node 24, pnpm 12, and
579
+ [hk](https://hk.jdx.dev/) for Git hooks. Biome handles formatting and linting.
577
580
 
578
- So after git clone and `pnpm install` you would do:
581
+ Development and CI use Node 24. Testcontainers is a development-only dependency;
582
+ its dependency tree requires newer APIs than the consumer minimum of Node 22.14.
579
583
 
584
+ After cloning:
585
+
586
+ ```sh
587
+ mise trust
588
+ mise install
589
+ mise run setup
580
590
  ```
581
- pre-commit install --install-hooks --hook-type commit-msg --hook-type pre-commit
582
- ```
583
591
 
584
- to install the pre-commit hooks.
592
+ When migrating an existing clone, replace the old pre-commit hooks with
593
+ `mise exec -- hk install --mise --force`.
594
+
595
+ Run all checks with `mise run check`, or format and lint with
596
+ `pnpm exec projen biome`. Tests require Docker. TypeScript stays on the
597
+ 6.0 release line supported by jsii 6.0.
598
+
599
+ The pre-commit hook runs the full build, tests, and packaging, so Docker must
600
+ be running. When `VPC_ID` is set, changes under `src/` also run CDK synthesis
601
+ against that VPC; this requires AWS credentials. Unset `VPC_ID` to skip synthesis.
602
+
603
+ The development tsconfig uses `node16` module resolution, including package
604
+ exports. Jest tasks enable Node's VM module support for native dynamic imports
605
+ such as the MySQL driver import.
585
606
 
586
607
  ## Testing
587
608
 
@@ -591,6 +612,9 @@ Test code via projen with:
591
612
  pnpm exec projen test
592
613
  ```
593
614
 
615
+ Tests do not update snapshots automatically. To intentionally refresh them, run
616
+ `pnpm exec projen test:update` and review the snapshot diff.
617
+
594
618
  You can run the PostgreSQL sample stack with:
595
619
 
596
620
  ```
@@ -11,4 +11,4 @@ src/cdk_rds_sql.egg-info/dependency_links.txt
11
11
  src/cdk_rds_sql.egg-info/requires.txt
12
12
  src/cdk_rds_sql.egg-info/top_level.txt
13
13
  src/cdk_rds_sql/_jsii/__init__.py
14
- src/cdk_rds_sql/_jsii/cdk-rds-sql@8.2.0.jsii.tgz
14
+ src/cdk_rds_sql/_jsii/cdk-rds-sql@9.0.1.jsii.tgz
@@ -0,0 +1,4 @@
1
+ aws-cdk-lib<3.0.0,>=2.273.0
2
+ constructs<11.0.0,>=10.5.0
3
+ jsii<2.0.0,>=1.141.0
4
+ publication>=0.0.3
@@ -1,42 +0,0 @@
1
- from pkgutil import extend_path
2
- __path__ = extend_path(__path__, __name__)
3
-
4
- import abc
5
- import builtins
6
- import datetime
7
- import enum
8
- import typing
9
-
10
- import jsii
11
- import publication
12
- import typing_extensions
13
-
14
- import typeguard
15
- from importlib.metadata import version as _metadata_package_version
16
- TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
17
-
18
- def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
19
- if TYPEGUARD_MAJOR_VERSION <= 2:
20
- return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
21
- else:
22
- if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
23
- pass
24
- else:
25
- if TYPEGUARD_MAJOR_VERSION == 3:
26
- typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
27
- typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
28
- else:
29
- typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
30
-
31
- import aws_cdk._jsii
32
- import constructs._jsii
33
-
34
- __jsii_assembly__ = jsii.JSIIAssembly.load(
35
- "cdk-rds-sql", "8.2.0", __name__[0:-6], "cdk-rds-sql@8.2.0.jsii.tgz"
36
- )
37
-
38
- __all__ = [
39
- "__jsii_assembly__",
40
- ]
41
-
42
- publication.publish()
@@ -1,5 +0,0 @@
1
- aws-cdk-lib<3.0.0,>=2.214.0
2
- constructs<11.0.0,>=10.4.2
3
- jsii<2.0.0,>=1.129.0
4
- publication>=0.0.3
5
- typeguard==2.13.3
File without changes
File without changes
File without changes