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

Releases: realm/realm-object-server

ROS Release 3.28.5

11 May 08:36
Compare
Choose a tag to compare

Changes since 3.28.4:

Enhancements

  • None

Fixed

  • When trace logging was enabled, the request and response body was logged, which may have included sensitive information for login calls. The request and response bodies for /auth requests are no longer logged.

Compatibility

Installation & rollback instructions

Please see the Realm Docs for installation, upgrade and rollback instructions.

ROS Release 3.28.2

07 Jan 19:27
Compare
Choose a tag to compare

Enhancements

  • None

Fixed

  • Fixed an issue which could lead to messages like Error: Invalid credentials - failed to parse token data at SyncProxyService in the logs while ROS is shutting down.

Compatibility

Installation & rollback instructions

Please see the Realm Docs for installation, upgrade and rollback instructions.

ROS Release 3.23.6

01 Aug 21:04
Compare
Choose a tag to compare

Changes since 3.23.5:

Enhancements

  • Added more detailed error message when a user creation is rejected due to the userId requiring url encoding (only when logging in via JWT). The new message will return both the encoded and non-encoded userId to make it easier to spot the invalid characters.

Fixed

  • Fixed an issue that would cause the JWT provider to not replace all invalid characters in a userId. For example, a user with the Id foo|bar|email would result in an error being thrown even if the | character is marked for escaping.

Compatibility

Installation & rollback instructions

Please see the Realm Docs for installation, upgrade and rollback instructions.

Notable known issues

ROS Release 3.23.1

07 Jun 11:41
Compare
Choose a tag to compare

Changes since 3.21.1:

Enhancements

  • [GraphQL Service]: Added new properties to the NamedSubscription object to align it with realm-js version 2.26.0. Particularly, these relate to the expiration of subscriptions.
  • [GraphQL Service]: Added an ability to specify timeToLive (in ms) for a query-based subscription. This only works for named subscriptions.
  • [GraphQL Service]: Added the ability to update an existing query-based subscription. To do so, pass in update: true and the name of the subscription to the createXXXSubscription mutation.
  • [Permissions Service]: Added two config options to the permissions service constructor to allow disabling permission reflection and observing the management Realms. These should not be used unless advised by the Realm support team.
  • [Sync Server]: Improved the performance of query-based sync with many readers.
  • Decreased the size of the npm module.

Fixed

  • Fixed a bug that could cause ROS to attempt to write to a socket that has been closed, resulting in Error [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed being output in the log and the process terminating.
  • Fixed a race condition that could result in ROS consuming 100% CPU after a user has been deleted.
  • [GraphQL Service]: Fixed an issue when using Query-based Sync that would result in JS value must be of type 'object', got (undefined) when creating a subscription without a name.

Breaking Changes

  • Removed the following API because they no longer have any effect on the server:
    • The shouldCompactRealmsAtStart and shouldPerformPartialSyncAtStart properties from BasicServer's config.
    • The sync.realm.io/enable-debug-mode, sync.realm.io/should-perform-partial-sync-at-start, sync.realm.io/disable-precheck-in-child-proc, and sync.realm.io/skip-verify-realms-at-start annotations from KubernetesSyncWorker.
    • The shouldCompactRealmsAtStart, shouldPerformPartialSyncAtStart, skipVerifyRealmsAtStart, disablePrecheckInChildProc, verifyRealmsAtStart, and runPrecheckInChildProcess properties from the SyncService config object.

Compatibility

Installation & rollback instructions

Please see the Realm Docs for installation, upgrade and rollback instructions.

Notable known issues

ROS Release 3.21.0

01 May 13:33
1e1d695
Compare
Choose a tag to compare

Release 3.21.0 (2019-04-10)

Changes since 3.20.1:

Enhancements

  • Added support for a new way to quickly download a Full Realm file and to automatically resolve client-reset type errors. Client SDKs need to be updated to take advantage of this feature. Keep an eye on the SDK's changelog for more information.
  • Added support for including user specified backlinks in a query based subscription. Client SDKs need to be updated to take advantage of this feature. Keep an eye on the SDK's changelog for more information.

Fixed

  • None

Compatibility

Installation & rollback instructions

Please see the Realm Docs for installation, upgrade and rollback instructions.

Notable known issues

  • Encrypting existing realm files is not possible. Only fresh deployments with zero state can use realms encryption. We're working on a migration path for existing deployments.

ROS Release 3.21.1

26 Apr 15:29
Compare
Choose a tag to compare

Changes since 3.21.0:

Enhancements

  • None

Fixed

  • A regression was introduced in version 3.21.0 that could cause the server to decide to perform full history compaction on every upload, causing severe performance degradation. (Issue #2962, since 3.21.0)

Compatibility

Installation & rollback instructions

Please see the Realm Docs for installation, upgrade and rollback instructions.

Notable known issues

  • Encrypting existing realm files is not possible. Only fresh deployments with zero state can use realms encryption. We're working on a migration path for existing deployments.

ROS Release 3.20.1

04 Apr 21:08
Compare
Choose a tag to compare

Changes since ROS 3.19.0:

IMPORTANT: This version will perform an automatic file-format upgrade of certain files used for Query Based Sync. The server cannot be downgraded without restoring those files from backup. So it's recommended to do a full backup before the server is upgraded.

Enhancements

  • Reduced the performance impact of authenticating users with invalid credentials when using the username/password provider.
  • A new argument for the Sync Service has been added. numAuxPsyncThreads enables multithreading during query-based sync fan-out operations. Specify the number of additional worker threads desired in addition to the main worker thread. Defaults to 0 (disabled).
  • The GraphQL service has two new mutations added: create**type**(input: **type**, updatePolicy) and create**type**s(input: [**type**], updatePolicy) where updatePolicy is optional and may be NEVER, ALL, and MODIFIED. These correspond to the now deprecated mutations add**type**, update**type** and diffUpdate**type**. If updatePolicy is not specified, NEVER will be used. (Issue #1496)
  • The server no longer rejects subscriptions based on queries with distinct and/or limit clauses.
  • Realm files used for query based sync have had all non-essential state removed, to reduce the file size on disk and improve query based sync performance. In some scenarios, this improves the latency of query-based sync by up to 25%, depending on the user's schema.
  • Various performance improvements for queries results in faster query based sync performance.
  • Memory usage has been decreased when using encryption.
  • Performance when using encryption has been significantly improved.
  • Commit performance is improved for realms with a long lifetime and many changes due to better handling of the free space in the file.
  • Added a warning when the nickname auth provider is started to more prominently alert developers of the fact it's not a secure provider.

Fixed

  • Fixed an issue that could cause the GraphQL service to end up always throwing an Internal Server Error for a particular Realm. This could happen when a reference Realm is deleted, then an access token, issued before the deletion, is used to connect to it via query-based sync. (PR #1504 Since v3.16.6)
  • A Realm file deletion (including deletion of partial files as a result of history compaction) could cause various kinds of crashes, and even corruption within the server. (since v3.0.0).
  • A bug was fixed where if a user had canCreate but not canUpdate privileges on a class, the user would be able to create the object, but not actually set any meaningful values on that object, despite the rule that objects created within the same transaction can always be modified. (Issue #2574, since v3.0.0).
  • A segfault could occur under certain circumtances when queries compared two integer fields.
  • Fixed an issue that could prevent the server from starting with a message like Cannot read property 'findIndex' of undefined. This was caused when explicitly specifying the auth providers as opposed to using the runtime configuration API. (Issue #1506, Since 3.19.0)

Compatibility

Installation & rollback instructions

Please see the Realm Docs for installation, upgrade and rollback instructions.

NOTE: This version will perform an automatic file-format upgrade of certain files used for Query Based Sync. The server cannot be downgraded without restoring those files from backup. So it's highly recommended to do a full backup before the server is upgraded.

Notable known issues

  • Encrypting existing realm files is not possible. Only fresh deployments with zero state can use realms encryption.

ROS Release 3.19.0

15 Mar 18:10
Compare
Choose a tag to compare

Enhancements

  • Updated some services to inherit from event emitter to emit events when processing some requests. The updated services are:
    • AuthService
      • userCreated emitted with argument { user: User, totalUsers: number } when a user is created.
    • SyncProxyService
      • socketConnected emitted with argument { path: string, socketId: number, userAgent: string } when a socket connection is established with the sync service.
      • socketDisconnected emitted with argument { path: string, socketId: number, userAgent: string } when a socket connection is terminated.
    • RealmDirectoryService
      • realmCreated emitted with argument { type: RealmType, path: string, syncLabel: string } when a new Realm is created.
  • Added 2 more buckets for changeset_integrated histogram.
  • Added an option to AuthService called allowAnyUserToRetrieveUserInfo that enables any registered user to call the
    GET /auth/users/:user_id and GET /auth/users/:provider/:provider_id HTTP APIs, either directly or with SDK methods
    such as the JavaScript SDK's Realm.Sync.User.retrieveAccount method.
  • Reduced the performance impact of authenticating users with invalid credentials when using the username/password provider.

Fixed

  • Fixed a bug that would prevent the GraphQL Service's diffUpdate method from working with lists of primitive values.

Compatibility

Installation & rollback instructions

Please see the Realm Docs for installation, upgrade and rollback instructions.

Notable known issues

Release 3.18.5

20 Feb 20:44
Compare
Choose a tag to compare

Enhancements

  • None

Fixed

  • Fixed a TypeScript build error in ros init-created applications. (Issue #413)

Compatibility

Installation & rollback instructions

Please see the Realm Docs for installation, upgrade and rollback instructions.

Notable known issues

Release 3.18.4

14 Feb 00:53
Compare
Choose a tag to compare

Breaking

  • Node 6 support has been deprecated and we'll drop it completely in a future version. We recommend upgrading to node 10 LTS.

Enhancements

  • None

Fixed

  • None

Compatibility

Installation & rollback instructions

Please see the Realm Docs for installation, upgrade and rollback instructions.

Notable known issues