case class ClientEncryption(wrapped: com.mongodb.reactivestreams.client.vault.ClientEncryption) extends Closeable with Product with Serializable
The Key vault.
Used to create data encryption keys, and to explicitly encrypt and decrypt values when auto-encryption is not an option.
- Since
2.7
- Alphabetic
- By Inheritance
- ClientEncryption
- Serializable
- Product
- Equals
- Closeable
- AutoCloseable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new ClientEncryption(wrapped: com.mongodb.reactivestreams.client.vault.ClientEncryption)
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def addKeyAltName(id: BsonBinary, keyAltName: String): SingleObservable[BsonDocument]
Adds a keyAltName to the keyAltNames array of the key document in the key vault collection with the given UUID.
Adds a keyAltName to the keyAltNames array of the key document in the key vault collection with the given UUID.
- id
the data key UUID (BSON binary subtype 0x04)
- keyAltName
the alternative key name to add to the keyAltNames array
- returns
an Observable containing the previous version of the key document or an empty Observable if no match
- Since
5.6
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def close(): Unit
- Definition Classes
- ClientEncryption → Closeable → AutoCloseable
- def createDataKey(kmsProvider: String, dataKeyOptions: DataKeyOptions): SingleObservable[BsonBinary]
Create a data key with the given KMS provider and options.
Create a data key with the given KMS provider and options.
Creates a new key document and inserts into the key vault collection.
- kmsProvider
the KMS provider
- dataKeyOptions
the options for data key creation
- returns
an Observable containing the identifier for the created data key
- def createDataKey(kmsProvider: String): SingleObservable[BsonBinary]
Create a data key with the given KMS provider.
Create a data key with the given KMS provider.
Creates a new key document and inserts into the key vault collection.
- kmsProvider
the KMS provider
- returns
an Observable containing the identifier for the created data key
- def createEncryptedCollection(database: MongoDatabase, collectionName: String, createCollectionOptions: CreateCollectionOptions, createEncryptedCollectionParams: CreateEncryptedCollectionParams): SingleObservable[BsonDocument]
Create a new collection with encrypted fields, automatically creating new data encryption keys when needed based on the configured
encryptedFields, which must be specified.Create a new collection with encrypted fields, automatically creating new data encryption keys when needed based on the configured
encryptedFields, which must be specified. This method does not modify the configuredencryptedFieldswhen creating new data keys, instead it creates a new configuration if needed.- database
The database to use for creating the collection.
- collectionName
The name for the collection to create.
- createCollectionOptions
Options for creating the collection.
- createEncryptedCollectionParams
Auxiliary parameters for creating an encrypted collection.
- returns
An Observable of the (potentially updated)
encryptedFieldsconfiguration that was used to create the collection. A user may use this document to configurecom.mongodb.AutoEncryptionSettings.getEncryptedFieldsMap. Produces MongoUpdatedEncryptedFieldsExceptionif an exception happens after creating at least one data key. This exception makes the updatedencryptedFieldsavailable to the caller.
- Annotations
- @Beta()
- Since
4.9
- Note
Requires MongoDB 7.0 or greater.
- See also
- def decrypt(value: BsonBinary): SingleObservable[BsonValue]
Decrypt the given value.
Decrypt the given value.
- value
the value to decrypt, which must be of subtype 6
- returns
an Observable containing the decrypted value
- def deleteKey(id: BsonBinary): SingleObservable[DeleteResult]
Removes the key document with the given data key from the key vault collection.
Removes the key document with the given data key from the key vault collection.
- id
the data key UUID (BSON binary subtype 0x04)
- returns
an Observable containing the delete result
- Since
5.6
- def encrypt(value: BsonValue, options: EncryptOptions): SingleObservable[BsonBinary]
Encrypt the given value with the given options.
Encrypt the given value with the given options. The driver may throw an exception for prohibited BSON value types
- value
the value to encrypt
- options
the options for data encryption
- returns
an Observable containing the encrypted value, a BSON binary of subtype 6
- def encryptExpression(expression: Document, options: EncryptOptions): SingleObservable[Document]
Encrypts a Match Expression or Aggregate Expression to query a range index.
Encrypts a Match Expression or Aggregate Expression to query a range index.
The expression is expected to be in one of the following forms:
- A Match Expression of this form:
{$and: [{<field>: {$gt: <value1>}}, {<field>: {$lt: <value2> }}]}}- An Aggregate Expression of this form:
{$and: [{$gt: [<fieldpath>, <value1>]}, {$lt: [<fieldpath>, <value2>]}] }}$gtmay also be$gte.$ltmay also be$lte.Only supported when queryType is "range" and algorithm is "Range".
- expression
the Match Expression or Aggregate Expression
- options
the options
- returns
an Observable containing the queryable encrypted range expression
- Since
4.9
- Note
Requires MongoDB 8.0 or greater
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def getKey(id: BsonBinary): SingleObservable[BsonDocument]
Finds a single key document with the given UUID (BSON binary subtype 0x04).
Finds a single key document with the given UUID (BSON binary subtype 0x04).
- id
the data key UUID (BSON binary subtype 0x04)
- returns
an Observable containing the single key document or an empty Observable if there is no match
- Since
5.6
- def getKeyByAltName(keyAltName: String): SingleObservable[BsonDocument]
Returns a key document in the key vault collection with the given keyAltName.
Returns a key document in the key vault collection with the given keyAltName.
- keyAltName
the alternative key name
- returns
an Observable containing the matching key document or an empty Observable if there is no match
- Since
5.6
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def keys: FindObservable[BsonDocument]
Finds all documents in the key vault collection.
Finds all documents in the key vault collection.
- returns
a find Observable for the documents in the key vault collection
- Since
5.6
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- def removeKeyAltName(id: BsonBinary, keyAltName: String): SingleObservable[BsonDocument]
Removes a keyAltName from the keyAltNames array of the key document in the key vault collection with the given id.
Removes a keyAltName from the keyAltNames array of the key document in the key vault collection with the given id.
- id
the data key UUID (BSON binary subtype 0x04)
- keyAltName
the alternative key name
- returns
an Observable containing the previous version of the key document or an empty Observable if there is no match
- Since
5.6
- def rewrapManyDataKey(filter: Bson, options: RewrapManyDataKeyOptions): SingleObservable[RewrapManyDataKeyResult]
Decrypts multiple data keys and (re-)encrypts them with a new masterKey, or with their current masterKey if a new one is not given.
Decrypts multiple data keys and (re-)encrypts them with a new masterKey, or with their current masterKey if a new one is not given.
- filter
the filter
- options
the options
- returns
an Observable containing the result
- Since
5.6
- def rewrapManyDataKey(filter: Bson): SingleObservable[RewrapManyDataKeyResult]
Decrypts multiple data keys and (re-)encrypts them with the current masterKey.
Decrypts multiple data keys and (re-)encrypts them with the current masterKey.
- filter
the filter
- returns
an Observable containing the result
- Since
5.6
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)
This is the documentation for the MongoDB Scala driver.
Driver structure
The mongodb scala driver.
To get started you need a MongoClient instance, either from a connection string or via a org.mongodb.scala.MongoClientSettings.
Notable packages include: