- None
- None
- Compatible with Realm Object Server releases from 3.12.0 or later.
- Support for using query-based Realms is in beta and while the API is stable, there may be corner cases that are not well covered.
- Linking to a class that contains no properties will result in GraphQL errors claiming that it can't find that class. The workaround is to add at least one property to the class (this can be done either via any of the native SDKs or Studio).
- Allow overriding the generated model names to avoid clashes with existing classes. The override properties are
collectionModelSuffix
,inputModelSuffix
,namedSubscriptionModelName
, andbase64ModelName
on theGraphQLServiceSettings
interface.
- None
- Compatible with Realm Object Server releases from 3.12.0 or later.
- Support for using query-based Realms is in beta and while the API is stable, there may be corner cases that are not well covered.
- Linking to a class that contains no properties will result in GraphQL errors claiming that it can't find that class. The workaround is to add at least one property to the class (this can be done either via any of the native SDKs or Studio).
- None
- Fixed an issue that could cause an exception with the message
ReferenceError: realm is not defined
to be thrown. (#83)
- Compatible with Realm Object Server releases from 3.12.0 or later.
- Support for using query-based Realms is in beta and while the API is stable, there may be corner cases that are not well covered.
- Linking to a class that contains no properties will result in GraphQL errors claiming that it can't find that class. The workaround is to add at least one property to the class (this can be done either via any of the native SDKs or Studio).
- Added preliminary support for using query-based synchronized Realms. When opening such Realms, there several new GraphQL nodes added:
createXXXSubscription(query: String, sortBy: String, descending: Boolean, name: String)
: creates a Realm subscription for objects of typeXXX
that match the query. When working with query-based Realms, you need to first create Realm subscriptions to indicate which objects should be synchronized to the Realm. The response is a collection of objects that match the query. Once a subscription is created, it will be persisted and objects will be automatically synchronized until the subscription is removed. You can specify an optional name, that will allow you to later remove that subscription.queryBasedSubscriptions(name: String)
: returns a collection of active subscriptions.deleteQueryBasedSubscription(name: String!)
: removes a subscription by name.
- Fixed a bug which would cause the following error message to be output when a class didn't have any properties:
Invalid options provided to ApolloServer: Syntax Error: Expected Name, found }
. Now such classes are ignored as they contain no meaningful information. realm-graphql#32
- Compatible with Realm Object Server releases from 3.12.0 or later.
- Support for using query-based Realms is in beta and while the API is stable, there may be corner cases that are not well covered.
- Linking to a class that contains no properties will result in GraphQL errors claiming that it can't find that class. The workaround is to add at least one property to the class (this can be done either via any of the native SDKs or Studio).
- Added a configuration option to represent integers as
Float
in the GraphQL schema. Since Realm integers can be up to 64-bit and the GraphQLInt
type is limited to 32-bits, this setting allows you to extend the range of the numbers you can query to match javascript's limit (2^53 - 1). The downside is that you'll lose the type checking and you may accidentally pass floats where integers are expected. Doing so will cause Realm to automatically round the number down and treat it as an integer. To enable that option, passpresentIntsAsFloatsInSchema: true
in theGraphQLService
constructor.
- None
- Compatible with Realm Object Server releases from 3.8.1 or later.
- There is currently no support for working with query-based sync (#70).
- Pinned the Apollo dependencies to 1.3.6 as 1.4.0 is breaking the GraphiQL explorer functionality.
- Fixed a bug where subscriptions and queries over websocket would not work. This was a regression introduced with 3.2.0.
- Added a configuration option to include the objects matching the query in the collection response. It is not
true
by default because it changes the response type slightly, which would break existing clients. It can be enabled by passingincludeCountInResponses: true
in theGraphQLService
constructor. - Lifted the requirement to url-encode Realm paths.
- Queries and mutations over websocket are now supported.
-
Types that are plural nouns will now have forced
s
appended to the actions that would otherwise have been plural to distinguish from the singular action. For example having a typeData
would have previously generated actions:Query { data(query, sortBy, descending, skip, take): [Data!] } Mutation { deleteData(query): Int }
which would have produced conflicting actions when the type also had a primary key. Now we'll generate actions with grammatically incorrect name -
datas
- which will, however, be distinct from any actions that were acting on the singular value:Query { datas(query, sortBy, descending, skip, take): [Data!] // If we have a PK data(pk): Data } Mutation { deleteDatas(query): Int // If we have a PK deleteData(pk): Boolean }
- Expose option to force the explorer to use SSL for websockets.
- Applied the CORS middleware to the GraphQL service.
- Fixed an issue that caused querying realms with types/properties that started with double underscores to throw an obscure type error.
- Updated dependencies to their latest versions to avoid the issue with the
@types/graphql
package missing.
- Schema cache will be preemptively invalidated if the Realm is open while the schema change takes place. You still need to manually invalidate it if you change the schema of a Realm that is not open by the GraphQL service.
- The Realm schema will be properly updated after cache invalidation.
- Fixed a bug that caused subscriptions to trigger for unrelated changes.
- Fixed a bug that would prevent admin refresh tokens to be used as authentication.