-
Couldn't load subscription status.
- Fork 1.8k
[DO NOT MERGE] docs(NODE-7172): create v7 migration guide #4751
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
|
||
| ## ⚠️ ALL BREAKING CHANGES | ||
|
|
||
| - **NODE-7259:** use alphas of all supporting packages ([#4746](https://github.com/mongodb/node-mongodb-native/issues/4746)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Placeholder: Replace this line with link to actual major version bumps
Co-authored-by: Alex Bevilacqua <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a few minor comments.
etc/notes/CHANGES_7.0.0.md
Outdated
| | Dependency | Allowed Range | Previous Range | | ||
| | ----------------------------- | ------------- | -------------- | | ||
| | @aws-sdk/credential-providers | ^3.806.0 | ^3.188.0 | | ||
| | gcp-metadata | ^7.0.1 | ^5.2.0 | | ||
| | socks | ^2.8.6 | ^2.7.1 | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor, but suggest swapping the allowed and previous range columns. English reads right -> left, and people (myself included) might skip the headers and be confused why it seems like we're lowering version requirements if they just skim the table.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sure, done
etc/notes/CHANGES_7.0.0.md
Outdated
|
|
||
| ### Explicitly provided credentials no longer accepted with MONGODB-AWS authentication | ||
|
|
||
| AWS environments (such as AWS Lambda) do not have credentials that are permanent and expire within a set amount of time. Providing credentials in the URI or options would mandate that those credentials would be valid for the life of the `MongoClient`, which is problematic. With this change, the installed required AWS SDK will now fetch credentials using the environment, endpoints, or a custom credential provider. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| AWS environments (such as AWS Lambda) do not have credentials that are permanent and expire within a set amount of time. Providing credentials in the URI or options would mandate that those credentials would be valid for the life of the `MongoClient`, which is problematic. With this change, the installed required AWS SDK will now fetch credentials using the environment, endpoints, or a custom credential provider. | |
| AWS environments (such as AWS Lambda) do not have credentials that are permanent and expire within a set amount of time. Providing credentials in the URI or options would mandate that those credentials would be valid for the life of the `MongoClient`, which is problematic. With this change, the installed required AWS SDK will now fetch credentials using a custom credential provider or the AWS SDK. |
Suggest removing all mention of what the SDK supports.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rephrased, let me know what you think
|
|
||
| const client = new MongoClient('mongodb<+srv>://<host>:<port>/?authMechanism=MONGODB-AWS'); | ||
| ``` | ||
| The previous method of providing URI encoded credentials based on the `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` directly in the connection string will no longer work. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The previous method of providing URI encoded credentials based on the `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` directly in the connection string will no longer work. | |
| The previous method of providing URI encoded credentials based on the `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` directly in the connection string will no longer work. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed spacing
etc/notes/CHANGES_7.0.0.md
Outdated
|
|
||
| ## 💥 Misc breaking improvements | ||
|
|
||
| ### Change streams no longer whitelist `$changeStream` stage options |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| ### Change streams no longer whitelist `$changeStream` stage options | |
| ### Change streams no longer allowlist `$changeStream` stage options |
allowlist / denylist instead of whitelist / blacklist
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good catch, though in this case I think "filters" is more apt anyway
etc/notes/CHANGES_7.0.0.md
Outdated
|
|
||
| ### Change streams no longer whitelist `$changeStream` stage options | ||
|
|
||
| Uses are now able to pass any option to `collection.watch()` and if it is invalid in the `$changeStream` stage of the pipeline the server will error. This is to allow users to provide newly added options quickly that are not in our public types. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Uses are now able to pass any option to `collection.watch()` and if it is invalid in the `$changeStream` stage of the pipeline the server will error. This is to allow users to provide newly added options quickly that are not in our public types. | |
| Uses are now able to pass any option to `collection.watch()` and if it is invalid in the `$changeStream` stage of the pipeline the server will error. |
Minor, but we really only intend for internal users to encounter this through mongosh, right? Suggest removing all mention of using unsupported options.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I adjusted the wording, I think it's still worthwhile to call out motivation for changes in our release notes; in this case, unknown to the driver and unsupported aren't the same thing
etc/notes/CHANGES_7.0.0.md
Outdated
|
|
||
| ### Internal `ClientMetadata` properties have been removed | ||
|
|
||
| Previous versions of the driver unintentionally made properties used when constructing client metadata public. These properties have now been made internal. The full list of properties is: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Previous versions of the driver unintentionally made properties used when constructing client metadata public. These properties have now been made internal. The full list of properties is: | |
| Previous versions of the driver unintentionally made driver-internal properties handshake construction properties. These properties have now been made internal. The full list of properties is: |
the phrasing of the sentence feels odd.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
agreed, revised for flow
Description
Summary of Changes
Adds a V7 migration guide and updates the README for V7, including the compat table.
What is the motivation for this change?
NODE-7172
Double check the following
npm run check:lint)type(NODE-xxxx)[!]: descriptionfeat(NODE-1234)!: rewriting everything in coffeescript