Realm
- or
No existing idea results
- ~ No ideas found ~
82 results found
-
Realm.open() method creating realm when not exists, should be made optional
Realm.open() method used in Middle Tier to fetch data would not find the realm and is waiting for data sync to happen from the device. This method can create a new realm if it does not exist which is not applicable in the context of the Middle Tier apps. Requesting an update to have this default realm creation functionality to be made optional based on a supplied optional parameter.
2 votes -
Provide utility function to allow easier reading and usage of ObjectIds
Provide a utility that allows easier parsing of ObjectIds when they're returned to the client. As it stands, ObjectIds are returned as UInt8Arrays and cannot be readily used in the BSON.ObjectId constructor. Being able to retrieve specific items by ObjectId is necessary and the only way to do this dynamically (without knowing the hex string beforehand) is to retrieve the items and then use the returned id; however, as it stands, using the returned id is obfuscated and impractical.
I am now having to use the following workaround:
const toHexString = (bytes) =>
bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), "");client.find({_id: new BSON.ObjectId(toHexString(arr: Uint8Array)})
Provide a utility that allows easier parsing of ObjectIds when they're returned to the client. As it stands, ObjectIds are returned as UInt8Arrays and cannot be readily used in the BSON.ObjectId constructor. Being able to retrieve specific items by ObjectId is necessary and the only way to do this dynamically (without knowing the hex string beforehand) is to retrieve the items and then use the returned id; however, as it stands, using the returned id is obfuscated and impractical.
I am now having to use the following workaround:
const toHexString = (bytes) =>
bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, "0"),…2 votes -
Supporting backward compatibility
The requirement is backward compatibility. Let's say i have 3 apps from same family(i.e same app groups). These three apps access the same realm db using app group id.
For example - apps like gdrive, g docs and g sheet. All these app access/use the same db.
Similarly the app can use realm db and share the db with the app groups' apps.
as of now, If we update the main app's DB, we will have to set the new scheme version. if we set this, other apps will get crashed.
Note : Any changes in main app will need backward compatibility in the realm. Will it be good idea?
Thanks in advance
The requirement is backward compatibility. Let's say i have 3 apps from same family(i.e same app groups). These three apps access the same realm db using app group id.
For example - apps like gdrive, g docs and g sheet. All these app access/use the same db.
Similarly the app can use realm db and share the db with the app groups' apps.
as of now, If we update the main app's DB, we will have to set the new scheme version. if we set this, other apps will get crashed.
Note : Any changes in main app will need…
2 votes -
Next JS
I'd like to see an example integrating stitch with nextjs. I'm having some issues trying to do so...
2 votes -
GridFS in Browser SDK
I could really use file upload/download in my application. I'm attempting to build a PWA in Angular and although we could write a whole other, server-side, api-based application to support file upload/download, it would really benefit the team if this was available in the Browser SDK
2 votes -
Apple Combine Integration
Just like current support for RxSwift.
2 votes -
Would be great to have distinct as GraphQL operator
Currently GraphQL operator does not have distinct
https://www.mongodb.com/docs/atlas/app-services/graphql/types-and-resolvers/#input-types
Would be good to have this for improved performance. Currently we return all documents, and UI will perform the distinct operation which can be a problem if there are many documents in the collection.1 vote -
Realm C++ SDK cross-compile Qt(IOS)
It's always good idea to make it cross compile as core module can do.
1 vote -
Device Sync Access
Device sync is convenient but uncontrollable. For example, there are problems with database cache inconsistency, and occasionally synchronization errors may cause data rollback. These details cannot be controlled by programmers.
1 vote -
Enable calling a nested Atlas function from Swift SDK
Atlas app services allows organizing atlas functions into folders within a project, and you can call these nested functions from within other atlas functions. See this tip in your documentation for a quick explanation of this behavior: https://www.mongodb.com/docs/atlas/app-services/functions/#write-the-function-source-code
That said, it is not currently possible to call a nested atlas function from the Swift SDK (you can only call top-level functions from the Swift SDK). This means that all publicly accessible functions must be located in the top-level of my functions directory of my project, which makes my files very unorganized and hard to find the function I'm looking for.
It would be great if you could allow calling nested functions from the Swift SDK so that I can better organize my project files.
///////////
UPDATE Sep 21, 2023:
After some experimentation, it looks like you can already do this actually! Here's an example of how:guard let currentUser = realmApp.currentUser else { return }
let result = try await currentUser.functions[dynamicMember: "path/to/functionName"]([])I would just ask that you please update your documentation to include an example of calling a nested function like this so that other people are aware.
Atlas app services allows organizing atlas functions into folders within a project, and you can call these nested functions from within other atlas functions. See this tip in your documentation for a quick explanation of this behavior: https://www.mongodb.com/docs/atlas/app-services/functions/#write-the-function-source-code
That said, it is not currently possible to call a nested atlas function from the Swift SDK (you can only call top-level functions from the Swift SDK). This means that all publicly accessible functions must be located in the top-level of my functions directory of my project, which makes my files very unorganized and hard to find the function I'm looking for.
…
1 vote -
App service (app_id) security enhancement
App service (app_id) security enhancement.
I am developing an App and using Realm to store data on the device and to synchronize that with my Mongo DB. Realm features finally seems to be working fine, however
I was surprised that only the App id is needed to reach my App service programmatically from code. There is no APP secret or key pairs... It seemed even more vulnerable when experienced that the default password change urls and confirmation mail URLs has my APP id in them.So I dont see any gate which would prevent any of my apps users to get my app id and with that develop any code and reach my app application from mobile. I know there is the schema definition for example which must fit to my DB to have syncing and there are user permissions and limitations to ensure that a user can always reach only their own data , but I just dont feel this enough. I dont even want to get logs about bad schema definitions or such in my App service and investigate these cases if its my code or any other usage of my app by anyone.
So feature could be to handle app id in a more secure way. It could have a private part and a public one. And public features , like confirmation mail urls should have only the public part of that. Or to apply a new app secret data which would be also needed to reach an App service.
App service (app_id) security enhancement.
I am developing an App and using Realm to store data on the device and to synchronize that with my Mongo DB. Realm features finally seems to be working fine, however
I was surprised that only the App id is needed to reach my App service programmatically from code. There is no APP secret or key pairs... It seemed even more vulnerable when experienced that the default password change urls and confirmation mail URLs has my APP id in them.So I dont see any gate which would prevent any of my apps users to…
1 vote -
Termination protection for realm apps
it is very easy to delete a realm app, once deleted we cannot restore the app or recreate with same appId in this case we will be forced to publish new versions of apps with new app IDs. also there are no access roles when it comes to app services which is a big security hazard for apps in production as any member can delete an app by mistake.
My Ideas are:
1. Introduce role based access for app services
2. give a restore app option for deleted apps (30 days before permanently getting deleted)1 vote -
Support network proxy for Realm SDKs
I copy here the feedback received on a support case about the lack of network proxy support in the Realm SDKs. That feature might be of interest for other customers as well, particularly during a product development phase, when we are mainly working behind a corporate proxy.
"We deeply regret the inconvenience caused by the absence of proxy support in our SKDs at this time.
But, We have received an update from our production manager regarding the ==tentative plans== to address the APIs related to proxy settings for all of Realm software development kits (SDKs) in the upcoming quarters, specifically Q3 and Q4."
I copy here the feedback received on a support case about the lack of network proxy support in the Realm SDKs. That feature might be of interest for other customers as well, particularly during a product development phase, when we are mainly working behind a corporate proxy.
"We deeply regret the inconvenience caused by the absence of proxy support in our SKDs at this time.
But, We have received an update from our production manager regarding the ==tentative plans== to address the APIs related to proxy settings for all of Realm software development kits (SDKs) in the upcoming quarters, specifically…
1 vote -
Support for North Europe(Azure) for App Services
Our clusters are in North Europe, Ireland, and we plan to migrate our App Services (now located in West Europe, Ireland, AWS) to be located in West Europe, Netherlands, Azure.
Support for North Europe, Ireland, Azure, region for App Services would be much appreciated. That way our Data Services and App Services would be fully aligned and with a better performance.
1 vote -
Use Enums in Generated Realm Object Models
When the JSON Schema for a collection contains a string enumeration, like the following:
{ "properties": { "_id": { "bsonType": "objectId" }, "enumExample": { "bsonType": "string", "enum": [ "Foo", "Bar", "Baz" ], "title": "The type of entity that was favorited, such as a Workout." } }, "required": [ "_id", "enumExample" ], "title": "EnumExample" }
... the generated Realm Object Models don't take advantage of the limited possible values. I've generated all of the available languages, and they all generate variations of a simple
string
.Here's TypeScript as an example:
import Realm from "realm"; export type EnumExample = { _id: Realm.BSON.ObjectId; enumExample: string; }; export const EnumExampleSchema = { name: 'EnumExample', properties: { _id: 'objectId', enumExample: 'string' }, primaryKey: '_id', };
Ideally, the generated type would be narrowed. Even more ideal would be enforcement of that at runtime, but I'm less knowledgeable about how that could work!
import Realm from "realm"; export type EnumExample = { _id: Realm.BSON.ObjectId; enumExample: "Foo" | "Bar" | "Baz"; // <--- this is the only line that changed }; export const EnumExampleSchema = { name: 'EnumExample', properties: { _id: 'objectId', enumExample: 'string' }, primaryKey: '_id', };
When the JSON Schema for a collection contains a string enumeration, like the following:
{ "properties": { "_id": { "bsonType": "objectId" }, "enumExample": { "bsonType": "string", "enum": [ "Foo", "Bar", "Baz" ], "title": "The type of entity that was favorited, such as a Workout." } }, "required": [ "_id", "enumExample" ], "title": "EnumExample" }
... the generated Realm Object Models don't take advantage of the limited possible values. I've generated all of the available languages, and they all generate variations of a simple
string
.Here's TypeScript as an example:
…import Realm from "realm"; export type EnumExample = { _id:
1 vote -
Realm Query Language Documentation: Sort, Distinct, Limit
Realm Query Language Documentation located here https://www.mongodb.com/docs/realm/realm-query-language/#sort--distinct---limit needs updating with more specific examples of how to implement SORT, DISTINCT and LIMIT. The documentation also appears to be out of date (?)
1 vote -
Automatic Syncing of Referenced Objects
Please implement the feature to automatically sync referenced objects when you add a subscription to the parent object. This would mitigate the need for multilayer subscriptions at every step.
1 vote -
Custom Init Documentation
It would be great to have some documentation regarding how to go about custom initializing Realm objects in Swift. Most of the old docs which discussed the need/requirement for convenience init's has been removed. Also, most of the Git posts and replies date back to 2014/2015. So some clear guidance about using custom inits. (oh, and totally unrelated but some docs showing how to implement protocol's and codable Realm objects would be snappy! A LOT of folks ask about it on SO)
1 vote -
Documentation for the path parameter of Configuration
The
path
parameter on the Configuration seems to be an important parameter when it comes to sync. This value should not be set when using sync. See the link to a forum post for more information.Overall, the configuration parameters could use some documentation.
1 vote -
Provide a default webpage for password reset
Our request is that MongoDB provide a landing page for password resets. As is, when a password reset email is sent, the developer needs to have their own webpage/server spun up to handle that. Most other SDKs (Firebase, Couchbase etc) provide a page to handle that interaction by default, with an optional developer provided site for special branding or other functionality etc.
1 vote
- Don't see your idea?