You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
r client nonce BinData Subtype 0 32 byte cryptographically secure random number
762
-
p gs2-cb-flag int32 The integer representation of the ASCII charater 'n' or 'y', i.e., ``110`` or ``121``
762
+
p gs2-cb-flag int32 The integer representation of the ASCII character 'n' or 'y', i.e., ``110`` or ``121``
763
763
s server nonce BinData Subtype 0 64 bytes total, 32 bytes from the client first message and a 32 byte cryptographically secure random number generated by the server
764
764
h sts host string FQDN of the STS service
765
765
a authorization header string Authorization header for `AWS Signature Version 4 <https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html?shortFooter=true>`_
@@ -776,7 +776,7 @@ Conversation
776
776
````````````
777
777
778
778
The first message sent by drivers MUST contain a ``client nonce`` and ``gs2-cb-flag``. In response, the server will send a ``server nonce``
779
-
and ``sts host``. Drivers MUST validate that the server nonce is exactly 64 bytes and the first 32 bytes are the same as the client nonce. Drivers MUST also validate that the length of the host is greater than 0 and less than or equal to 255 bytes per `RFC 1035 <https://tools.ietf.org/html/rfc1035>`_. Drivers MUST reject FQDN names with empty lables (e.g., "abc..def"), names that start with a period (e.g., ".abc.def") and names that end with a period (e.g., "abc.def."). Drivers MUST respond to the server's message with an ``authorization header`` and a ``date``.
779
+
and ``sts host``. Drivers MUST validate that the server nonce is exactly 64 bytes and the first 32 bytes are the same as the client nonce. Drivers MUST also validate that the length of the host is greater than 0 and less than or equal to 255 bytes per `RFC 1035 <https://tools.ietf.org/html/rfc1035>`_. Drivers MUST reject FQDN names with empty labels (e.g., "abc..def"), names that start with a period (e.g., ".abc.def") and names that end with a period (e.g., "abc.def."). Drivers MUST respond to the server's message with an ``authorization header`` and a ``date``.
780
780
781
781
As an example, given a client nonce value of "dzw1U2IwSEtgaWI0IUxZMVJqc2xuQzNCcUxBc05wZjI=", a MONGODB-AWS conversation decoded from
782
782
BSON to JSON would appear as follows:
@@ -888,7 +888,7 @@ Body Action=GetCallerIdentity&Version=2011-06-15
888
888
Region Calculation
889
889
``````````````````
890
890
891
-
To get the region from the host, the driver MUST follow the algorithm expressed in psuedocode below. ::
891
+
To get the region from the host, the driver MUST follow the algorithm expressed in pseudocode below. ::
892
892
893
893
if the host is invalid according to the rules described earlier
894
894
the region is undefined and the driver must raise an error.
@@ -1067,7 +1067,7 @@ would be with other credential responses.
1067
1067
1068
1068
ECS endpoint
1069
1069
____________
1070
-
If a username and password are not provided and the aforementioned enviornment variables are not set, drivers MUST query a link-local AWS address for temporary credentials.
1070
+
If a username and password are not provided and the aforementioned environment variables are not set, drivers MUST query a link-local AWS address for temporary credentials.
1071
1071
If temporary credentials cannot be obtained then drivers MUST fail authentication and raise an error. Drivers SHOULD
1072
1072
enforce a 10 second read timeout while waiting for incoming content from both the ECS and EC2 endpoints. If the
1073
1073
environment variable ``AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`` is set then drivers MUST assume that it was set by an
@@ -1155,15 +1155,15 @@ Caching Credentials
1155
1155
___________________
1156
1156
Credentials fetched by the driver using AWS endpoints MUST be cached and reused
1157
1157
to avoid hitting AWS rate limitations. AWS recommends using a suitable
1158
-
Software Development Kit (SDK) for your langauge. If that SDK supports
1158
+
Software Development Kit (SDK) for your language. If that SDK supports
1159
1159
credential fetch and automatic refresh/caching, then that mechanism can
1160
1160
be used in lieu of manual caching.
1161
1161
1162
1162
If using manual caching, the "Expiration" field MUST be stored
1163
1163
and used to determine when to clear the cache. Credentials are considered
1164
1164
valid if they are more than five minutes away from expiring; to the reduce the
1165
1165
chance of expiration before they are validated by the server. Credentials
1166
-
that are retreived from environment variables MUST NOT be cached.
1166
+
that are retrieved from environment variables MUST NOT be cached.
1167
1167
1168
1168
If there are no current valid cached credentials, the driver MUST initiate a
1169
1169
credential request. To avoid adding a bottleneck that would override the
@@ -1460,8 +1460,8 @@ Implementation
1460
1460
1461
1461
#. Credentials MAY be specified in the connection string immediately after the scheme separator "//".
1462
1462
#. A realm MAY be passed as a part of the username in the url. It would be something like [email protected], where dev is the username and MONGODB.COM is the realm. Per the RFC, the @ symbol should be url encoded using %40.
1463
-
* When GSSAPI is specified, this should be interpretted as the realm.
1464
-
* When non-GSSAPI is specified, this should be interpetted as part of the username.
1463
+
* When GSSAPI is specified, this should be interpreted as the realm.
1464
+
* When non-GSSAPI is specified, this should be interpreted as part of the username.
1465
1465
#. It is permissible for only the username to appear in the connection string. This would be identified by having no colon follow the username before the '@' hostname separator.
1466
1466
#. The source is determined by the following:
1467
1467
* if authSource is specified, it is used.
@@ -1509,13 +1509,13 @@ For the example users above, the ``dbstats`` command could be used as a test
1509
1509
command.
1510
1510
1511
1511
For a test user supporting both SCRAM-SHA-1 and SCRAM-SHA-256, drivers should
1512
-
verify that negotation selects SCRAM-SHA-256. This may require monkey
1512
+
verify that negotiation selects SCRAM-SHA-256. This may require monkey
1513
1513
patching, manual log analysis, etc.
1514
1514
1515
1515
Step 3
1516
1516
------
1517
1517
1518
-
For test users that support only one mechanism, verify that explictly specifying
1518
+
For test users that support only one mechanism, verify that explicitly specifying
1519
1519
the other mechanism fails.
1520
1520
1521
1521
For a non-existent username, verify that not specifying a mechanism when
Copy file name to clipboardExpand all lines: source/change-streams/change-streams.rst
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -597,7 +597,7 @@ The stage has the following shape:
597
597
598
598
The first parameter of the helpers specifies an array of aggregation pipeline stages which MUST be appended to the initial stage. Drivers MUST support an empty pipeline. Languages which support default parameters MAY specify an empty array as the default value for this parameter. Drivers SHOULD otherwise make specification of a pipeline as similar as possible to the `aggregate <https://github.com/mongodb/specifications/blob/master/source/crud/crud.rst#read>`_ CRUD method.
599
599
600
-
Additionally, implementors MAY provide a form of these methods which require no parameters, assuming no options and no additional stages beyond the initial ``$changeStream`` stage:
600
+
Additionally, implementers MAY provide a form of these methods which require no parameters, assuming no options and no additional stages beyond the initial ``$changeStream`` stage:
601
601
602
602
.. code:: python
603
603
@@ -616,7 +616,7 @@ A driver MUST NOT throw an exception if any unsupported stage is provided, but i
616
616
617
617
A driver MUST NOT throw an exception if a user adds, removes, or modifies fields using ``$project``. The server will produce an error if ``_id``
618
618
is projected out, but a user should otherwise be able to modify the shape of the change stream event as desired. This may require the result
619
-
to be deserialized to a ``BsonDocument`` or custom-defined type rather than a ``ChangeStreamDocument``. It is the responsiblity of the
619
+
to be deserialized to a ``BsonDocument`` or custom-defined type rather than a ``ChangeStreamDocument``. It is the responsibility of the
620
620
user to ensure that the deserialized type is compatible with the specified ``$project`` stage.
621
621
622
622
The aggregate helper methods MUST have no new logic related to the ``$changeStream`` stage. Drivers MUST be capable of handling `TAILABLE_AWAIT <https://github.com/mongodb/specifications/blob/master/source/crud/crud.rst#read>`_ cursors from the aggregate command in the same way they handle such cursors from find.
@@ -679,7 +679,7 @@ Drivers MUST use the ``ns`` returned in the ``aggregate`` command to set the ``c
679
679
ChangeStream
680
680
------------
681
681
682
-
A ``ChangeStream`` is an abstraction of a `TAILABLE_AWAIT <https://github.com/mongodb/specifications/blob/master/source/crud/crud.rst#read>`_ cursor, with support for resumability. Implementors MAY choose to implement a ``ChangeStream`` as an extension of an existing tailable cursor implementation. If the ``ChangeStream`` is implemented as a type which owns a tailable cursor, then the implementor MUST provide a manner of closing the change stream, as well as satisfy the requirements of extending ``Iterable<Document>``. If your language has an idiomatic way of disposing of resources you MAY choose to implement that in addition to, or instead of, an explicit close method.
682
+
A ``ChangeStream`` is an abstraction of a `TAILABLE_AWAIT <https://github.com/mongodb/specifications/blob/master/source/crud/crud.rst#read>`_ cursor, with support for resumability. Implementers MAY choose to implement a ``ChangeStream`` as an extension of an existing tailable cursor implementation. If the ``ChangeStream`` is implemented as a type which owns a tailable cursor, then the implementer MUST provide a manner of closing the change stream, as well as satisfy the requirements of extending ``Iterable<Document>``. If your language has an idiomatic way of disposing of resources you MAY choose to implement that in addition to, or instead of, an explicit close method.
683
683
684
684
A change stream MUST track the last resume token, per `Updating the Cached Resume Token`_.
685
685
@@ -705,7 +705,7 @@ The server expects ``startAtOperationTime`` as a BSON Timestamp. Drivers MUST al
705
705
706
706
``startAtOperationTime``, ``resumeAfter``, and ``startAfter`` are all mutually exclusive; if any two are set, the server will return an error. Drivers MUST NOT throw a custom error, and MUST defer to the server error.
707
707
708
-
The ``ChangeStream`` MUST save the ``operationTime`` from the initial ``aggregate`` response when the following critera are met:
708
+
The ``ChangeStream`` MUST save the ``operationTime`` from the initial ``aggregate`` response when the following criteria are met:
709
709
710
710
- None of ``startAtOperationTime``, ``resumeAfter``, ``startAfter`` were specified in the ``ChangeStreamOptions``.
Copy file name to clipboardExpand all lines: source/client-side-encryption/client-side-encryption.rst
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -1539,7 +1539,7 @@ for explicit encryption only (i.e. on the ClientEncryption class).
1539
1539
For purposes of testing, a driver may use a different set of search paths.
1540
1540
1541
1541
1542
-
.. rubric:: Explaination
1542
+
.. rubric:: Explanation
1543
1543
1544
1544
The `search paths`_ array in libmongocrypt_ allows the driver to customize the
1545
1545
way that libmongocrypt_ searches and loads the crypt_shared_ library. For testing
@@ -2419,15 +2419,15 @@ Why are serverSelectionTryOnce and cooldownMS disabled for single-threaded drive
2419
2419
By default, single threaded clients set serverSelectionTryOnce to true, which
2420
2420
means server selection fails if a topology scan fails the first time (i.e. it
2421
2421
will not make repeat attempts until serverSelectionTimeoutMS expires). This
2422
-
behavior isoverriden since there may be a small delay between spawning
2422
+
behavior isoverridden since there may be a small delay between spawning
2423
2423
mongocryptd (which the driver may be responsible for) andfor mongocryptd to
2424
2424
listen on sockets. See the Server Selection spec description of `serverSelectionTryOnce <../server-selection/server-selection.rst#serverselectiontryonce>`_.
2425
2425
2426
2426
Similarly, single threaded clients will by default wait for5 second cooldown
2427
2427
period after failing to connect to a server before making another attempt.
2428
2428
Meaning if the first attempt to mongocryptd fails to connect, then the user
2429
2429
would observe a 5 second delay. This isnot configurable in the URI, so this
2430
-
must be overriden internally. Since mongocryptd is a local process, there should
2430
+
must be overridden internally. Since mongocryptd is a local process, there should
2431
2431
only be a very short delay after spawning mongocryptd for it to start listening
2432
2432
on sockets. See the SDAM spec description of `cooldownMS <../source/server-discovery-and-monitoring/server-discovery-and-monitoring.rst#cooldownms>`__.
Copy file name to clipboardExpand all lines: source/client-side-encryption/tests/README.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1308,7 +1308,7 @@ Drivers that do not support an unlimited maximum pool size MUST skip this test.
1308
1308
The following tests that connections to KMS servers with TLS verify peer certificates.
1309
1309
1310
1310
The two tests below make use of mock KMS servers which can be run on Evergreen using `the mock KMS server script <https://github.com/mongodb-labs/drivers-evergreen-tools/blob/master/.evergreen/csfle/kms_http_server.py>`_.
1311
-
Drivers can set up their local Python enviroment for the mock KMS server by running `the virtualenv activation script <https://github.com/mongodb-labs/drivers-evergreen-tools/blob/master/.evergreen/csfle/activate_venv.sh>`_.
1311
+
Drivers can set up their local Python environment for the mock KMS server by running `the virtualenv activation script <https://github.com/mongodb-labs/drivers-evergreen-tools/blob/master/.evergreen/csfle/activate_venv.sh>`_.
1312
1312
1313
1313
To start two mock KMS servers, one on port 9000 with `ca.pem`_ as a CA file and `expired.pem`_ as a cert file, and one on port 9001 with `ca.pem`_ as a CA file and `wrong-host.pem`_ as a cert file,
1314
1314
run the following commands from the ``.evergreen/csfle`` directory:
0 commit comments