Drivers
22 results found
-
Allow to set default maxTimeMS for all cursors
By default, a cursor has no maxTimeMS.
We want to be able to set the default maxTimeMS so all cursors have it set. The current Java driver does not allow to set that default and each cursor needs it manually specified. I.e. a cursor factory or default options would be great.
Alternatively, it would also be great to have this as an option on the cluster itself.
16 votes -
CSFLE - Encryption of fields within an Array Object instead of whole Array
CSFLE - Can you provide Encryption of fields within an Array Object as part of mongo-crypt library in the future releases. current library encrypts the whole array and we are not able to do queries within the Array object.
10 votes -
Client-Side Automatic Field Encryption - Support contacting keyvault via Sock Proxy
When using Atlas from our application in our Datacenter, we are able to connect to it without issue.
When adding CSFLE, some HTTP calls are made to login on Azure and access the AKV. These HTTP calls must go through a proxy.
7 votes -
csfle support for zOS
Please modify your drivers so our java applications can encrypt and decrypt from the mainframe (zOS) UNIX environment. This missing feature is a road-block to our migration to Atlas.
We have multiple Java applications that run on an IBM mainframe. Those applications read and write into MongoDB collections, like inserting Mainframe data into MongoDB collections. The mongo-crypt driver for CSFLE does not work on the Mainframe UNIX environment.
Company policy states we have to encrypt all PHI/PII data prior to inserting the data into Atlas.
I had opened a support ticket with MongoDB and the final reply was you do…
7 votes -
It will be helpful to provide Sock Proxy support for our drivers
Some customers have security policy restriction to directly connect to Atlas. So it will be helpful for them to use sock proxy to connect.
6 votes -
Make driver aware of Autoscaling
Driver not aware of autoscaling (topology changes)
This is related to https://support.mongodb.com/case/01186544. We are experiencing exceptions when autoscaling is supposed to work flawlessly. The problem seems to be that the driver checks for a heartbeat every few seconds but fails to do so under heavy bursts of workloads, which we are currently facing.
When autoscaling kicks in, there should be a possibility to make the nodes aware that they have been scaled, so that when they communicate with the driver, they provide this information back to the driver. The driver would then explore the new topology first before throwing…
5 votes -
Short-lived AWS EKS token
Native support for short-lived AWS EKS token in MongoDB java driver, with the ability to refresh the key without any application downtime.
4 votes -
Take possible SerialName annotation into account for the query DSL (Kotlin)
Hey,
I'm talking about the kotlin-driver (there was no kotlin selectable in the dropdown, so I chose "Java" since the kotlin driver is based on the java driver).
When using the kotlin-driver with kotlinx.serialization it's a bit complicated to write refactoring-safe queries, because when using the KProperty.name reference like in the examples of the documentation a possible
@SerialName
annotation is not considered.I'd like an API matching what KMongo provided that you can just reference the KPropery, and the driver under the hood decides whether to choose just the
name
or the value of a possible SerialName annotation.3 votes -
Better handling of circular reference serialization in Java
Given 2 generic POJOs that include references to each other such as:
package com.example; public class Course { Student _student; public void setStudent(Student student) { _student = student; } public Student getStudent() { return _student; } } package com.example; public class Student { private Course _course; public void setCourse(Course course) { _course = course; } public Course getCourse() { return _course; } }
It would be useful to have a configuration mechanism to prevent Maximum serialization depth exceeded exceptions from being thrown.
…package com.example; import com.mongodb.ConnectionString; import com.mongodb.MongoClientSettings; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; import org.bson.codecs.configuration.CodecRegistry;
2 votes -
CSFLE - Enable automatic decryption of change streams
Currently change streams are disabled when a CSFLE MonogClient() session is used.
This is due to this CSFLE specifications.Mongocryptd will not support “collectionless” aggregation metadata sources, which read metadata that doesn’t pertain to a particular collection. The drivers should not contact mongocryptd for such commands, since they don’t have a particular schema to pass to mongocryptd, so it is the drivers’ ultimate responsibility to return an error to the application for the collectionless aggregation metadata sources:
$currentOp $changeStream for watching a database or the whole cluster $listSessions $listLocalSessions
Enable auto decryption and change streams in the presence of auto-encryption-settings
2 votes -
Add support for tlsAllowInvalidCertificates
We use mongodb replicaset with encryption in-flight enabled (tls=true), but we don't require client certificates. For mongosh and c# drivers there is a parameter tlsAllowInvalidCertificates which let us DONT use any certificates including root CA certificate.
But java driver does not support this parameter. which creates extra complexity to maintain java applications.
Can we add support of this parameter to java drivers as well ?
1 vote -
Hibernate and MongoDB
Hibernate OGM is not currently supported. It would be great to use Hibernate with MongoDB.
1 vote -
Move Client Model into a separate Maven artifact
Currently there's a large client library: mongodb-driver-core. My suggestion is to split it into 2 - moving out the com.mongodb.client.model package into a separate module.
The reason I need (and hopefully it's not just me) is because I'm trying to work with a software that allows passing a MongoDB JSON query as part of the request. But it then passes it to the actual Mongo instance itself. We don't have to connect to Mongo ourselves. It would be nice to have a library with all the eq() and the rest of the functions that we could use to then serialize…
1 vote -
JVM Driver - Implement CRaC interfaces into connection pool to allow for database access in an AWS Lambda function startup with SnapStart
See AWS Docs here - https://docs.aws.amazon.com/lambda/latest/dg/snapstart-runtime-hooks.html
Essentially, the pool should disconnect all open connections when saving state to prevent accidental connection reuse.
1 vote -
Closing a closed cursor should not throw
If a cursor is already closed, and
close()
is called, it should quietly do nothing. ThrowingIllegalStateException
is just rude.1 vote -
MongoChangeStreamCursor.getResumeToken() should be initialized on open
A newly opened change stream cursor returns null for
getResumeToken()
. This makes fault tolerance cumbersome and full of corner cases during the period before the cursor acquires its resume token, which can take a long time on a quiescent database.There exists a way to cause a change stream cursor to acquire a resume token immediately, even before it sees its first event, by calling
tryNext
. However, this also causes the cursor to block for the polling period (maxAwaitTime
), and shortening the polling period has other adverse effects.Fault tolerance and recovery logic would be significantly…
1 vote -
IDE Plugin
Provide a way for MongoDB users to interact with their data from an IDE
1 vote -
Have the drivers tell us the cost of network connectivity within a query
Have the drivers tell us 1. total query execution time. 2. how much of total query execution time was network connectivity/latency and 3. how much time was the query on the cluster.
This would then tell the developers the cost of network connectivity because right now there is no easy way to measure network connectivity impact to the overall execution time of the query.
1 vote -
Make The client model serializable
I am working on a mongodb connector for the Apache Flink project - https://flink.apache.org/
Internally, Flink is using java serialization to save the records it is working on in a state which in turn used to recover from failures etc, as well as for passing records between different tasks in the pipeline.
I have noticed the mongodb client model classes are not Serializable for instance, classes such as WriteModel https://github.com/mongodb/mongo-java-driver/blob/master/driver-core/src/main/com/mongodb/client/model/WriteModel.java and its subclasses or the different Options like ReplaceOptions https://github.com/mongodb/mongo-java-driver/blob/master/driver-core/src/main/com/mongodb/client/model/ReplaceOptions.javais there a reason for these classes to not be declared Serializable? Is there a way to contribute to the…
1 vote -
URI validation
I was building the URI in a spring configuration file as
spring.data.mongodb.uri=${MONGODB_URI}/test?retryWrites=true&w=majoritywhere MONGODB_URI came from a kubernetes secret (as it contains user & password)
somehow a new-line had slipped into the kubernetes secret, so the query was effectively asking for "fpos-dev-pl-1.kqybg.mongodb.net\n"
Besides learning how to correctly configure secrets, I learned in the process that neither Spring nor mongo was validating that spring.data.mongodb.uri was a well-formed URI and the application failed to start with error messages relating to not finding DNS and not being able to resolve the TXT record. This was very confusing.
The driver should accept a URI…
1 vote
- Don't see your idea?