Skip to content

Commit

Permalink
Fix sharedinclude content in current (#406)
Browse files Browse the repository at this point in the history
  • Loading branch information
stephmarie17 authored Nov 19, 2024
1 parent 57805ea commit f32f313
Show file tree
Hide file tree
Showing 7 changed files with 169 additions and 5 deletions.
16 changes: 12 additions & 4 deletions source/compatibility.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,24 @@ The following compatibility table specifies the recommended version of the

The first column lists the driver version.

.. sharedinclude:: dbx/lifecycle-schedule-callout.rst
.. include:: /includes/include-fixes/lifecycle-schedule-callout.rst

.. .. sharedinclude:: dbx/lifecycle-schedule-callout.rst

.. sharedinclude:: dbx/compatibility-table-legend.rst
.. include:: /includes/include-fixes/compatibility-table-legend.rst

.. sharedinclude:: dbx/mongodb-compatibility-table-go.rst
.. .. sharedinclude:: dbx/compatibility-table-legend.rst

.. include:: /includes/include-fixes/mongodb-compatibility-table-go.rst

.. .. sharedinclude:: dbx/mongodb-compatibility-table-go.rst

Language Compatibility
----------------------

.. sharedinclude:: dbx/language-compatibility-table-go.rst
.. include:: /includes/include-fixes/language-compatibility-table-go.rst

.. .. sharedinclude:: dbx/language-compatibility-table-go.rst

For more information on how to read the compatibility tables, see our guide on
:ref:`MongoDB Compatibility Tables. <about-driver-compatibility>`
4 changes: 3 additions & 1 deletion source/fundamentals/encrypt-fields.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@
.. meta::
:keywords: privacy, security

.. sharedinclude:: dbx/encrypt-fields.rst
.. include:: /includes/include-fixes/encrypt-fields.rst

.. .. sharedinclude:: dbx/encrypt-fields.rst
18 changes: 18 additions & 0 deletions source/includes/include-fixes/compatibility-table-legend.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Compatibility Table Legend
++++++++++++++++++++++++++

.. list-table::
:header-rows: 1
:stub-columns: 1
:class: compatibility

* - Icon
- Explanation

* - ✓
- All features are supported.
* - ⊛
- The Driver version will work with the MongoDB version, but not all
new MongoDB features are supported.
* - No mark
- The Driver version is not tested with the MongoDB version.
90 changes: 90 additions & 0 deletions source/includes/include-fixes/encrypt-fields.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
=================
In-Use Encryption
=================

.. contents:: On this page
:local:
:backlinks: none
:depth: 2
:class: singlecol

Overview
--------

You can use the {+driver-short+} to encrypt specific document fields by using a
set of features called **in-use encryption**. In-use encryption allows
your application to encrypt data *before* sending it to MongoDB
and query documents with encrypted fields.

In-use encryption prevents unauthorized users from viewing plaintext
data as it is sent to MongoDB or while it is in an encrypted database. To
enable in-use encryption in an application and authorize it to decrypt
data, you must create encryption keys that only your application can
access. Only applications that have access to your encryption
keys can access the decrypted, plaintext data. If an attacker gains
access to the database, they can only see the encrypted ciphertext data
because they lack access to the encryption keys.

You might use in-use encryption to encrypt fields in your MongoDB
documents that contain the following types of sensitive data:

- Credit card numbers
- Addresses
- Health information
- Financial information
- Any other sensitive or personally identifiable information (PII)

MongoDB offers the following features to enable in-use encryption:

- :ref:`Queryable Encryption <subsection-qe>`
- :ref:`Client-side Field Level Encryption <subsection-csfle>`

.. _subsection-qe:

Queryable Encryption
~~~~~~~~~~~~~~~~~~~~

Queryable Encryption is the next-generation in-use encryption feature,
first introduced as a preview feature in MongoDB Server version 6.0 and
as a generally available (GA) feature in MongoDB 7.0. Queryable
Encryption supports searching encrypted fields for equality and encrypts
each value uniquely.

.. important:: Preview Feature Incompatible with MongoDB 7.0

The implementation of Queryable Encryption in MongoDB 6.0 is incompatible with the GA version introduced in MongoDB 7.0. The Queryable Encryption preview feature is no longer supported.

To learn more about Queryable Encryption, see :manual:`Queryable
Encryption </core/queryable-encryption/>` in the Server manual.

.. _subsection-csfle:

Client-side Field Level Encryption
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Client-side Field Level Encryption (CSFLE) was introduced in MongoDB
Server version 4.2 and supports searching encrypted fields for equality.
CSFLE differs from Queryable Encryption in that you can select either a
deterministic or random encryption algorithm to encrypt fields. You can only
query encrypted fields that use a deterministic encryption algorithm when
using CSFLE. When you use a random encryption algorithm to encrypt
fields in CSFLE, they can be decrypted, but you cannot perform equality
queries on those fields. When you use Queryable Encryption, you cannot
specify the encryption algorithm, but you can query all encrypted
fields.

When you deterministically encrypt a value, the same input value
produces the same output value. While deterministic encryption allows
you to perform queries on those encrypted fields, encrypted data with
low cardinality is susceptible to code breaking by frequency analysis.

.. tip::

To learn more about these concepts, see the following Wikipedia
entries:

- :wikipedia:`Cardinality <w/index.php?title=Cardinality_(data_modeling)&oldid=1182661589>`
- :wikipedia:`Frequency Analysis <w/index.php?title=Frequency_analysis&oldid=1182536787>`

To learn more about CSFLE, see :manual:`CSFLE </core/csfle/>` in the
Server manual.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
The {+driver-long+} requires Go 1.18 or later.
6 changes: 6 additions & 0 deletions source/includes/include-fixes/lifecycle-schedule-callout.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.. important::

MongoDB ensures compatibility between the MongoDB Server and the drivers
for three years after the server version's end of life (EOL) date. To learn
more about the MongoDB release and EOL dates, see
`MongoDB Software Lifecycle Schedules <https://www.mongodb.com/support-policy/lifecycles>`__.
39 changes: 39 additions & 0 deletions source/includes/include-fixes/mongodb-compatibility-table-go.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
.. list-table::
:header-rows: 1
:stub-columns: 1
:class: compatibility-large

* - Go Driver Version
- MongoDB 8.0
- MongoDB 7.0
- MongoDB 6.1
- MongoDB 6.0
- MongoDB 5.0
- MongoDB 4.4
- MongoDB 4.2
- MongoDB 4.0
- MongoDB 3.6

* - 1.12 to 1.17
- ⊛ [#8.0-support]_
- ✓
- ✓
- ✓
- ✓
- ✓
- ✓
- ✓
- ✓

* - 1.11
- ⊛
- ⊛
- ✓
- ✓
- ✓
- ✓
- ✓
- ✓
- ✓

.. [#8.0-support] {+driver-short+} v1.17 is partially compatible with {+mdb-server+} 8.0 but does not support client bulk write.

0 comments on commit f32f313

Please sign in to comment.