From 4b5a80660573f784b452ddaa4a2ba533c5a08906 Mon Sep 17 00:00:00 2001 From: Wes Eklund Date: Tue, 27 Jan 2026 13:40:14 -0500 Subject: [PATCH 1/3] fix: update deprecated database engine versions (#337) - Update MySQL engine version from 8.0.35 to 8.0.44 - Update PostgreSQL engine version from 16.1 to 16.11 - Add configurable parameter-group-family parameter to Neptune module (defaults to 1.4, supports 1.2, 1.3, 1.4) Closes #337 --- manifests/local/database-modules.yaml | 6 ++++-- modules/database/neptune/README.md | 1 + modules/database/neptune/app.py | 2 ++ modules/database/neptune/stack.py | 17 +++++++++++++++-- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/manifests/local/database-modules.yaml b/manifests/local/database-modules.yaml index d3e28431..915ca8f0 100644 --- a/manifests/local/database-modules.yaml +++ b/manifests/local/database-modules.yaml @@ -15,6 +15,8 @@ parameters: key: PrivateSubnetIds - name: number-instances value: 1 + - name: parameter-group-family + value: "1.4" --- name: mysql path: modules/database/rds @@ -37,7 +39,7 @@ parameters: - name: engine value: mysql - name: engine-version - value: 8.0.35 + value: 8.0.44 - name: instance-type value: t3.small - name: admin-username @@ -68,7 +70,7 @@ parameters: - name: engine value: postgresql - name: engine-version - value: 16.1 + value: 16.11 - name: instance-type value: m6gd.large - name: admin-username diff --git a/modules/database/neptune/README.md b/modules/database/neptune/README.md index 5a49768a..19cb85f8 100644 --- a/modules/database/neptune/README.md +++ b/modules/database/neptune/README.md @@ -16,6 +16,7 @@ This module creates a Neptune cluster for use in IDF #### Optional - `number-instances`: The number of compute nodes, defaults to `2` +- `parameter-group-family`: The Neptune parameter group family version (e.g., `1.2`, `1.3`, `1.4`), defaults to `1.4` ### Module Metadata Outputs diff --git a/modules/database/neptune/app.py b/modules/database/neptune/app.py index 18a3d241..96d1a947 100644 --- a/modules/database/neptune/app.py +++ b/modules/database/neptune/app.py @@ -33,6 +33,7 @@ def _param(name: str) -> str: raise ValueError("missing input parameter private-subnet-ids") num_instances = int(os.getenv(_param("NUMBER_INSTANCES"), "1")) +parameter_group_family = os.getenv(_param("PARAMETER_GROUP_FAMILY"), "1.4") app = App() @@ -49,6 +50,7 @@ def _param(name: str) -> str: vpc_id=vpc_id, private_subnet_ids=private_subnet_ids, number_instances=num_instances, + parameter_group_family=parameter_group_family, ) CfnOutput( diff --git a/modules/database/neptune/stack.py b/modules/database/neptune/stack.py index 42323cba..343acc21 100755 --- a/modules/database/neptune/stack.py +++ b/modules/database/neptune/stack.py @@ -26,6 +26,7 @@ def __init__( vpc_id: str, private_subnet_ids: List[str], number_instances: int, + parameter_group_family: str = "1.4", **kwargs: Any, ) -> None: super().__init__(scope, id, description="This stack deploys Amazon Neptune Cluster resources", **kwargs) @@ -42,6 +43,18 @@ def __init__( # Tagging all resources Tags.of(scope=cast(IConstruct, self)).add(key="Deployment", value=full_dep_mod) + # Map parameter group family string to enum + family_map = { + "1.2": neptune.ParameterGroupFamily.NEPTUNE_1_2, + "1.3": neptune.ParameterGroupFamily.NEPTUNE_1_3, + "1.4": neptune.ParameterGroupFamily.NEPTUNE_1_4, + } + pg_family = family_map.get(parameter_group_family) + if pg_family is None: + raise ValueError( + f"Unsupported parameter-group-family: {parameter_group_family}. Supported values: 1.2, 1.3, 1.4" + ) + # Importing the VPC self.vpc = ec2.Vpc.from_lookup( self, @@ -74,7 +87,7 @@ def __init__( self, f"{dep_mod}ClusterParams", description="Cluster parameter group", - family=neptune.ParameterGroupFamily.NEPTUNE_1_3, + family=pg_family, parameters={"neptune_enable_audit_log": "1"}, ) @@ -82,7 +95,7 @@ def __init__( self, "DbParams", description="Db parameter group", - family=neptune.ParameterGroupFamily.NEPTUNE_1_3, + family=pg_family, parameters={"neptune_query_timeout": "120000"}, ) From dbb0b9d04ed0c2aed7af6860b9373990a5517aa3 Mon Sep 17 00:00:00 2001 From: Wes Eklund Date: Tue, 27 Jan 2026 14:03:00 -0500 Subject: [PATCH 2/3] chore(neptune): upgrade CDK to 2.236.0 for NEPTUNE_1_4 support Upgrade aws-cdk-lib and aws-cdk-aws-neptune-alpha to 2.236.0 to support ParameterGroupFamily.NEPTUNE_1_4 which is required for new Neptune instances. --- modules/database/neptune/requirements.in | 8 ++++---- modules/database/neptune/requirements.txt | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/database/neptune/requirements.in b/modules/database/neptune/requirements.in index 44e01fdf..124a9380 100644 --- a/modules/database/neptune/requirements.in +++ b/modules/database/neptune/requirements.in @@ -1,5 +1,5 @@ -aws-cdk-lib==2.147.3 -aws-cdk.aws-neptune-alpha==2.147.3-alpha.0 -constructs==10.0.91 -cdk-nag==2.12.29 +aws-cdk-lib>=2.180.0,<3.0.0 +aws-cdk.aws-neptune-alpha>=2.180.0a0 +constructs>=10.0.91,<11.0.0 +cdk-nag>=2.12.29 boto3>=1.42.0,<2.0.0 \ No newline at end of file diff --git a/modules/database/neptune/requirements.txt b/modules/database/neptune/requirements.txt index aaa7ca37..6cebe3e6 100644 --- a/modules/database/neptune/requirements.txt +++ b/modules/database/neptune/requirements.txt @@ -4,15 +4,15 @@ attrs==25.4.0 # via # cattrs # jsii -aws-cdk-asset-awscli-v1==2.2.264 - # via aws-cdk-lib -aws-cdk-asset-kubectl-v20==2.1.4 +aws-cdk-asset-awscli-v1==2.2.263 # via aws-cdk-lib aws-cdk-asset-node-proxy-agent-v6==2.1.0 # via aws-cdk-lib -aws-cdk-aws-neptune-alpha==2.147.3a0 +aws-cdk-aws-neptune-alpha==2.236.0a0 # via -r requirements.in -aws-cdk-lib==2.147.3 +aws-cdk-cloud-assembly-schema==48.20.0 + # via aws-cdk-lib +aws-cdk-lib==2.236.0 # via # -r requirements.in # aws-cdk-aws-neptune-alpha @@ -42,18 +42,18 @@ jmespath==1.1.0 jsii==1.126.0 # via # aws-cdk-asset-awscli-v1 - # aws-cdk-asset-kubectl-v20 # aws-cdk-asset-node-proxy-agent-v6 # aws-cdk-aws-neptune-alpha + # aws-cdk-cloud-assembly-schema # aws-cdk-lib # cdk-nag # constructs publication==0.0.3 # via # aws-cdk-asset-awscli-v1 - # aws-cdk-asset-kubectl-v20 # aws-cdk-asset-node-proxy-agent-v6 # aws-cdk-aws-neptune-alpha + # aws-cdk-cloud-assembly-schema # aws-cdk-lib # cdk-nag # constructs @@ -69,9 +69,9 @@ six==1.17.0 typeguard==2.13.3 # via # aws-cdk-asset-awscli-v1 - # aws-cdk-asset-kubectl-v20 # aws-cdk-asset-node-proxy-agent-v6 # aws-cdk-aws-neptune-alpha + # aws-cdk-cloud-assembly-schema # aws-cdk-lib # jsii typing-extensions==4.15.0 From 8d66a6801cbd2092e73d85a4c467e94d5af99690 Mon Sep 17 00:00:00 2001 From: Wes Eklund Date: Tue, 27 Jan 2026 15:19:43 -0500 Subject: [PATCH 3/3] chore(neptune): update CDK CLI version in deployspec to latest Update the deployspec.yaml to use latest CDK CLI version to match the upgraded CDK library (2.236.0) which requires cloud assembly schema version 48.0.0. --- modules/database/neptune/deployspec.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/database/neptune/deployspec.yaml b/modules/database/neptune/deployspec.yaml index 7c4b9bb9..b2d17c10 100644 --- a/modules/database/neptune/deployspec.yaml +++ b/modules/database/neptune/deployspec.yaml @@ -3,7 +3,7 @@ deploy: phases: install: commands: - - npm install -g aws-cdk@2.147.3 + - npm install -g aws-cdk@latest - pip install -r requirements.txt build: commands: @@ -14,7 +14,7 @@ destroy: phases: install: commands: - - npm install -g aws-cdk@2.147.3 + - npm install -g aws-cdk@latest - pip install -r requirements.txt build: commands: