- Prioritize integration of local changes over remote changes. This shortens the time users may have to wait when committing local changes. Stop storing downloaded changesets in history. (realm/realm-core#5844)
- Greatly improve the performance of sorting or distincting a Dictionary's keys or values. The most expensive operation is now performed O(log N) rather than O(N log N) times, and large Dictionaries can see upwards of 99% reduction in time to sort. (realm/realm-core#5166)
- Cut the runtime of aggregate operations on large dictionaries in half. (realm/realm-core#5864)
- Improve performance of aggregate operations on collections of objects by 2x to 10x. (realm/realm-core#5864)
- If a case insensitive query searched for a string including an 4-byte UTF8 character, the program would crash. (realm/realm-core#5825, since v1.0.0)
Realm#writeCopyTo()
doesn't support flexible sync, and an exception is thrown. (realm/realm-core#5798, since v10.10.0)- Asymmetric object types/classes cannot be used with partition-based sync, and an exception is thrown. (realm/realm-core#5691, since v10.19.0)
- If you set a subscription on a link in flexible sync, the server would not know how to handle it. (realm/realm-core#5409, since v10.10.1)
- Fixed type declarations for aggregation methods (min, max, sum, avg) to reflect implementation. (4994, since v2.0.0)
- React Native >= v0.64.0
- Atlas App Services.
- Realm Studio v12.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Fixed pinning of the NDK used to build our prebuilt binaries for Android. Our previous version, Realm JS v10.21.0 was compiled with NDK 25.1.8937393, which could result in unpredictable crashes, since this needs to match the one being used by React Native. ((#4910)[realm#4910], since v10.21.0)
- React Native >= v0.64.0
- Atlas App Services.
- Realm Studio v12.0.0.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Using Realm Core v12.6.0.
- Automatic handling backlinks for schema migrations where a class/object type changes to being embedded. (realm/realm-core#5737)
- Improve performance when a new Realm file connects to the server for the first time, especially when significant amounts of data has been written while offline.
- Improve the performance of the sync changeset parser, which speeds up applying changesets from the server.
- Fixed dangling pointer in binary datatype handling in Node (#3781, since v10.5.0)
- Fixed undefined behaviour on queries involving a constant and an indexed property on some property types like UUID and Date. (realm/realm-core#5753, since v10.20.0)
- Fixed an exception
fcntl() with F_BARRIERFSYNC failed: Inappropriate ioctl for device
when running with MacOS on an exFAT drive. (realm/realm-core#5789, since v10.18.0) - Syncing of a Decimal128 with big significand could result in a crash. (realm/realm-core#5728, since v10.0.0)
discardLocal
client reset mode will now wait for flexible sync Realms to be fully synchronized before beginning recovery operations. (realm/realm-core#5705, since v10.11.0)
- React Native >= v0.64.0
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Upgraded Realm Core from v12.5.1 to v12.6.0. (#4865)
- Updated C++
clang-format
version to match newer MacOS default (#4869)
- Introducing query support for constant list expressions such as
fruit IN {'apple', 'orange'}
. This also includes general query support for list vs list matching such asNONE fruits IN {'apple', 'orange'}
. (#2781 and #4596) - Allow multiple anonymous sessions. (realm/realm-core#4607)
- Fixed issue where React Native apps on Android would sometimes show stale Realm data until the user interacted with the app UI. (#4389, since v10.0.0)
- Reduced use of memory mappings and virtual address space. (realm/realm-core#5645)
- Fixed a data race when committing a transaction while multiple threads are waiting for the write lock on platforms using emulated interprocess condition variables (most platforms other than non-Android Linux). (realm/realm-core#5643)
- Fixed a data race when writing audit events which could occur if the sync client thread was busy with other work when the event Realm was opened. (realm/realm-core#5643)
- Fixed some cases of running out of virtual address space (seen/reported as mmap failures). (realm/realm-core#5645)
- Fixed the client reset callbacks not populating the Realm instance arguments correctly in some cases. (#5654, since v10.11.0)
- Decimal128 values with more than 110 significant bits were not synchronized correctly with the server. (realm/realm-swift#7868, since v10.0.0)
- Fixed an incorrect git merge in the Xcode project from RN iOS. (#4756, since v10.19.5)
- Fixed detection of emulator environments to be more robust. Thanks to Ferry Kranenburg for identifying the issue and supplying a PR. (#4784)
- Opening a read-only synced Realm for the first time could lead to
m_schema_version != ObjectStore::NotVersioned
assertion. - Fixed an offset error in Node buffer handling (#3781, since v10.0.0)
- React Native >= v0.64.0
- Atlas App Services.
- Realm Studio v12.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Updated ccache build scripts to be location agnostic. (#4764)
- Upgraded Realm Core from v12.3.0 to v12.5.1. (#4753 and [#4763)
- Upgraded React Native integration tests app to React Native v0.68.2. (#4583)
- Upgrading
react-native-fs
to avoid a peer dependency failure. (#4709) - Upgraded React Native integration tests app to React Native v0.69.1. (#4713)
- Upgraded Realm Example app to React Native v0.69.1. (#4722)
- Fixed a crash on Android when an error was thrown from the flexible sync
initialSubscriptions
call. (#4710, since v10.18.0) - Added a default sync logger for integration tests. (#4730)
- Fixed an issue starting the integration test runner on iOS. (#4742)
- Fixed dark mode logo in README.md. (#4780)
- Migrated to
std::optional
andstd::nullopt
. - Disabled testing on iOS and Catalyst on legacy CI system.
- None.
- Fixed inadvertent change to minimum Android Gradle plugin version. (#4706, since v10.19.4)
- Atlas App Services.
- Realm Studio v12.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Using Realm Core v12.3.0.
- Allow flexible sync with discard local client resets. (realm/realm-core#5404)
- Setting up a
clientResetAfter
callback could lead to a fatal error with the messageRealm accessed from incorrect thread
. (#4410, since v10.11.0) - Improved performance of sync clients during integration of changesets with many small strings (totalling > 1024 bytes per changeset) on iOS 14, and devices which have restrictive or fragmented memory. (realm/realm-core#5614)
- Fixed a bug that prevented the detection of tables being changed to or from asymmetric during migrations. (realm/realm-core#5603, since v10.19.3)
- Fixed a bug with handling
null
values intoJSON
. ([#4682, since 10.19.3)
- Atlas App Services.
- Realm Studio v12.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Upgraded Realm Core from v12.2.0 to v12.3.0. (#4689)
- Fixed analytics tests to reflect the fact that framework versions are read from node_modules, not package.json. (#4687)
- Adding response type checking to the realm-app-importer. (#4688)
- Updated integration test app to target Android SDK 31. (#4686)
- Enabled debugging Realm C++ code in integration test app. (#4696)
- Fixed types for flexible sync client reset and added a test. (#4702)
- None.
- Realm JS can now be installed in environments using npm binary mirroring (#4672, since v10.0.0).
- Asymmetric sync now works with embedded objects. (realm/realm-core#5565, since 10.19.0)
- Fixed an issue on Windows that would cause high CPU usage by the sync client when there are no active sync sessions. (realm/realm-core#5591, since v1.1.1)
- Fixed an issue setting a
Mixed
from an object tonull
or any other non-link value. Users may have seen exception ofkey not found
or assertion failures such asmixed.hpp:165: [realm-core-12.1.0] Assertion failed: m_type
when removing the destination link object. (realm/realm-core#5574, since v10.5.0) - Fixed a data race when opening a flexible sync Realm. (realm/realm-core#5573, since v10.19.0)
- Atlas App Services.
- Realm Studio v12.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- None.
- Fixed incorrect
@realm.io/common
version inpackage.json
causing install issues for users upgrading from older version of therealm
npm package ([#4657, since v10.18.0])
- Atlas App Services.
- Realm Studio v12.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Upgrade Example to RN v0.68.2
- Upgrade dependencies of the Realm Web integration tests
- Throw instances of
Error
instead of plain objects on app errors. - Make integration tests on React Native Android connect to host machine by default
- None.
- None.
- Atlas App Services.
- Realm Studio v12.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Removed support for node.js v12 and earlier versions and bumped to Node-API v5.
- Fix FLX error scenario tests.
- Fixed a bug preventing opening a synced Realm as a local Realm. (since v10.18.0)
- Creating an object for a class that has no subscriptions opened for it will throw an exception. (realm/realm-core#5488)
- Added support asymmetric sync. Object schemas can be marked as
asymmetric
when opening the Realm. Upon creation, asymmetric objects are sync'd unidirectionally and cannot be accessed locally. Asymmetric sync is compatible with flexible sync. (#4503)
const Person = {
name: "Person",
asymmetric: true, // this marks "Person" as asymmetric
primaryKey: "id",
properties: {
id: "objectId",
name: "string",
age: "int",
},
};
- Add canonical schema type for returned schemas. (#4580)
- Fixed invalid type for schema properties. (#4577)
- FLX sync subscription state changes will now correctly be reported after sync progress is reported. (realm/realm-core#5553, since v10.18.0)
- Atlas Device Sync.
- Realm Studio v12.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Upgraded Realm Core from v12.0.0 to v12.1.0.
- Fix for updated FLX sync error message. (#4611)
- Updated build script to use Xcode 13.1 to match latest Apple App Store compatibility. (#4605)
- Removed unused scripts
scripts/download-realm.js
,scripts/find-ios-device.rb
,scripts/find-ios-runtime.rb
,scripts/test-android.js
andscripts/xcode-download-realm.sh
. (#4402)
-
Switch to building xcframeworks with Xcode 13.1. Xcode 12 is no longer supported.
-
Added an
initialSubscriptions
option to thesync
config, which allows users to specify a subscription update function to bootstrap a set of flexible sync subscriptions when the Realm is first opened (or every time the app runs, using thererunOnOpen
flag). (#4561[realm#4561])Example usage:
const thirtyDaysAgo = new Date(new Date().setDate(new Date().getDate() - 30)); const config = { // ... sync: { flexible: true, user, initialSubscriptions: { update: (realm) => { realm.subscriptions.update((subs) => { subs.add( realm.objects("Person").filtered("dateOfBirth > $0", thirtyDaysAgo), // This is a named subscription, so will replace any existing subscription with the same name { name: "People30Days" } ); }); }, rerunOnStartup: true, }, }, };
- Flexible sync would not correctly resume syncing if a bootstrap was interrupted. (realm/realm-core#5466, since v10.12.0)
- The sync client may upload corrupted internal data leading to a fatal error from the sync server. (realm/realm-core#5460, since v10.16.0)
- Proxied
Realm.Results
(e.g. as returned fromuseQuery
in@realm/react
) could not be used withMutableSubscriptionSet.add
/remove
(#4507, since v10.12.0) - In queries
NONE x BETWEEN ...
andANY x BETWEEN ...
had incorrect behavior, so it is now disallowed. (realm/realm-core#5508, since v10.15.0) - Partially fix a performance regression in write performance on Apple platforms, but still slower than pre-10.12.0 due to using more crash-safe file synchronization. (#4383 and realm/realm-swift#7740, since v10.12.0).
- FLX sync will now ensure that a bootstrap from the server will only be applied if the entire bootstrap is received - ensuring there are no orphaned objects as a result of changing the read snapshot on the server. (realm/realm-core#5331)
- MongoDB Realm Cloud.
- Realm Studio v12.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Upgraded Realm Core from v11.15.0 to v12.0.0.
- Upgraded BAAS image to 2022-05-23.
- Fixed an intermittent issue with flexible sync test suite. (#4590, since v10.12.0)
- Bump the version number for the lockfile used for interprocess synchronization. This has no effect on persistent data, but means that versions of Realm which use pre-12.0.0 Realm Core cannot open Realm files at the same time as they are opened by this version. Notably this includes Realm Studio, and Realm Core v11.1.2/Realm JavaScript v10.17.0 (the latest at the time of this release) cannot open Realm files which are simultaneously open in the iOS simulator.
- Add ability to listen to changes to
Realm.App
andRealm.User
. (#4455)
- Fixed issue where React Native apps would sometimes show stale Realm data until the user interacted with the app UI. (#4389, since v10.0.0)
- Fixed race condition leading to potential crash when hot reloading an app using Realm Sync. (4509, since v10.12.0)
- Updated build script to use Xcode 12.4 to ensure xcframework is Bitcode compatibile with older versions. (#4462, since v10.0.0)
- Added missing type definitions for
newRealmFileBehavior
andexistingRealmFileBehavior
when opening a flexible sync Realm (#4467, since v10.12.0) - Adding an object to a Set, deleting the parent object, and then deleting the previously mentioned object causes crash (#5387, since v10.5.0)
- Synchronized Realm files which were first created using SDK version released in the second half of August 2020 would be redownloaded instead of using the existing file, possibly resulting in the loss of any unsynchronized data in those filesi. (since v10.10.1)
- Fixed buildtime error where our package would be ignored due to use of the deprecated
podspecPath
andsharedLibraries
keys in thereact-native.config.js
. (#4553) - Fixed flexible sync configuration types to be compatible with Typescript when
strict
mode is disabled. (#4552)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Improved documentation for
Realm.copyBundledRealmFiles
. - Refactored notifications to use a
NotificationBucket
API, enabling JS objects to be garbage collected on teardown of the JS engine. (#4550) - Updated a test to be ready for node 18.
- Fixed a typo in the
testRealmConversions
test which prevented some test scenarios from executing. - Upgraded Realm Core from v11.14.0 to v11.15.0.
- None.
- Fixed various corruption bugs in Realm Core when encryption is used. (#5360, since v11.8.0)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Upgraded Realm Core from v11.13.0 to v11.14.0.
- None.
- Logging out too quickly can cause an error if the timeout behavior is set to
openLocalRealm
(#4453, since v10.0.0) - Released
realm-network-transport
to adopt the changes published to fixglobalThis
undefined issue for older devices. (#4350, since v10.0.0) - Fixed flexible sync crash when updating subscriptions after token expiry. (#4421, since v10.12.0)
- Fixed remaining uses of
globalThis
undefined issue, causing Realm to not load on iOS 11/12. (#4350)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Update token in integration test.
- Upgraded Realm Core from v11.12.0 to v11.13.0.
- Added a failing test case for Node.js scripts failing to exit cleanly (#4556)
Realm.writeCopyTo()
can now be invoked with aRealm.Configuration
as parameter, which will create a copy of the Realm that conforms to the given configuration -- this allows for a much wider range of conversions between synced/local Realms and encrypted/non-encrypted Realms. (#3146)- Added
Realm.Configuration.onFirstOpen
to populate a new Realm with initial data.
- Fixed issue that could cause mangling of binary data on a roundtrip to/from the database (#4278, since v10.1.4).
- Fixed
globalThis
undefined issue for older devices. (#4350) - Fixed a fatal sync error
Automatic recovery failed
during DiscardLocal client reset if the reset notifier callbacks were not set to something. (realm/realm-core#5223, since v10.10.0) - Changed parsed queries using the
between
operator to be inclusive of the limits, a closed interval instead of an open interval. This is to conform to the published documentation and for parity with NSPredicate's definition. (realm/realm-core#5262, since v10.7.0) - If a list of objects contains links to objects not included in the synchronized partition, the indices contained in the listener callback could be wrong. (realm/realm-core#5164, since v10.0.0)
- Converting floats/doubles into Decimal128 would yield imprecise results. (realm/realm-core#5184, since v6.1.3)
- Using accented characters in class and property names may end the sync session (realm/realm-core#5196, since v10.3.0-rc.1)
- Waiting for upload after opening a bundled Realm file could hang. (realm/realm-core#5277, since v10.10.0)
- Realm Query Language would not accept
in
as a property name. (realm/realm-core#5312) - Fixed an issue that could lead to a crash with exceptions like
'KeyNotFound'
. (realm/realm-core#5283, since v6.0.0) - Refreshing the user profile after the app has been destroyed leads to a failure. (realm/realm-dotnet#2800
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Upgraded Realm Core from v11.9.0 to v11.12.0.
- Fixed analytics to read the
realm/package.json
when installing from the root of the package. - Changed token for analytics.
- Fixed React Native Android integration test harness to read only one pid when starting logcat.
- Added a script to generate JS template apps from TS, and updated JS templates. (4374)
- Added
Realm.App#deleteUser(user)
to delete a sync user from a MongoDB Realm app. (#4006) - Extended
Realm.writeCopyTo()
functionality to allow conversion of non-synced Realms to synced Realms. (#4136)
- Fixed a crash when using
Proxy
with aRealm.Results
object. (#4257) - JWT metadata is now populating
Realm.User.profile
. (#3268, since v10.0.0) - Security upgrade of
prebuild-install
. (#4281) - UserIdentity metadata table will no longer occationally grow indefinitely. (realm/realm-core#5152, since v10.0.0)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Upgraded Realm Core from v11.8.0 to v11.9.0.
- Fixed documentation publishing. (#4276)
- Enabled mixed tests for flexible sync. (#4279)
- Fixed an issue where some references were not updated from
Subscriptions
toSubscriptionSet
. (#4298) - Submitting analytics as a postinstall script.
This release adds beta support for flexible sync. See the backend and SDK documentation for more information. Please report any issues with the beta through Github.
Please note the following API changes from the 10.12.0-beta.1
release of Flexible Sync:
Realm.getSubscriptions()
is nowRealm.subscriptions
Subscriptions
has been renamed toSubscriptionSet
, andMutableSubscriptions
toMutableSubscriptionSet
SubscriptionSet.snaphot()
has been removed, in favour of allowing aSubscriptionSet
to be accessed as an arraySubscriptionSet.find()
has been renamed toSubscriptionSet.findByQuery()
to avoid a naming confict with theArray.find
methodSubscriptionSet.empty
has been renamed toSubscriptionSet.isEmpty
- The result of
Realm.subscriptions.update
can beawait
ed to avoid a separate call towaitForSynchronization
- The spelling of
SubscriptionState.Superceded
was corrected toSubscriptionState.Superseded
- Support arithmetic operations (+, -, *, /) in queries. Operands can be properties and/or constants of numeric types (
int
,float
,double
orDecimal128
). You can now say something like(age + 5) * 2 > child.age
. Realm.writeCopyTo()
now supports creating snapshots of synced Realms, thus allowing apps to be shipped with partially-populated synced databases. (#3782- Added beta support for flexible sync (#4220).
- Adding support for passing the
arrayFilters
parameter when updating documents using the remote MongoDB client. (#4248)
- Opening a Realm with a schema that has an orphaned embedded object type performed an extra empty write transaction. (realm/realm-core#5115, since v10.5.0)
- Schema validation was missing for embedded objects in sets, resulting in an unhelpful error being thrown if the user attempted to define one. (realm/realm-core#5115)
- Fixed a crash when closing an Electron app with a custom sync error handler (#4150
- Adding data from authentication providers, to be included in the
User#profile
object. (#3268, since v10.0.0)
- Removed
deprecated-react-native-listview
from root package.json - MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Upgraded Realm Core from v11.7.0 to v11.8.0.
- Removed
.dir-locals.el
. Please configure Emacs to useclang-format
e.g. https://github.com/SavchenkoValeriy/emacs-clang-format-plus. - Enabled
strictNullChecks
for integration tests - Updated release instructions
- Added templates for Expo (https://www.npmjs.com/package/@realm/expo-template-js and https://www.npmjs.com/package/@realm/expo-template-ts).
- A new mode
discardLocal
for client reset has been introduced. The old behavior is supported (but deprecated) through themanual
mode. The new mode will discard any local changes, and a fresh copy of the Realm will be downloaded. An example of the configuration:
const config = {
// ...
sync: {
// ...
clientReset: {
mode: "discardLocal",
clientResyncBefore: (realm) => { /* ... */ },
clientResyncAfter: (beforeRealm, afterRealm) => { /* ... */ },
},
},
};
- If the option
user
in a sync configuration was not aRealm.User
object could lead to a crash. (#1348, since v10.0.0) @sum
and@avg
queries on Dictionaries of floats or doubles used too much precision for intermediates, resulting in incorrect rounding. (since v10.3.0-rc.1)- Queries of the form
link.collection.@sum = 0
wherelink
isnull
matched whencollection
was a List or Set, but not a Dictionary (realm/realm-core#5080, since v10.5.0) - Fix Realm for versions of Node greater than 14. (#4149)
- Type methods defined in
collection-methods.js
no longer throwRealm not defined
errors in some environments (#4029, #3991, since v10.5.0) - Fixed a bug in
Realm.App.emailPasswordAuth.callResetPasswordFunction()
which could lead to the errorError: Error: resetDetails must be of type 'object', got ([email protected])
. (#4143, since v10.10.0) - Using a custom logger on Sync sessions could trigger a segmentation fault. (#4121, since v10.5.0)
- Fixed
MongoDBCollection#watch
on React Native (realm#3494, since v10.0.0). To use this, you must install:- Polyfills for
fetch
,ReadableStream
andTextDecoder
: https://www.npmjs.com/package/react-native-polyfill-globals - Babel plugin enabling async generator syntax: https://npmjs.com/package/@babel/plugin-proposal-async-generator-functions
- Polyfills for
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Upgrade
ReactTestApp
to RN 0.66.3 and to use the metro bundler to resolve links to relam and test code. - Add
.clang-format
file for formatting C++ code, formatted all existing code and added a lint check for C++. - Updated Docker URL to new canonical URL of
ghcr.io
- Excluding the
react-native/android/build
directory from the NPM package. - Removed the
examples/ReactExample
app. See FindOurDevices for a modern example app. - Removed undocumented, outdated and unused
ListView
component exported viarealm/react-native
. See @realm.io/react for a modern integration with React. - Sending the correct version when submitting analytics requests on Android, as a side-effect of #4114.
- Removed TypeScript dependency from individual sub-packages so all packages share the root version, and updated the root TypeScript version to
4.5.2
. - Consuming TypeScript directly from the integration test environments, instead of transpiling first.
- Adding a new private
@realm/metro-config
package to share this across any React Native app in our repo that reference other packages via symbolic links. - Added a performance test suite to the integration test.
- Upgraded Realm Core from v11.6.1 to v11.7.0.
- None.
- A sync user's Realm was not deleted when the user was removed if the Realm path was too long such that it triggered the fallback hashed name (this is OS dependant but is 300 characters on linux). (realm/realm-core#4187, since v10.0.0-beta.10)
- Fixed a bug where opening a synced Realm would hang if the device's clock is more than 30 minutes fast. (realm/realm-core#4941, since v10.0.0)
- Fixed a bug where an app hangs if it tries to connect after being offline for more than 30 minutes. (#3882, since v10.0.0)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Upgraded Realm Core from v11.6.0 to v11.6.1.
EmailPasswordAuth
method calls using positional arguments are being deprecated in favour of using a single object dictionary argument. See "Examples of how to update to the new API" in the description of realm#4041 for examples of how to update each method call.- The existing methods will be removed in the next major version.
- The existing methods will continue to work but will output a deprecation warning to the console in development mode when used, of the form:
Deprecation warning from Realm: resetPassword(password, token, token_id) is deprecated and will be removed in a future major release. Consider switching to resetPassword({ password, token, token_id })
.
- New consistent API for
EmailPasswordAuth
methods, using a single object dictionary rather than positional arguments, to fix inconsistencies and make usage clearer. The existing API is being deprecated (see above). (#3943)
- Aligned implementation with API documentation and TS defs:
timeOutBehavior
should be"openLocalRealm"
. (since v10.0.0) - Using
sort
,distinct
, orlimit
as property name in query expression would cause anInvalid predicate
error. (realm/realm-java#7545, since v10.0.2) - Fixed a rare assertion failure or deadlock when a sync session. (realm/realm-core#4931)
- Fixed a rare segfault which could trigger if a user was being logged out while the access token refresh response comes in. (realm/realm-core#4944, since v10.0.0)
- Fixed a user being left in the logged in state when the user's refresh token expires. (realm/realm-core#4882, since v10.0.0)
- Allow for
EPERM
to be returned fromfallocate()
. This improves support for running on Linux environments with interesting file systems, like AWS Lambda. Thanks to @ztane for reporting and suggesting a fix. (realm/realm-core#4957 and #1832) - Sync progress notifiers would not trigger when the downloadable bytes size would equal 0. (realm/realm-core#4989, since v10.3.0-rc.1)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Upgraded Realm Core from v11.4.1 to v10.6.0.
- Added use of ccache in build scripts, XCode projects and the integration tests GHA workflow.
- Dropped using
install-local
in the integration tests, in favour of a more involved Metro configuration. - Added combined type definition for Realm.object and Realm.objectForPrimaryKey so they can be cleanly wrapped.
- Changed Apple/Linux temporary directory to default to the environment's
TMPDIR
if available. This is primarily used by tests. (realm/realm-core#4921) - Added colorized compiler diagnostics if using Ninja.
- Minor speed improvement in property setters. (#4058 and realm/realm-core#5011)
- None
- Address memory leak in the
Mixed
implementation affecting all datatypes (#3913, #4007, #4016, since v10.5.0)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- None
- None
- Remove usage of deprecated features for Gradle 7 (#3946, #3879)
- A
sync
configuration value ofundefined
now behaves the same as a missingsync
configuration (#3999, since v2.2.0) - Empty string is now a valid
partitionValue
(#4002, since v10.0.0)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Updated
README.md
andbuilding.md
with updated instructions on building from source. - Changed logo to a 'dark-mode' aware SVG (#4020)
- Added workaround for crash when closing Realm in Jest test on Node 12 (#4025, since v10.8.0)
- Realm JS now support retrying Custom Confirmation functions for Realm Sync users via
retryCustomConfirmation
. (#3032 since v10.0.0)
- React Native templates now transfer hidden files into new projects(#3971)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Lint react-native templates and ensure they are checked by the CI.
- Using Realm Core v11.4.1.
- Small fix to Jenkins to publish Docker image for Raspberry Pi.
- Synchronized Realms are no longer opened twice, cutting the address space and file descriptors used in half. (realm/realm-core#4839)
Realm.write()
now returns callback return value. (#2237)- Added
Realm.Object.getPropertyType()
which returns the type of the property. For a mixed property, the underlying type will be returned. (#3646)
- Fixed issue when opening a synced Realm is prevented by assertion
m_state == SyncUser::State::LoggedIn
. (realm/realm-core#4875, since v10.0.0) - Fixed slow teardown of Realm by which interfered with Jest. (#3620 and #2993, since v10.0.0)
- If an object with a null primary key was deleted by another sync client, the exception
KeyNotFound: No such object
could be triggered. (realm/realm-core#4885, since v10.0.0) - Improved the error message when trying to use an array as value for a dictionary. (#3730, since v10.6.0)
- When opening a synced Realm with a
Realm.Dictionary
property, an exception similar toProperty 'Dictionary.columnFloatDictionary' has been made optional
might be thrown. (since v10.6.0)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Upgraded Realm Core from v11.3.1 to v11.4.1. (#3942)
- Extend Jest test runner to cover opening and closing of a Realm.
- Disable analytics if the
CI
environment variable is set to some value.
- Sync logs now contain information about what object/changeset was being applied when the exception was thrown. (realm/realm-core#4836)
- Query parser now accepts
BETWEEN
operator. It can be used likeAge BETWEEN {20, 60}
which means "'Age' must be in the open interval ]20;60[". (realm/realm-core#4268 and #805) - Changed error code for wrong username/password to 50. (realm/realm-core#4581)
- Fixed history corruption when replacing an embedded object in a list. (realm/realm-core#4845, since v10.0.0)
- Fixed
Invalid data type
assertion failure in the sync client when adding an existingmixed
property when it already exists locally. (realm/realm-core#4873, since v10.5.0) - Fixed a crash when accessing the lock file during deletion of a Realm on Windows if the folder does not exist. (realm/realm-core#4855)
- Fixed a crash when an object which is linked to by a
mixed
is invalidated (sync only). (#4828, since 10.5.0) - Fixed a rare crash when setting a mixed link for the first time which would trigger if the link was to the same table. (#4828, since v10.5.0)
- User profile now correctly persisted between runs. (#3561, since v10.0.0)
- When updating a property of list of embedded objects, previous value is not cleared and might lead to an inconsistent state (sync only). (realm/realm-core#4844)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Pinning BSON to v4.4.1.
- Disable analytics if
NODE_ENV
is set to"production"
or"test"
. SinceNODE_ENV
is used by many commonly used JavaScript frameworks, this should help us to get a better signal-to-noise ratio in our builders' statistics. - Upgraded Realm Core v11.2.0 @ 5e128e9f to v11.3.1.
- Switch testing to node v12.22.5.
- Enabled CI testing on Android.
- None.
- Fixed a crash when an object which is linked to by a
mixed
is invalidated (sync only). (#4828, since 10.5.0) - Fixed a rare crash when setting a mixed link for the first time which would trigger if the link was to the same table. (#4828, since v10.5.0)
- User profile now correctly persisted between runs. (#3561, since v10.0.0)
- When updating a property of list of embedded objects, previous value is not cleared and might lead to an inconsistent state (sync only). (realm/realm-core#4844)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- None.
- Fixed TypeScript definition of
Realm.Dictionary.remove()
. (#3853 since v10.6.0) - Fixed
Realm.Object#toJSON
as it threwRight-hand side of 'instanceof' is not an object
. (#3872 since v10.6.0) - Fixed
Realm not defined
error experienced when usingRealm.Set
iterators under Jest (#3843 since v1.5.0-beta1)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Add Jenkins job for testing Catalyst
- Metrics is no longer submitted to MixPanel, but uploaded to S3.
- Ran --fix for linters in all sub-packages of the repository.
- Add step for Catalyst integration tests
- Using Realm Core v11.0.4 @ commit be69223 for Catalyst support
- Dictionary support has been enabled.
- Support for Catalyst. (#3750)
- Fixed an issue preventing opening a Realm with
disableFormatUpgrade
and async
configuration, reverting part of #3772. (#3830, since v10.4.2) - Fixed a recursive loop which would eventually crash trying to refresh a user app token when it had been revoked by an admin. Now this situation logs the user out and reports an error. (realm/realm-core#4745, since v10.0.0)
- Fixed a crash after clearing a list or set of Mixed containing links to objects. (realm/realm-core#4774, since the beginning of v11)
- Fixed an endless recursive loop that could cause a stack overflow when computing changes on a set of objects which contained cycles. (#4770, since the beginning of v11)
instanceof Realm.Dictionary
will always befalse
on React Native. (#3836)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format v22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Using Realm Core v11.0.4 @ commit be69223 for Catalyst support
- Upgraded test app to RN 0.64.1
NOTE: Bump file format version to 22. NO DOWNGRADE PATH IS AVAILABLE.
- Added UUID types. (#3244)
- Added Set type (#3378).
- Adding Mixed types. (#3389)
- Added
ssl
option toRealm.App.Sync
configuration.
- Performance regression for some scenarios of writing/creating objects with a primary key. (realm/realm-core#4522)
- Async callbacks not triggered on Android 12 emulator. (realm/realm-core#4666)
- Fixed the string based query parser not supporting integer constants above 32 bits on a 32 bit platform. (#3773, since v10.4.0)
- Fixed the naming of
url
(nowbaseUrl
) property on an app config to match the TypeScript declaration and other SDKs. (#3612)
- MongoDB Realm Cloud.
- Realm Studio v11.0.0.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.5.x series.
- File format: generates Realms with format 22 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 or later for synced Realms).
- Set iterators do not work under Jest (#3788).
- Properties of type dictionary is temporarily disabled and will be reintroduced.
- Improved the integration test harness to increase developer experience, enable tests needing a server and importing Realm apps on demand. (#3690)
- Migrated integration tests to GitHub Actions. (#3690)
- Upgraded to Realm Core from v11.0.0-beta.5 to v11.0.3. (#3785)
- Added npm script to generate internal Doxygen documentation.
- Removed private methods
Realm._objectForObjectId()
andRealm.Object._objectId()
. - Refactor the string formatting logic for logging, reducing the compiled size of the library.
- Omitting zlib when building for Node.js on Windows, since this is no longer provided by the platform. (#3787)
NOTE: Realm file format is likely to break and you CAN NOT revert back to the previous file format - DATA WILL BE LOST!!!! NOTE: Sync protocol version 4: CANNOT SYNC WITH MONGODB REALM CLOUD. NOTE: Bump file format version to 21. NO DOWNGRADE PATH IS AVAILABLE.
- None.
- Set didn't export
objectType
to Realm.schema when it contained scalar types. - Fixed the naming of
url
(nowbaseUrl
) property on an app config to match the TypeScript declaration and other SDKs. (#3612) - Add explicitly support for Nullable/Undefined values for the Mixed type. (#3731)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v21 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Improved the integration test harness to increase developer experience, enable tests needing a server and importing Realm apps on demand. (#3690)
- Migrated integration tests to GitHub Actions. (#3690)
- Upgraded to Realm Core v11.0.0-beta.5.
NOTE: This is an internal release and SHOULD NOT be used. NOTE: Realm file format is likely to break and you CAN NOT revert back to the previous file format - DATA WILL BE LOST!!!! NOTE: Sync protocol version 4: CANNOT SYNC WITH MONGODB REALM CLOUD. NOTE: Bump file format version to 21. NO DOWNGRADE PATH IS AVAILABLE.
- None.
- Performance regression for some scenarios of writing/creating objects with a primary key. (realm/realm-core#4522)
- Observing a dictionary holding links to objects would crash. (realm/realm-core#4711, since v11.0.0-beta.1)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format 21 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Improved the integration test harness to increase developer experience, enable tests needing a server and importing Realm apps on demand. (#3690)
- Migrated integration tests to GitHub Actions. (#3690)
- Upgraded to Realm Core from v11.0.0-beta.5 to v11.0.0-beta.6.
- Added npm script to generate internal Doxygen documentation.
- Removed private methods
Realm._objectForObjectId()
andRealm.Object._objectId()
. - Omitting zlib when building for Node.js on Windows, since this is no longer provided by the platform. (#3787)
- None.
- A warning to polyfill
crypto.getRandomValues
was triggered prematurely. (#3714, since v10.4.0) - Mutual exclusive configuration options (
sync
/inMemory
andsync
/migration
) could lead to a crash. (#3771, since v1.0.0) - Disabled executable stack on Linux. (#3752, since v10.2.0)
- Don't hang when using the network after hot-reloading an RN app. (#3668)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Omitting zlib when building for Node.js on Windows, since this is no longer provided by the platform. (backport of #3787)
- None.
- Fixed the naming of
url
(nowbaseUrl
) property on an app config to match the TypeScript declaration and other SDKs. (#3612) Realm.User.callFunction()
could crash if no arguments were applied. (#3718, since v10.0.0)- Proactively check the expiry time on the access token and refresh it before attempting to initiate a sync session. This prevents some error logs from appearing on the client such as
ERROR: Connection[1]: Websocket: Expected HTTP response 101 Switching Protocols, but received: HTTP/1.1 401 Unauthorized
. (since v10.0.0) - Fixed a race condition which could result in a skipping notifications failing to skip if several commits using notification skipping were made in succession. (since v6.0.0)
- Added guard against unresolved link which could crash with
Assertion failed: !key.is_unresolved()
. (#3611, since v6.1.3)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Upgraded Realm Core from v10.6.0 to 10.7.2.
- Added binaries for Apple Silicon (M1). (#3257)
- Throwing a more meaningful error when loading
librealm.so
fails from being loaded in an app using Hermes. (#3633)
- None.
- None.
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Upgraded Realm Core from v10.6.0 to 10.7.1
- Added binaries for Apple Silicon (M1). (#3257)
- We now make a backup of the realm file prior to any file format upgrade. The backup is retained for 3 months. Backups from before a file format upgrade allows for better analysis of any upgrade failure. We also restore a backup, if a) an attempt is mad e to open a realm file whith a “future” file format and b) a backup file exist that fits the current file format. (#4166)
- Using node version 15, the error
sh: cmake-js: command not found
will prevent installation. (#3670, since v10.3.0-rc.1) - On React Native, calling an aggregate function would fail with error
Not implemented
. (#3674, since v10.2.0) - Fixed name aliasing (
mapTo
in schemas) not working in sort/distinct clauses of the query language. (realm/realm-core#4550, never worked) - Potential/unconfirmed fix for crashes associated with failure to memory map (low on memory, low on virtual address space). (realm/realm-core#4514)
- Fixed collection notification reporting for modifications. This could be observed by receiving the wrong indices of modifications on sorted or distinct results, or notification blocks sometimes not being called when only modifications have occured. (r ealm/realm-core#4573, since v6.0.0)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format 21.
- Bump the Realm Sync protocol version to 3.
- Bump Realm File Format version to 21.
- Prebuild the React Native iOS variant and bundle it in the npm tarball. (#3649)
NOTE: This release has a number of fixes compared to v10.3.0-rc.1. For a complete changelog, please see v10.3.0-rc.1.
- None.
- Classes names
class_class_...
were not handled correctly in queries. (realm/realm-core#4480) - Syncing large
Decimal128
values will causeAssertion failed: cx.w[1] == 0
. ([realm/realm-core#4519[(realm/realm-core#4519)], since v10.0.0) - Avoid race condition leading to possible hangs on Windows. (realm/realm-dotnet#2245)
- During integration of a large amount of data from the MongoDB Realm, you may get
Assertion failed: !fields.has_missing_parent_update()
. (realm/realm-core#4497, since v6.0.0)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Upgraded Realm Core from v10.5.4 to v10.5.6.
- Added support for comparing numbers to boolean values in queries.
- On 32 bit devices you may get exception with
No such object
when upgrading from v6.x to v10.x (realm/realm-java#7314, since v10.0.0) - Restore support for upgrading files from file format 5 (Realm JavaScript 1.x). (realm/realm-cocoa#7089, since v6.0.0)
- Fixed a bug that prevented an object type with incoming links from being marked as embedded during migrations. (realm/realm-core#4414)
- During synchronization you might experience crash with
Assertion failed: ref + size <= next->first
. (realm/realm-core#4388) - There seems to be a few issues regarding class support in realm-js. We are currently coming up with strategies to better support this in the future. In the meantime, the following fixes have been applied to help avoid crashes and failures.
- When creating a class that extends Realm.Object and pushing the instantiated object to a list, a segmentation fault would occur. This has been fixed by a null check and throwing an exception.
- Creating an object from an instance of Realm.Object that was manually constructed (detached from Realm) would fail the second time. Now we throw a meaningful exception the first time.
- Removed a delay when running in node.js. It could make testing using Jest to fail. (#3608, since v2.0.0)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Switch to unified releases of Realm Core, Realm Sync and Realm Object Store.
- Upgraded to Realm Core v10.5.4.
- Adding sync-logging support to Android/iOS. (#2491)
- Fixing regression on Array Buffer throwing an error when inserting an empty value in an optional binary field. #3536.
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Added metrics migration to webhooks.
- None.
- App crashed if a native error was thrown during
Realm.open(...)
(#3414, since v10.0.0) - Fixed an issue in Node.js, where utilizing an ArrayBuffer for setting a binary property, would mangle the data. (#3518)
- Fixed an issue where scripts may hang rather than executing after all code has executed. (#3525, since v2.0.0)
- Fixed TS declarations for
Realm.ErrorCallback
. (since v2.0.0)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Upgraded OpenSSL v1.1.b to v1.1.1g (Linux).
- Added an export of the
bson
module on the package, making it possible to access the BSON types viaimport Realm from "realm";
followed byRealm.BSON.ObjectId
,Realm.BSON.Decimal128
,Realm.BSON.Binary
etc. (#3363)
- Fixed a bug where elements in the
User#identities
array would have auserId
which was actually anid
of the identity. (#3481, since v10.0.0-beta.13) - Fixed a crash after getting a 401 error inside sync. (#3503, since v10.0.0)
- Fixed a bug which could lead to a
BadChangeset Error
(ProtocolErrorCode=212
).
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Upgraded Realm Sync from v10.1.5 to v10.1.6.
- None.
- Fixed creating objects and assigning properties of BSON Decimal128 and ObjectId types, when running in React Native Chrome debugging mode. (#3452 & #3454, since v10.0.0)
- Fixed a crash that would happen if the app did a network request after the app got refreshed during development and the Chrome debugging mode was disabled. NOTE: Because of #3206 the fix has not been implemented on Android. (#3457, since v10.0.2)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- CI integration updated to use Xcode 12.
- Support for newest version of Object Store.
- Push functionality test re-enabled.
- None.
- Integrating changesets from the server would sometimes hit the assertion failure
n != realm::npos
insideTable::create_object_with_primary_key()
(in JS:Realm.create()
) when creating an object with a primary key which previously had been used and had incoming links. (realm/realm-core#4180, since v10.0.0)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Upgraded Realm Core from v10.1.3 to v10.1.4.
- Upgraded Realm Sync from v10.1.4 to v10.1.5.
- Added support of OpenID Connect credential for the Google authentication provider. (#3383)
- Fixing the construction of Realm instances declararing the schema, when running in the React Native Chrome debugging mode, by removing it. Note: This is not considered a breaking change, since this behaviour was never documented. (#3442, since v10.0.0)
- Fixed a bug that would prevent eventual consistency during conflict resolution. Affected clients would experience data divergence and potentially consistency errors as a result if they experienced conflict resolution between cycles of Create-Erase-Create for objects with same primary key.
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Upgraded to Realm Sync from v10.1.3 to v10.1.4
- The sync client now requires a server that speaks protocol version 2 (Cloud version 20201202 or newer).
- None.
- Fixed an issue in
toJSON()
, in combination with primaryKeys, where data from another table could be returned. (#3331, since v10.0.0) - Fixed an issue in
toJSON()
wheredata
would output as{}
, it now returns the data base64 encoded. (#3356, since v10.0.0) - Fixed a bug where setting
shouldCompactOnLaunch
would lead to a crash with the errorFatal error in HandleScope::HandleScope
(on node.js). (since v1.0.0) - TS:
RealmInsertionModel<T>
used inrealm.create<T>(...)
now ignores functions on Class Models. (#3421, since v10.0.0) - Fixing the creation of an RPC session when running in React Native Chrome debugging mode. (#3411, #3358, #3361, since v10.0.0)
- Fixed a crash in case insensitive query on indexed string properties when nothing matches. (realm/realm-cocoa#6836, since v6.0.0)
- Fixed a bug where queries for the size of a list of primitive nullable
int
s returned size + 1. (realm/realm-core#4016, since v6.0.0) - Files upgraded on 32-bit devices could end up being inconsistent resulting in
Key not found
exception to be thrown. ([realm/realm-java#6992)(realm/realm-java#6992), since v6.0.5)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Upgraded to Realm Core from v10.0.0 to v10.1.3
- Upgraded to Realm Sync from v10.0.0 to v10.1.3
NOTE: Support for syncing with realm.cloud.io and/or Realm Object Server has been replaced with support for syncing with MongoDB Realm Cloud.
NOTE: This version uses the Realm file format to version 20. It is not possible to downgrade to earlier versions than v10.0.0-beta.13. Non-sync Realms will be upgraded automatically. Synced Realms can only be automatically upgraded if created with Realm JavaScript v10.0.0-beta.1 and above.
- None
- None
- Fixed RN Android error: couldn't find DSO to load: librealmreact.so caused by: dlopen failed: cannot locate symbol. (#3347, since v10.0.0)
- Fixed TS declaration for
app.allUsers
toRecord<string, User>
instead of an array ofUser
. (#3346)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- None
NOTE: This is a unified release note covering all v10.0.0-alpha.X and v10.0.0-beta.X releases.
NOTE: Support for syncing with realm.cloud.io and/or Realm Object Server has been replaced with support for syncing with MongoDB Realm Cloud.
NOTE: This version uses the Realm file format version 20. It is not possible to downgrade to earlier versions than v10.0.0-beta.13. Non-sync Realms will be upgraded automatically. Synced Realms can only be automatically upgraded if created with Realm JavaScript v10.0.0-beta.1 and above.
NOTE: Deprecated methods have been removed.
Realm.Sync.User
has been replaced byRealm.User
.Realm.Sync.Adapter
,Realm.Sync.addlistener()
,Realm.Sync.localListenerRealms()
,Realm.Sync.removeAllListeners()
andRealm.Sync.removeListener()
have been removed. (#2732)- Query-based Sync has been removed. This includes
Realm.Sync.Subscription
,Realm.Results.subscribe()
,Realm.subscriptions()
,Realm.unsubscribe()
,Realm.privileges()
. These APIs are not initially supported by MongoDB Realm. They will be re-introduced in a future release.partitionValue
has been added to thesync
configuration as a replacement. Please read section "Partition Atlas Data into Realms" in documentation for further information. - Permissions has been removed. You need to configure permissions through MongoDB Realm.
- Deprepated API has been removed:
Realm.openAsync()
,Realm.Sync.setFeatureToken()
,Realm.Sync.User.register()
,Realm.Sync.User.registerWithProvider()
,Realm.Sync.User.authenticate()
,Realm.automaticSyncConfiguration()
. - Renamed configuration option
custom_http_headers
tocustomHttpHeaders
. - Renamed
Realm.Sync
toRealm.App.Sync
including all methods and properties.
- Added support for compiling on a RaspberryPi. (#2798
- Added support for the
Decimal128
data type. (#2674) - Added support for the
ObjectId
data type. (#2675) - Added support for embedded objects. (#2676)
- Added
Realm.App
with the following methods:getApp()
,logIn()
,switchUser()
, andremoveUser()
and propertiesid
,emailPasswordAuth
,currentUser
,allUsers
. ARealm.App
instance represents a MongoDB Realm app. (#2750 and #2809) - Added
Realm.Credentials
which represents credentials for MongoDB Realm users. It has the following methods:emailPassword()
,facebook
,anonymous()
,apple()
,google()
,jwt()
, andfunction()
. You must enable the credentials validation (authentication providers) at MongoDB Realm before deploying your app. (#2750 and #2809) - Added auth providers
Realm.Auth.EmailPassword
andRealm.Auth.APIKeys
. (#2750 and #2809) - Added support for
customData
readonly property toRealm.User
objects. (#2809) - Added support for calling server functions from
Realm.User
objects. (#2809) - Added MongoClient and Push functionality to
Realm.User
. - Added
watch()
toMongoDBCollection
to enable streaming notifications of changes events from the database. Only supported in node.js for now. - TS declarations with stricter TS validation of input-models and return-types for
create<T>(...)
,objects<T>(...)
&objectForPrimaryKey<T>(...)
. (#3044 & #3266)
- Realm.login() will not run after hot reloading in RN. (#3236, since v10.0.0-beta.12)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Upgraded to Realm Core v10.0.0
- Upgraded to Realm Sync v10.0.0
NOTE: Support for syncing with realm.cloud.io and/or Realm Object Server has been replaced with support for syncing with MongoDB Realm Cloud.
NOTE: This version uses the Realm file format to version 20. It is not possible to downgrade to earlier versions than v10.0.0-beta.13. Non-sync Realms will be upgraded automatically. Synced Realms can only be automatically upgraded if created with Realm JavaScript v10.0.0-beta.1 and above.
- Removed the types for
app.services
andapp.functions
(which never had an implementation). (#3322).
- Added descriptive errors for
partitionValue
of unsupported formats & ranges.
- Added missing
Realm.Credentials.jwt()
to React Native debugger support. (#3285, since v10.0.0-beta.13) - Fixed missing
partitionValue
onsyncSession
. (#3205, since v10.0.0-beta.1) - Fixed a bug where an integer could prematurely be converted & returned as a
Long
instead of anumber
. (#3205, since v10.0.0-beta.1) - TS declaration for
isLoggedIn
added toUser
. (#3294) - Fixed error
Attempted import error: 'invalidateCache' is not exported from './util' (imported as 'util').
(#3314) - Fixed a bug preventing caching of Realm instances. In certain cases, the Realm file would grow without any new objects added.
- TS declarations for
OpenRealmBehaviorConfiguration
presetsopenLocalRealmBehavior
&downloadBeforeOpenBehavior
moved to namespaceRealm.App.Sync
, to reflect the implementation. (#3307, since v10.0.0-beta.1)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Changed CI to abort if changes are exclusively made to the /packages directory. (#3298) & (#3307)
- Publish binaries for Raspberry Pi. (#3272, since v10.0.0-beta.13)
NOTE: Support for syncing with realm.cloud.io and/or Realm Object Server has been replaced with support for syncing with MongoDB Realm Cloud.
NOTE: This version uses the Realm file format to version 20. It is not possible to downgrade to earlier versions than v10.0.0-beta.13. Non-sync Realms will be upgraded automatically. Synced Realms can only be automatically upgraded if created with Realm JavaScript v10.0.0-beta.1 and above.
- Renamed
Realm.App.getCachedApp()
toRealm.App.getApp()
.
- TS declaration for
objectForPrimaryKey<T>(...)
now mimics behavior ofobjects<T>(...)
. (#3266)
- Fixed an issue with
toJSON
where data from a different object could be serialized. (#3254, since v10.0.0-beta.10) - Fixed
create<T>(...)
deprecation warning. (#3243) - Throw error when
deleteRealmIfMigrationNeeded
is requested on a synced realm (incompatible options) (#3245) - Added missing
Realm.Credentials.function()
to React Native debugger support. (#3236, since v10.0.0-beta.1) - Added missing
Realm.Credentials.google()
to React Native debugger support. (#3279, since v10.0.0-beta.1) - Fixed inheritance when transpiling with Babel which results in
TypeError: Reflect.construct requires the first argument to be a constructor
. (#3110) -fno-aligned-new
added to podspec as C++ flag for for armv7. This could lead to error messages likeAligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on iOS 11 or newer when archiving an app
. (#3076, since v10.0.0-beta.1)- TS declaration for
create<T>(...)
has been relaxed whenRealm.UpdateMode
All
orModified
is given. (#3266)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Upgraded Realm Core from v10.0.0-beta.8 to v10.0.0-beta.9.
- Upgraded Realm Sync from v10.0.0-beta.12 to v10.0.0-beta.14.
Realm.App.logIn()
will not run again after refreshing React Native app. (#3236)OpenRealmBehaviorConfiguration
was removed in v10.0.0-beta.1 and hasn't been added back yet. The consequence is that it is not possible to open a synced Realm when offline.
NOTE: Support for syncing with realm.cloud.io and/or Realm Object Server has been replaced with support for syncing with MongoDB Realm Cloud.
NOTE: This version bumps the Realm file format to version 20. It is not possible to downgrade to earlier versions. Non-sync Realms will be upgraded automatically. Synced Realms can only be automatically upgraded if created with Realm JavaScript v10.0.0-beta.1 and above.
- Renamed
Realm.Credentials.custom()
toRealm.Credentials.jwt()
. - Renamed
Realm.User.remoteMongoClient()
toRealm.User.mongoClient()
. - Removed
Remote
prefix from allMongoDB
related classes. - Renamed
Realm.Sync
toRealm.App.Sync
including all methods and properties.
- Added property
Realm.User.deviceId
. - Added property
Realm.User.providerType
. - Added property
Realm.User.identities
. - Added property
name
toRealm.MongoDB
,Realm.MongoDB.Database
andRealm.MongoDB.Collection
. - Added methods
Realm.App.Sync.getSyncSession()
andRealm.App.Sync.getAllSyncSessions()
. - Allow synchronization on the nil partition by specifying
null
aspartitionValue
in sync configuration. - Added support for creating multiple Realm apps. (#3072)
- Added method
Realm.App.getCachedApp()
.
- Reapplied fix for the error
expected either accessToken, id_token or authCode in payload
when using Facebook Auth. ([#3109])(realm#3109) - Fixed linking issue (error message:
ld: symbol(s) not found for architecture x86_64
) on iOS. (#3189, since v10.0.0-beta.12) - It is not allowed to query embedded objects directly. An expection will be thrown. (since v10.0.0-beta.1)
- Fixed a bug where .type is incorrect for some property types. (#3235)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v20 (reads and upgrades file format v5 or later for non-synced Realm, upgrades file format v10 for synced Realms).
- Stopped building binary releases for Node.js 11
- Realm JS now uses a single pre-build native binary for every Node.js and Electron version per platform (Windows, Linux, MacOS) and architecture (ia32, x64). Switching Node.js and Electron versions after Realm JS is installed will not require re-building or re-downloading of the Realm JS native binary.
- Upgraded Realm Core from v10.0.0-beta.6 to v10.0.0-beta.8.
- Upgraded Realm Sync from v10.0.0-beta.10 to v10.0.0-beta.12.
NOTE: Support for syncing with realm.cloud.io and/or Realm Object Server has been replaced with support for syncing with MongoDB Realm Cloud.
NOTE: This version bumps the Realm file format to version 11. It is not possible to downgrade to earlier versions. Older files will automatically be upgraded to the new file format. Files created by Realm JavaScript prior to v1.0.0, might not be upgradeable. Only Realm Studio 10.0.0 or later will be able to open the new file format.
- None.
- Fixed validation of idempotent
AddColumn
instruction. This could lead to crashes with an error message likeFailed to parse, or apply received changeset: ERROR: AddColumn 'class_Person.name' which already exists
. - Fixed a syntax error in
lib/browser/index.js
preventing RN debugger to launch. Thanks to @ioveracker. (#3178, since v10.0.0-beta.10)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v11 (reads and upgrades file format v5 or later).
- Upgraded from Realm Core v10.0.0-beta.5 to v10.0.0-beta.6.
- Upgraded from Realm Sync v10.0.0-beta.8 to v10.0.0-beta.10.
NOTE: Support for syncing with realm.cloud.io and/or Realm Object Server has been replaced with support for syncing with MongoDB Realm Cloud.
NOTE: This version bumps the Realm file format to version 11. It is not possible to downgrade to earlier versions. Older files will automatically be upgraded to the new file format. Files created by Realm JavaScript prior to v1.0.0, might not be upgradeable. Only Realm Studio 10.0.0 or later will be able to open the new file format.
- None.
- Remove extra
scripts/
in path todownload-realm.js
. FixesCannot find module '/my-app/node_modules/realm/scripts/scripts/download-realm.js'
([3168])realm#3168
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v11 (reads and upgrades file format v5 or later).
- None
NOTE: Support for syncing with realm.cloud.io and/or Realm Object Server has been replaced with support for syncing with MongoDB Realm Cloud.
NOTE: This version bumps the Realm file format to version 11. It is not possible to downgrade to earlier versions. Older files will automatically be upgraded to the new file format. Files created by Realm JavaScript prior to v1.0.0, might not be upgradeable. Only Realm Studio 10.0.0 or later will be able to open the new file format.
- Adding the possibility of passing a string argument when constructing an App. (#3082)
toJSON()
implemented forRealm.Collection
, to return a nicer serializable Array. (#3044)Realm.JsonSerializationReplacer
exposed as a replacer (for usage withJSON.stringify
) to handle circular structures.(#3044)- TS: Stricter model validation for
create<T>(...)
. (#3044)
- Fixed Android and XCode build files. (#3069, since v10.0.0-beta.9)
- Fixed a crash when calling
user.apiKeys.fetchAll()
. (#3067) - Fixed calling
app.emailPasswordAuth.resetPassword
andapp.emailPasswordAuth.callResetPasswordFunction
, which would throw an error of mismatch in count of arguments. (#3079) - realm.delete throws an exception
Argument to 'delete' must be a Realm object or a collection of Realm objects.
for schema objects defined with JS class syntax and not inheriting from RealmObject #2848. - Fixed
Realm.Object
TS declaration to allow inheritance. (#1226) - Fixed TS declaration for
CollectionChangeSet
inCollectionChangeCallback
when adding a change listener to a collection (#3093). - Fixed an error Error:
Invalid arguments: 2 expected, but 1 supplied.
when callingapp.removeUser
#3091 - Creating standalone/free-floating embedded objects crashed with a seg. fault. Temporarily an exception is thrown. Later we will introduce a way to add a new object to a list. (RJS#636, since v10.0.0-beta.1)
- Fixed a missing import in the RN debugger support causing the debug session to fail with the error
ReferenceError: createSession is not defined
. Thanks for @deckyfx to investigating and refactoring the cache. (#3085, since v10.0.0-beta.9) toJSON()
no longer throws"RangeError: Maximum call stack size exceeded"
when a circular structure is encountered (applies for bothRealm.Object
&Realm.Collection
). (#3044)- TS:
objects<T>(...)
now sets return types reflecting underlying implementation. (#3044) - TS:
_objectId()
added to TS declaration forRealm.Object
. (#3044) - Fixed performance regresion when creating
Realm.Object
in RN on iOS. ([#2845]realm#2845)) - Rare crash when a schema was updated (#6680)
- Bug in memory mapping management. This bug could result in multiple different asserts as well as segfaults. In many cases stack backtraces would include members of the EncyptedFileMapping near the top - even if encryption was not used at all. In other cases asserts or crashes would be in methods reading an array header or array element. In all cases the application would terminate immediately. (Realm Core PR #3838, since 7.0.0)
- Fixed the error
expected either accessToken, id_token or authCode in payload
when using Facebook Auth ([#3109])(realm#3109) - Fixed segfault when
push()
ing onto a list of embedded objects.
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v11 (reads and upgrades file format v5 or later).
- Realm Object Store updated to commit 9c80160881f2af76d99c356a9d6017c88c9b7e52
- Upgraded Realm Core from v10.0.0-beta.4 to v10.0.0-beta.5
- Upgraded Realm Sync from v10.0.0-beta.6 to v10.0.0-beta.8
- Upgraded Realm Network Transport from v0.6.0 to v0.7.0
- When creating objects without primary keys, it is now checked that the generated ObjKey does not collide with an already existing object. This was a problem in some migration scenarios in ObjectStore.
NOTE: Support for syncing with realm.cloud.io and/or Realm Object Server has been replaced with support for syncing with MongoDB Realm Cloud.
NOTE: This version bumps the Realm file format to version 11. It is not possible to downgrade to earlier versions. Older files will automatically be upgraded to the new file format. Files created by Realm JavaScript prior to v1.0.0, might not be upgradeable. Only Realm Studio 10.0.0 or later will be able to open the new file format.
Realm.Auth.EmailPassword.registerEmail()
has been renamed toRealm.Auth.EmailPassword.registerUser()
.Realm.User.identity
has been renamed toRealm.User.id
.Realm.User.token
has been renamed toRealm.User.accessToken
.- Change instance methods
Realm.App.currentUser()
andRealm.App.allUsers()
to instance propertiesRealm.App.currentUser
andRealm.App.allUsers
. Realm.Auth.UserAPIKeyProvider
has been replaced byRealm.Auth.ApiKeyProvider
.user.auth.apiKeys
has been replaced byuser.apiKeys
.- The instance methods on the ApiKeyAuth instance (
user.apiKeys
) have gotten their APIKey(s) suffix removed: Ex.apiKeys.createAPIKey
has been replaced byapiKeys.create
. Realm.Auth.EmailPasswordProvider
has been replaced byRealm.Auth.EmailPasswordAuth
.app.auth.emailPassword
has been replaced byuser.emailPasswordAuth
.Credentials.userAPIKey
has been replaced byCredentials.userApiKey
.Credentials.serverAPIKey
has been replaced byCredentials.serverApiKey
.
- Added RemoteMongoClient functionality to
Realm.User
- Added
watch()
toRemoteMongoDBCollection
to enable streaming notifications of changes events from the database. Only supported in node.js for now. - Throwing more descriptive messages when parsing schema properties
- Failed to parse arguments correctly, causing the error
callback must be of type 'function', got (undefined)
when callingRealm.App.emailPassword.sendResetPasswordEmail()
andRealm.App.emailPassword.resendConfirmationEmail()
. (#3037, since v10.0.0-beta.1) - Fixed
user.logOut()
to also log out at MongoDB Realm Cloud. The method now returnsPromise<void>
instead. (#2980, since v10.0.0-beta.1) - Fixed
TypeError: process.versions is not an Object
error being thrown when requiring the package from React Native. (#3045, since v10.0.0-beta.8) - Fixed duplicated TypeScript definition of
Realm.objectForPrimaryKey()
. (#2940, since v10.0.0-beta.1)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v11 (reads and upgrades file format v5 or later).
- None.
NOTE: Support for syncing with realm.cloud.io and/or Realm Object Server has been replaced with support for syncing with MongoDB Realm Cloud.
NOTE: This version bumps the Realm file format to version 11. It is not possible to downgrade to earlier versions. Older files will automatically be upgraded to the new file format. Files created by Realm JavaScript prior to v1.0.0, might not be upgradeable. Only Realm Studio 10.0.0 or later will be able to open the new file format.
- None.
toJSON()
now declared as returningany
for easy usage in TS.
- Fix
401 Unauthorized
when using anonymous login resulting in aFatal error in v8::HandleScope::CreateHandle()
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v11 (reads and upgrades file format v5 or later).
- None.
NOTE: Support for syncing with realm.cloud.io and/or Realm Object Server has been replaced with support for syncing with MongoDB Realm Cloud.
NOTE: This version bumps the Realm file format to version 11. It is not possible to downgrade to earlier versions. Older files will automatically be upgraded to the new file format. Files created by Realm JavaScript prior to v1.0.0, might not be upgradeable. Only Realm Studio 10.0.0 or later will be able to open the new file format.
- Added RemoteMongoClient functionality to
Realm.User
- Added Push functionality to
Realm.User
- Added missing
SyncConfiguration.error
field in the typescript definitions. - Fixed
SSL handshake failed: premature end of input
on Windows ([#2975](realm#2975, since v10.0.0-beta.1) - Missing
toJSON
TS declaration added forRealm.Object
(2903)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v11 (reads and upgrades file format v5 or later).
- Now linking against OpenSSL 1.1 on Windows.
NOTE: Support for syncing with realm.cloud.io and/or Realm Object Server has been replaced with support for syncing with MongoDB Realm Cloud.
NOTE: This version bumps the Realm file format to version 11. It is not possible to downgrade to earlier versions. Older files will automatically be upgraded to the new file format. Files created by Realm JavaScript prior to v1.0.0, might not be upgradeable. Only Realm Studio 10.0.0 or later will be able to open the new file format.
- None.
- Opening a sync session with LOCAL app deployments would not use the correct endpoints. (since v10.0.0-beta.5)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v11 (reads and upgrades file format v5 or later).
- Reverted back to rely on Realm.App's default URL in Realm Object Store.
- Updated Realm Object Store to commit c02707bc28e1886970c5da29ef481dc0cb6c3dd8.
NOTE: Support for syncing with realm.cloud.io and/or Realm Object Server has been replaced with support for syncing with MongoDB Realm Cloud.
NOTE: This version bumps the Realm file format to version 11. It is not possible to downgrade to earlier versions. Older files will automatically be upgraded to the new file format. Files created by Realm JavaScript prior to v1.0.0, might not be upgradeable. Only Realm Studio 10.0.0 or later will be able to open the new file format.
- None.
- Changed default MongoDB Realm URL to https://cloud.mongodb.com.
Realm.User.refreshCustomData()
will return the data when refreshed. (since v10.0.0-beta.1)- Fixed bugs so
Realm.User.auth.APIKeys
andRealm.App.auth.EmailPassword
are properties and not functions. (since v10.0.0-beta.1) - Added missing methods to
Realm.Auth
classes. (since v10.0.0-beta.1) - When restarting an app, re-using the already logged in user would result in Sync not resuming. (since v10.0.0-beta.1)
- Disabled client resync. (since v10.0.0-beta.1)
- Android report version as number and not as string, preventing an app to launch. (since v10.0.0-beta.1)
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v11 (reads and upgrades file format v5 or later).
- TypeScript definitions for
Realm.objectForPrimaryKey()
and theRealm.App
constructor are inconsistent. (realm#2940)
- Updated Realm Object Store to commit c50be4dd178ef7e11d453f61a5ac2afa8c1c10bf.
- None.
- Fixed an incorrect import in the React Native debugging support. Bug prevented app to be launched.
- Fixed Android builds by adding missing files to build system.
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v11 (reads and upgrades file format v5 or later).
- None.
- None.
partitionValue
can now be specified as a plain string, number orBSON.ObjectId
.- Added TypeScript definitions back in.
- Fixed a bug preventing optional Decimal128 to be null.
- MongoDB Realm Cloud.
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v11 (reads and upgrades file format v5 or later).
- Updated Realm Sync from v10.0.0-beta.1 to Realm Sync v10.0.0-beta.2.
- Updated Realm Object Store to commit c6b7e35544ce9514ceb7ff5fc0280b93c073c659.
NOTE: Support for syncing with realm.cloud.io and/or Realm Object Server has been replaced with support for syncing with MongoDB Realm Cloud.
NOTE: This version bumps the Realm file format to version 11. It is not possible to downgrade to earlier versions. Older files will automatically be upgraded to the new file format. Files created by Realm JavaScript prior to v1.0.0, might not be upgradeable. Only Realm Studio 10.0.0 or later will be able to open the new file format.
NOTE: Deprecated methods have been removed.
Realm.Sync.User
has been replaced byRealm.User
.Realm.Sync.Adapter
,Realm.Sync.addlistener()
,Realm.Sync.localListenerRealms()
,Realm.Sync.removeAllListeners()
andRealm.Sync.removeListener()
have been removed. (#2732)- Query-based Sync has been removed. This includes
Realm.Sync.Subscription
,Realm.Results.subscribe()
,Realm.subscriptions()
,Realm.unsubscribe()
,Realm.privileges()
. These APIs are not initially supported by MongoDB Realm. They will be re-introduced in a future release.partitionValue
has been added to thesync
configuration as a replacement. Please read section "Partition Atlas Data into Realms" in documentation for further information. - Permissions has been removed. You need to configure permissions through MongoDB Realm.
- Deprepated API has been removed:
Realm.openAsync()
,Realm.Sync.setFeatureToken()
,Realm.Sync.User.register()
,Realm.Sync.User.registerWithProvider()
,Realm.Sync.User.authenticate()
,Realm.Sync.setSyncLogger()
,Realm.automaticSyncConfiguration()
. - Renamed configuration option
custom_http_headers
tocustomHttpHeaders
.
- Added support for compiling on a RaspberryPi. (#2798
- Added support for the
Decimal128
data type. (#2674) - Added support for the
ObjectId
data type. (#2675) - Added support for embedded objects. (#2676)
- Added
Realm.App
with the following methods:logIn()
,currentUser()
,allUsers()
,switchUser()
, andremoveUser()
. ARealm.App
instance represents a MongoDB Realm app. (#2750 and #2809) - Added
Realm.Credentials
which represents credentials MongoDB Realm users. It is the following methods:emailPassword()
,facebook
,anonymous()
,apple()
,google()
,custom()
, andfunction()
. You must enable the credentials validation at MongoDB Realm before deploying your app. (#2750 and #2809) - Added auth providers
Realm.Auth.EmailPassword
andRealm.Auth.APIKeys
. (#2750 and #2809) - Added support for
customData
readonly property toRealm.User
objects. (#2809) - Added support for calling server functions from
Realm.User
objects. (#2809)
- None.
- MongoDB Realm Cloud.
- Realm Studio v10.0.0 (and related beta versions)
- APIs are backwards compatible with all previous releases of Realm JavaScript in the 10.x.y series.
- File format: generates Realms with format v11 (reads and upgrades file format v5 or later).
- Updated Realm Core from v6.0.5 to Realm Core v10.0.0-beta.1.
- Updated Realm Sync from v5.0.5 to Realm Sync v10.0.0-beta.1.
- Updated Realm Object Store to commit 6d081a53377514f9b77736cb03051a03d829da92.
- Created a package named
realm-app-importer
, to be used by integration tests (ideally by other SDKs too).