Skip to content

Commit 6d0ba1b

Browse files
karenc-bqsophia-bq
andauthored
chore: bump version to 3.0.0 (#694)
Co-authored-by: Sophia Chu <112967780+sophia-bq@users.noreply.github.com>
1 parent 3000b56 commit 6d0ba1b

9 files changed

Lines changed: 57 additions & 27 deletions

File tree

CHANGELOG.md

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,38 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/#semantic-versioning-200).
66

7-
## [Unreleased]
7+
## [3.0.0] - 2026-08-20
8+
9+
### :boom: Breaking Changes
10+
11+
- `clusterId` is no longer derived automatically, and applications that connect to more than one database cluster must now set it explicitly. Previously the wrapper generated a cluster id from the connection URL and, for AWS RDS clusters, converged connections made through instance endpoints, IP addresses or custom domains onto the cluster endpoint's id. That derivation, along with the suggested and primary cluster id caches, has been removed: `clusterId` is now taken only from the configuration parameter and defaults to `1` for every connection. An application that connects to several clusters without setting a distinct `clusterId` per cluster will have all of them share the same topology cache and monitor entries, which leads to incorrect topology and failover to the wrong cluster. Give every cluster its own value, and use the same value for every connection to a given cluster. See [Cluster ID](https://github.com/aws/aws-advanced-nodejs-wrapper/blob/main/docs/using-the-nodejs-wrapper/ClusterId.md).
12+
- Optional runtime dependencies are no longer installed for you. `@opentelemetry/api`, `http-cookie-agent` and `tough-cookie` moved from `dependencies` to optional `peerDependencies`, and the OpenTelemetry SDK packages (`@opentelemetry/context-async-hooks`, `@opentelemetry/resources`, `@opentelemetry/sdk-trace-base`, `@opentelemetry/semantic-conventions`) are no longer declared by the wrapper at all. Applications that use telemetry, or the [Federated Authentication](https://github.com/aws/aws-advanced-nodejs-wrapper/blob/main/docs/using-the-nodejs-wrapper/using-plugins/UsingTheFederatedAuthPlugin.md) and [Okta Authentication](https://github.com/aws/aws-advanced-nodejs-wrapper/blob/main/docs/using-the-nodejs-wrapper/using-plugins/UsingTheOktaAuthPlugin.md) plugins, must add the packages they need to their own dependencies.
13+
- Client constructors are typed. `AwsPgClient`, `AwsPgPoolClient`, `AwsMySQLClient` and `AwsMySQLPoolClient` now accept `AwsPgClientConfig` / `AwsMySQLClientConfig` in place of `any`, so TypeScript rejects unknown or misspelled connection properties at compile time. This is a compile-time change only; runtime behaviour is unchanged. Configurations that relied on the untyped parameter may need corrections.
14+
- `any` has been removed from the external API. Most visibly, `query()` on the MySQL clients now resolves to `[T, FieldPacket[]]` rather than `[T, any]`. Code that consumed those results loosely may need type updates.
15+
16+
### :magic_wand: Added
17+
18+
- Support for [Amazon Aurora Global Databases](https://github.com/aws/aws-advanced-nodejs-wrapper/blob/main/docs/using-the-nodejs-wrapper/GlobalDatabases.md), including in-region and cross-region failover, global writer endpoint recognition and stale DNS handling.
19+
- [Global Database Failover Plugin](https://github.com/aws/aws-advanced-nodejs-wrapper/blob/main/docs/using-the-nodejs-wrapper/using-plugins/UsingTheGlobalDbFailoverPlugin.md), which adds the notion of a home region and lets failover behaviour be configured separately for the in-home and out-of-home cases.
20+
- [Global Database Read/Write Splitting Plugin](https://github.com/aws/aws-advanced-nodejs-wrapper/blob/main/docs/using-the-nodejs-wrapper/using-plugins/UsingTheGlobalDbReadWriteSplittingPlugin.md), which can constrain new connections to a home region.
21+
- [Restricting Aurora Global Database access by region](https://github.com/aws/aws-advanced-nodejs-wrapper/blob/main/docs/using-the-nodejs-wrapper/using-plugins/UsingGlobalAuroraAccessibleRegions.md) with the `gdbAccessibleRegions` parameter.
22+
- [Monitoring connection priority](https://github.com/aws/aws-advanced-nodejs-wrapper/blob/main/docs/using-the-nodejs-wrapper/using-plugins/UsingMonitoringConnectionPriority.md), which directs the topology monitor's connection to a preferred host type or region.
23+
- Exported configuration types `AwsClientConfig`, `AwsPgClientConfig` and `AwsMySQLClientConfig`.
824

925
### :crab: Changed
1026

1127
- Renamed the PostgreSQL client to `AwsPgClient` and its pooled connection type to `AwsPgPooledConnection` for consistent `Pg` casing across the `pg` module. This is a non-breaking change.
28+
- PostgreSQL dialect queries are now schema-qualified, so they resolve correctly regardless of the session `search_path`.
1229

1330
### :warning: Deprecated
1431

1532
- `AwsPGClient` and `AwsPGPooledConnection` are now deprecated. They remain exported as backwards-compatible aliases of `AwsPgClient` and `AwsPgPooledConnection` and behave identically, so existing code continues to work without modification. Update imports to the new names; the deprecated aliases are scheduled for removal in the next major release.
1633

34+
### :bug: Fixed
35+
36+
- IAM, Federated Authentication and Okta authentication now work against Aurora MySQL. Aurora asks a token-authenticated user for the `mysql_clear_password` authentication plugin, which the underlying driver refuses unless `enableCleartextPlugin` is set; the wrapper now enables it when a token-based authentication plugin is in use and the connection is encrypted. See [MySQL requires an encrypted connection](https://github.com/aws/aws-advanced-nodejs-wrapper/blob/main/docs/using-the-nodejs-wrapper/using-plugins/UsingTheIamAuthenticationPlugin.md#mysql-requires-an-encrypted-connection).
37+
- Failover is now triggered by read-only connection errors when using `strict-writer` failover mode.
38+
1739
## [2.1.1] - 2026-05-28
1840

1941
### :magic_wand: Added
@@ -119,6 +141,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
119141

120142
The Amazon Web Services (AWS) Advanced NodeJS Wrapper allows an application to take advantage of the features of clustered Aurora databases.
121143

144+
[3.0.0]: https://github.com/aws/aws-advanced-nodejs-wrapper/compare/2.1.1...3.0.0
122145
[2.1.1]: https://github.com/aws/aws-advanced-nodejs-wrapper/compare/2.1.0...2.1.1
123146
[2.1.0]: https://github.com/aws/aws-advanced-nodejs-wrapper/compare/2.0.1...2.1.0
124147
[2.0.1]: https://github.com/aws/aws-advanced-nodejs-wrapper/compare/2.0.0...2.0.1

MAINTENANCE.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
| Oct 17 2025 | [Release 2.0.1](https://github.com/aws/aws-advanced-nodejs-wrapper/releases/tag/2.0.1) |
1111
| Jan 15 2026 | [Release 2.1.0](https://github.com/aws/aws-advanced-nodejs-wrapper/releases/tag/2.1.0) |
1212
| May 28 2026 | [Release 2.1.1](https://github.com/aws/aws-advanced-nodejs-wrapper/releases/tag/2.1.1) |
13+
| Aug 20 2026 | [Release 3.0.0](https://github.com/aws/aws-advanced-nodejs-wrapper/releases/tag/3.0.0) |
1314

1415
`aws-advanced-nodejs-wrapper` [follows semver](https://semver.org/#semantic-versioning-200) which means we will only
1516
release breaking changes in major versions. Generally speaking patches will be released to fix existing problems without
@@ -62,4 +63,5 @@ from the updated source after the PRs are merged.
6263
| Major Version | Latest Minor Version | Status | Initial Release | Maintenance Window Start | Maintenance Window End |
6364
| ------------- | -------------------- | ----------- | --------------- | ------------------------ | ---------------------- |
6465
| 1 | 1.3.0 | Maintenance | Nov 19, 2024 | Sep 11, 2025 | Sep 11, 2026 |
65-
| 2 | 2.1.1 | Current | Sep 11, 2025 | N/A | N/A |
66+
| 2 | 2.1.1 | Maintenance | Sep 11, 2025 | Aug 20, 2026 | Aug 20, 2027 |
67+
| 3 | 3.0.0 | Current | Aug 20, 2026 | N/A | N/A |

common/lib/wrapper_property.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ export interface AwsClientConfig {
102102
clusterTopologyRefreshRateMs?: number;
103103
/** Cluster topology high refresh rate in millis. */
104104
clusterTopologyHighRefreshRateMs?: number;
105-
/** A unique identifier for the cluster. Connections with the same cluster id share a cluster topology cache. If unspecified, a cluster id is automatically created for AWS RDS clusters. */
105+
/** A unique identifier for the cluster. Connections with the same cluster id share a cluster topology cache. If unspecified, the cluster id is '1'. Applications connecting to more than one cluster must set a distinct value for each cluster. */
106106
clusterId?: string;
107107
/** The cluster instance DNS pattern that will be used to build a complete instance endpoint. A "?" character in this pattern should be used as a placeholder for cluster instance names. This pattern is required to be specified for IP address or custom domain connections to AWS RDS clusters. Otherwise, if unspecified, the pattern will be automatically created for AWS RDS clusters. */
108108
clusterInstanceHostPattern?: string;

0 commit comments

Comments
 (0)