Skip to content

feat(rds): add SqlServerEngineVersion constants for engine v17 - #38401

Open
boluwatifeajayi wants to merge 3 commits into
aws:mainfrom
boluwatifeajayi:feat/rds-sqlserver-engine-v17
Open

feat(rds): add SqlServerEngineVersion constants for engine v17#38401
boluwatifeajayi wants to merge 3 commits into
aws:mainfrom
boluwatifeajayi:feat/rds-sqlserver-engine-v17

Conversation

@boluwatifeajayi

Copy link
Copy Markdown

Closes #38400

Use case

SQL Server 2025 (engine v17) is now available on RDS, but SqlServerEngineVersion has no constants for it, blocking direct use from CDK.

Solution

Added VER_17 and VER_17_00_4045_5_V1 to SqlServerEngineVersion, following the exact pattern used for every prior major version (bare-major constant + full-version constant). Since SQL Server uses a single shared SqlServerEngineVersion class across all editions (unlike Aurora's per-flavor classes), only two constants are needed rather than one per edition.

Verified against ee/ex/se via aws rds describe-db-engine-versions (see issue). Not independently verified for the Web edition — the parameter-group-family naming logic works correctly for it (sqlserver-web-17.0, covered by unit test), but I haven't confirmed AWS RDS actually offers v17 on Web edition specifically, since I don't have the AWS CLI available in my environment to run the equivalent query.

Testing

  • Added unit tests mirroring the existing v11 pair (parameter group family, MajorEngineVersion) for v17 — 19/19 suites, 725/725 tests passing in aws-rds
  • yarn build clean, no new lint findings

Note on integration tests

I don't have AWS credentials configured to run yarn integ / regenerate snapshots. INTEG_TEST_LATEST_SQLSERVER in db-versions.ts auto-selects the latest version by sort, so no manual integ test-file edit was needed — but this means the following snapshots are now stale and will need regenerating by a maintainer:

  • packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.instance-s3.js.snapshot
  • packages/@aws-cdk-testing/framework-integ/test/aws-rds/test/integ.proxy-sql-server.js.snapshot

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

Copilot AI review requested due to automatic review settings July 24, 2026 23:03

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions github-actions Bot added feature-request A feature should be added or improved. p2 beginning-contributor [Pilot] contributed between 0-2 PRs to the CDK labels Jul 24, 2026
@aws-cdk-automation
aws-cdk-automation requested a review from a team July 24, 2026 23:03

@aws-cdk-automation aws-cdk-automation left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pull request linter fails with the following errors:

❌ Features must contain a change to a README file.
❌ Features must contain a change to an integration test file and the resulting snapshot.

If you believe this pull request should receive an exemption, please comment and provide a justification. A comment requesting an exemption should contain the text Exemption Request. Additionally, if clarification is needed, add Clarification Request to a comment.

✅ A exemption request has been requested. Please wait for a maintainer's review.

@boluwatifeajayi

Copy link
Copy Markdown
Author

Exemption Request

README: The aws-rds README's SqlServerEngineVersion examples (lines ~1367, ~1389) intentionally use VER_11 to illustrate the parameter-group API generically, not to showcase the latest version — they're version-agnostic by design. There's no natural place to reference VER_17 specifically without making the example misleadingly imply it's the only current version. Happy to add a mention if a maintainer can point me to where it'd fit.

Integration test / snapshot: As noted in the PR description, I don't have AWS credentials configured to run yarn integ and regenerate snapshots — per CONTRIBUTING.md's guidance for this exact situation ('If you are working on a PR that requires an update to an integration test and you are unable to run the cdk-integ tool... please call this out on the pull request so a maintainer can run the tests for you'). No manual integ test file edit was required since INTEG_TEST_LATEST_SQLSERVER in db-versions.ts auto-selects the latest version by sort — it will pick up VER_17 automatically. The two affected snapshots (integ.instance-s3.js.snapshot, integ.proxy-sql-server.js.snapshot) will need regenerating by a maintainer with deploy access, as flagged in the PR description.

sqlserver-web does not offer engine v17 per RDS's describe-db-engine-versions.
Switched tests to sqlserver-ee, which does.
@boluwatifeajayi

boluwatifeajayi commented Jul 27, 2026

Copy link
Copy Markdown
Author

Good catch, thanks switched both v17 tests from sqlServerWeb to sqlServerEe to match what's actually offered on RDS (confirmed 725/725 tests still passing). Pushed. @pahud

@boluwatifeajayi

Copy link
Copy Markdown
Author

gh pr comment 38401 --repo aws/aws-cdk --body "Build failure confirms what I flagged in the PR description, the integ snapshot diff (DatabaseInstanceOptionGroup WILL_REPLACE in integ.instance-s3 and integ.proxy-sql-server) is expected: INTEG_TEST_LATEST_SQLSERVER auto-selects VER_17 as latest now, and v16->v17 requires an OptionGroup replacement. This needs a maintainer with deploy access to regenerate those two snapshots, I don't have AWS credentials to run yarn integ myself. Let me know if there's anything else needed on my end." @pahud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

beginning-contributor [Pilot] contributed between 0-2 PRs to the CDK feature-request A feature should be added or improved. p2 pr-linter/exemption-requested The contributor has requested an exemption to the PR Linter feedback.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

(rds): Add SqlServerEngineVersion constants for engine v17

3 participants