Skip to content
This repository has been archived by the owner on Nov 8, 2021. It is now read-only.

RMP 1.5.0 Release

Compare
Choose a tag to compare
@radu-tutueanu radu-tutueanu released this 11 May 13:56
· 204 commits to master since this release

Binaries available at https://static.realm.io/downloads/mobile-platform/1.5.0/realm-mobile-platform.zip.

Important:

The format has changed for Realm files on the server side due to the
introduction of server-side Realm states. This means that all
server-side files need to be migrated. Migration is performed
automatically by the new version of the server, when it is
started. The server will not start servicing clients until migration
is completed. Expect that the server needs about 5 minutes of
migration time per gigabyte of each Realm file.

Changes:

Object Server 1.5.0

  • Use realm-sync 1.8.3.
  • Realm states are now available in server-side Realm files, and this
    is used to improve validation of incoming changesets. This is also
    expected to server as a foundation for various planned features.
  • Certain parts of the history (reciprocal histories) in server-side
    Realm files are now trimmed. This means that the server-side files
    will grow less rapidly. This will not cause preexisting files to
    shrink, because trimming can only take place as clients resume
    synchronization. However, for new Realm files, it means that they
    will grow less rapidly, and for existing Realm files, it means that
    space will be freed up as clients resume synchronization, and that
    will curb additional growth. In some cases, the lack of trimming
    would cause a Realm file to be more than 10 times the size that
    would have had with trimming in place.
  • Sync workers now report protocol version usage to statsd.

Migration

The format has changed for Realm files on the server side due to the
introduction of server-side Realm states. This means that all
server-side files need to be migrated. Migration is performed
automatically by the new version of the server, when it is
started. The server will not start servicing clients until migration
is completed. Expect that the server needs about 5 minutes of
migration time per gigabyte of each Realm file.

You can get information about the progress of migration by inspecting
the log file. Here is an example of the relevant log file entries:

2017-05-09T14:41:56.104Z - info: sync-server: Migration required
2017-05-09T14:41:56.104Z - info: sync-server: Found 5 Realm files in /var/lib/realm/object-server/0/user_data
2017-05-09T14:41:56.104Z - info: sync-server: Migrating 1cfbe17dd3f069b936570c3d9483859b/__permission.realm (1/5)
2017-05-09T14:41:56.104Z - info: sync-server: Migrating 1cfbe17dd3f069b936570c3d9483859b/realmtasks.realm (2/5)
2017-05-09T14:41:56.105Z - info: sync-server: Migrating __admin.realm (3/5)
2017-05-09T14:41:56.105Z - info: sync-server: Migrating __auth/__permission.realm (4/5)
2017-05-09T14:41:56.105Z - info: sync-server: Migrating __permission.realm (5/5)
2017-05-09T14:41:56.105Z - info: sync-server: Migration completed successfully

If you have an enterprise deployment, you will receive an email with
upgrade instructions that take continuous backup into account.

Node Server SDK 1.5.0

  • Based on realm-js 1.2.0
  • Uses realm-core 1.6.2
  • Files written by Realm this version cannot be read by earlier versions of Realm. Old files can still be opened and files open in read-only mode will not be modified.
  • The setVerifyServersSslCertificate method has been deleted
  • The SyncConfig now gets two more optional parameters, validate_ssl and ssl_trust_certificate_path.

Realm-Cocoa 2.7.0

  • Use reachability API to minimize the reconnection delay if the network
    connection was lost.
  • Add -[RLMSyncUser changePassword:completion:] API to change the current
    user's password if using Realm's 'password' authentication provider.
    Requires any edition of the Realm Object Server 1.4.0 or later.
  • {RLM}SyncConfiguration now has an enableSSLValidation property
    (and default parameter in the Swift initializer) to allow SSL validation
    to be specified on a per-server basis.
  • Transactions between a synced Realm and a Realm Object Server can now
    exceed 16 MB in size.
  • Add new APIs for changing and retrieving permissions for synchronized Realms.
    These APIs are intended to replace the existing Realm Object-based permissions
    system. Requires any edition of the Realm Object Server 1.1.0 or later.
  • Support Realm model classes defined in Swift with overridden Objective-C
    names (e.g. @objc(Foo) class SwiftFoo: Object {}).
  • Fix -[RLMMigration enumerateObjects:block:] returning incorrect oldObject
    objects when enumerating a class name after previously deleting a newObject.
  • Fix an issue where Realm.asyncOpen(...) would fail to work when opening a
    synchronized Realm for which the user only had read permissions.
  • Using KVC to set a List property to nil now clears it to match the
    behavior of RLMArray properties.
  • Fix crash from !m_awaiting_pong assertion failure when using synced Realms.
  • Fix poor performance or hangs when performing case-insensitive queries on
    indexed string properties that contain many characters that don't differ
    between upper and lower case (e.g., numbers, punctuation).