Commit Graph

70 Commits

Author SHA1 Message Date
Thomas Goyne 05a65ce49c Check the correct name when adding permissions object schemas to the schema
The `name` property of the schema object is the name of the class (i.e. `Role`
for the role object) rather than the schema name (i.e. `__Role`). This happened
to work if only the predefined schema objects were used and no user-defined
classes had the non-underscore-prefixed names, but broke otherwise.
2018-11-20 07:47:08 -08:00
Nikola Irinchev 7cc4e0feee
Use regex instead of simple substring (#2075) 2018-10-16 15:45:59 +02:00
Thomas Goyne bfb06ac0df Restore support for opening query-based sync Realms with a dynamic schema (#2065)
* Restore support for opening query-based sync Realms with a dynamic schema

* Adjust how the schema is extended for query-based Realms

* Register constructors for permissions types even no schema is supplied

* Remove some cruft from tests

* Fix a use-after-free in dynamic schema mode

* Fix a test
2018-10-16 09:49:16 +02:00
Kenneth Geisshirt ffb48ec2ed
Enhancements of subscription api (#2060)
* Adding Realm.subscriptions() and Realm.unsubscribe()
* Update changelog
* RN support
2018-10-10 12:00:04 +02:00
Christian Melchior 434e8ca2bc
Align permission API's with Java/Swift (#2036) 2018-10-04 10:09:31 +02:00
Nabil Hachicha 111e9c223f Adding permission schema for query based sync (#2027)
* Adding permission schema when opening the Realm
* Adding permission schema implicitly for query based Realms
* Remove old code
* Remove outdated test
2018-09-19 16:16:44 +02:00
Nikola Irinchev 80cde7a5b0 Redesign user auth (#2002)
* Refactor user auth
* Allow to override the jwt provider name
* Add custom provider and changelog
* Remove the callback argument from docs
2018-09-13 08:45:06 +02:00
Kenneth Geisshirt bdd59419cc
fullSynchronization might not be defined (#1990)
* fullSynchronization might not be defined
* don't use fullSynchronization in a test
2018-08-24 16:21:32 +02:00
Kenneth Geisshirt 1b1b51ded2
BUG FIX: A schema is required when Realm is opened in a query-based sync situation (#1985) 2018-08-24 08:50:27 +02:00
Christian Melchior 5a8341a5ac
Support for Connection notifications. (#1950) 2018-08-10 10:39:03 +02:00
Christian Melchior 95472a5cd3
Fix wrong schema definition (#1946) 2018-08-06 15:35:26 +02:00
Christian Melchior fa96eeec9e Fix tests 2018-06-19 00:19:49 +02:00
Christian Melchior d75150aa93 Add support for creating template objects 2018-06-18 22:55:01 +02:00
Christian Melchior 4cb9c77f46
Query-based sync as the default sync mode (#1830) 2018-05-30 12:54:51 +02:00
astigsen f85fe2f91d Fix Realm.open() with no config 2018-05-25 12:00:42 +02:00
Gerhard de Clercq 7152afddd9
Stop Permissions being redefined and breaking Jest
Fixes a related problem in exactly the same way as https://github.com/realm/realm-js/pull/1695 .
2018-03-21 19:44:57 +02:00
Kenneth Geisshirt c370ef4d86
Testing against ROS 3.0.0. (#1712)
* Testing against ROS 3.0.0.
* Adding Realm.Sync.Subscription.removeAllListeners. Refactor partial sync tests.
* Refactoring partial sync tests.
2018-03-21 18:18:37 +01:00
Kenneth Geisshirt 10480c1afe
Adding optional user as argument to Realm.automaticSyncConfiguration. (#1709) 2018-03-14 08:26:41 +01:00
Kenneth Geisshirt 9435490ea3
Upgrading to Realm Sync 3.0.0-rc.2 (#1706)
* Adding role to __User.
* Update to Realm Sync 3.0.0
* Renamed defaultSyncConfiguration to automaticSyncConfiguration
2018-03-13 14:27:31 +01:00
Kenneth Geisshirt abb04e399b
Default sync realm (#1693)
* Configuration for default Realm.
* Use url-parse to make RN happy.
2018-03-09 10:40:45 +01:00
Kenneth Geisshirt dfc6aea6a6
Deprecated setFeatureToken(). (#1694) 2018-03-08 17:27:13 +01:00
Kenneth Geisshirt 1066722a09 Revert "Deprecated setFeatureToken()."
This reverts commit d846794cd5.
2018-03-08 15:47:50 +01:00
Kenneth Geisshirt d846794cd5 Deprecated setFeatureToken(). 2018-03-08 15:44:11 +01:00
Thomas Goyne ac7f7d9c4e Add schema definitions for the permissions types 2018-03-01 16:16:43 -08:00
Kenneth Geisshirt 462856a24d
Partial sync (#1583)
The new Partial Sync API
2018-02-20 13:40:54 +01:00
Mark Rowe c2de29ab0c Fix an issue where `Realm.open` would complain about the Realm already
being open with a different schema version

In order to correctly open read-only synchronized Realms, `Realm.open`
would open the Realm without specifying a schema or schema version, wait
for any remote changes to be downloaded (if appropriate), and then
re-open the Realm with the specified schema and schema version. This
would lead to an exception about the Realm being open with a different
schema version if the Realm had previously been opened with a different
schema version, due to the way `RealmCoordinator` caches information
about the schema of open Realms.

We address this by making two changes:
1. `Realm.open` for non-synchronized Realms no longer goes through
`_waitForDownload`. This means the dance described above where the Realm
is opened twice is not used for local Realms.
2. `_waitForDownload` no longer keeps the `Realm` alive until after its
callback has returned. It instead keeps the `SyncSession` alive. This is
sufficient to avoid the connection being torn down and having to
reconnect when `_waitForDownload`'s callback later opens the Realm with
the correct schema and schema version, while also allowing for
`RealmCoordinator`'s cached information to be cleared when the
schemaless Realm is closed prior to the Realm being reopened.

In addition, tests have been added that reproduced the problem in both a
local and sync context.
2017-12-18 14:54:08 -08:00
blagoev ba2309a540 revert the promise resolve 2017-11-13 23:31:33 +02:00
blagoev f10df2164c fix RN Android debugger 2017-11-13 14:19:59 +02:00
Mark Rowe 0249722a02 Remove configuration handling from `Realm._waitForDownload`
There's no reason for `_waitForDownload` to be responsible for
constructing a new Realm instance when we can instead use the
constructor for that. This eliminates the potential for different
handling of the Realm configuration between `_waitForDownload` and `new
Realm`, which was responsible for various issues (#1391, #1392, #1393).
In turn, this requires that `_waitForDownload` become an instance method.

In addition, we update `Realm.openAsync` and `getSpecialPurposeRealm` to
delegate to `Realm.open` rather than reimplementing equivalent logic
themselves.

Finally, the private mechanism for registering a download progress
handler as part of the sync configuration (`_onDownloadProgress`) is
removed in favor of the public API (`progress()` on the promise returned
by `Realm.open`).
2017-10-10 21:16:23 -07:00
blagoev aefd81ccf7 Kneth/fix partial sync (#1383)
* fix typo in subscribeToObjects
* Fix partial sync test
* Swap error and result order in callback
* Use correct url
2017-10-04 11:28:50 +02:00
Kenneth Geisshirt 7c5572b451 Removing deprecated setAccessToken(). (#1371) 2017-10-02 21:03:29 +02:00
Kenneth Geisshirt feb59ae859 Partial sync (#1361) 2017-10-02 20:29:36 +02:00
Kenneth Geisshirt fe121ea27b Client reset (#1341) 2017-10-02 19:44:24 +02:00
blagoev 6e016b3e69 Remove dead code 2017-10-01 12:23:04 +03:00
blagoev 6d9f85759e Fix IncompatibleSyncedRealm support 2017-09-29 21:43:04 +03:00
Kenneth Geisshirt b1fb8ece57 Fix typo 2017-09-23 10:37:15 +02:00
Kenneth Geisshirt 39fe8c6280 Creating a proper IncompatibleSyncedRealmError class. 2017-09-23 00:05:33 +02:00
Kenneth Geisshirt 8606d37141 Fixes to issues reported by eslint (#1313) 2017-09-14 10:35:02 +02:00
blagoev 064b487c07 Merge branch 'master' into blagoev/promise3 2017-09-13 14:27:04 +03:00
blagoev f7db865458 Fix typescript definitions
Fixes #1306
2017-09-13 12:37:44 +03:00
Maximilian Alexander 78515e3b48 adding promisified apis 2017-09-12 20:10:52 +03:00
blagoev 0214dff951 fix possible hang on iOS 2017-09-11 15:50:44 +03:00
blagoev e1cebe073a add progress notifications api 2017-09-11 15:50:44 +03:00
Kenneth Geisshirt 0c61716c08 Fix accessToken (#1275) 2017-09-01 11:53:52 +02:00
Kenneth Geisshirt 8d7eac1b65 Fix linter error (#1271) 2017-08-31 10:18:10 +02:00
blagoev fad3b369dc fix bad term 2017-08-15 12:36:15 +03:00
blagoev 86999412f0 Depreciate setAccessToken
rename setAccessToken to setFeatureToken
expose both functions while setAccessToken is depreciated
Trim token argument string
2017-08-15 12:36:15 +03:00
Nikola Irinchev bbe62c361b
Don’t execute callback in Realm.open either 2017-07-18 11:28:33 +03:00
Nikola Irinchev bd10a6d8e0
Don’t invoke openAsync callback twice 2017-07-18 00:16:25 +03:00
Yavor Georgiev b1d23bb782
Realm.open and Realm.openAsync should try/catch opening the realm
and pass the error on to the promise and callback respectively so that it can be handled by the caller
2017-07-11 17:47:10 +02:00