1- .. _reference-compatibility-ruby :
1+ .. _compatibility :
22
33********************
44Driver Compatibility
@@ -12,12 +12,23 @@ Driver Compatibility
1212 :depth: 1
1313 :class: singlecol
1414
15- .. _reference-compatibility-mongodb-ruby:
15+
16+ .. _mongodb-compatibility:
1617
1718MongoDB Compatibility
1819=====================
1920
20- .. include:: /includes/ruby-driver-compatibility-matrix-mongodb.rst
21+ The following compatibility table specifies the recommended
22+ version(s) of the MongoDB Ruby driver for use with a specific version of
23+ MongoDB. Except when indicated, the specified driver versions expose or
24+ take advantage of the features added in the corresponding server versions.
25+
26+ MongoDB server releases are generally backwards compatible, meaning a
27+ particular version of the driver will generally work with newer versions of
28+ the server but may not take advantage of the functionality released in the
29+ newer version of the server.
30+
31+ The first column lists the driver versions.
2132
2233.. list-table::
2334 :header-rows: 1
@@ -184,7 +195,8 @@ MongoDB Compatibility
184195
185196The driver does not support older versions of MongoDB.
186197
187- .. _reference-compatibility-language-ruby:
198+
199+ .. _ruby-compatibility:
188200
189201Ruby Compatibility
190202==================
@@ -426,6 +438,7 @@ for that Ruby version is deprecated.
426438
427439The driver does not support older versions of Ruby.
428440
441+
429442Rails/ActiveSupport Compatibility
430443=================================
431444
@@ -442,6 +455,52 @@ compatibility code for behavior like time serialization to be correct:
442455Applications using Mongoid 7.0.6 or newer do not need to explicitly load
443456the driver's ActiveSupport code, since Mongoid automatically does so.
444457
458+
459+ .. _tls-compatibility:
460+
461+ TLS/SSL Compatibility
462+ =====================
463+
464+ The driver will utilize the protocols supported by the underlying Ruby
465+ ``openssl`` extension. In turn, the ``openssl`` extension generally exposes
466+ the functionality that exists in the operating system's OpenSSL library.
467+
468+ Industry best practices, and some regulations, require the use of TLS 1.1
469+ or newer. Some operating systems or versions may not provide an OpenSSL version
470+ new enough to support these TLS versions.
471+
472+ Users of macOS older than 10.13 (High Sierra) will need to install Ruby from
473+ `rvm`_, `homebrew`_, `macports`_, or another similar source. See
474+ `installation information on ruby-lang.org`_ for more options.
475+
476+ Users of Linux or other non-macOS Unix can check their OpenSSL version
477+ as follows:
478+
479+ .. code-block:: sh
480+
481+ openssl version
482+
483+ If the version number is less than 1.0.1 support for TLS 1.1 or newer is
484+ not available. Contact your operating system vendor for a solution or upgrade
485+ to a newer distribution.
486+
487+ You can check your Ruby interpreter by executing the following command:
488+
489+ .. code-block:: sh
490+
491+ ruby -e "require 'net/http'; require 'json'; puts JSON.parse(Net::HTTP.get(URI('https://www.howsmyssl.com/a/check')))['tls_version']"
492+
493+ You should see "TLS 1.X" where X is >= 1.
494+
495+ You can read more about TLS versions and their security implications `here
496+ <https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#Rule_-_Only_Support_Strong_Protocols>`_.
497+
498+ .. _rvm: https://rvm.io/
499+ .. _homebrew: https://brew.sh/
500+ .. _macports: https://www.macports.org/
501+ .. _installation information on ruby-lang.org: https://www.ruby-lang.org/en/documentation/installation
502+
503+
445504Atlas Compatibility
446505===================
447506
@@ -454,6 +513,7 @@ When running on JRuby and connecting to Atlas Free Tier,
454513`driver version 2.6.4 <https://github.com/mongodb/mongo-ruby-driver/releases/tag/v2.6.4>`_
455514or higher and Java 8 or higher are required.
456515
516+
457517``mongo_kerberos`` Compatibility
458518================================
459519
0 commit comments