-
RENAMED the
ajv-validate
plugin tovalidate-ajv
to be in equal with the other validation plugins. -
The
is-my-json-valid
validation is no longer supported until this bug is fixed. -
REFACTORED the schema validation plugins, they are no longer plugins but now they get wrapped around any other RxStorage.
- It allows us to run the validation inside of a Worker RxStorage instead of running it in the main JavaScript process.
- It allows us to configure which
RxDatabase
instance must use the validation and which does not. In production it often makes sense to validate user data, but you might not need the validation for data that is only replicated from the backend.
-
REFACTORED the key compression plugin, it is no longer a plugin but now a wrapper around any other RxStorage.
- It allows to run the key-comresion inside of a Worker RxStorage instead of running it in the main JavaScript process.
-
REFACTORED the encryption plugin, it is no longer a plugin but now a wrapper around any other RxStorage.
- It allows to run the encryption inside of a Worker RxStorage instead of running it in the main JavaScript process.
- It allows do use asynchronous crypto function like WebCrypto
-
Store the password hash in the same write request as the database token to improve performance.
-
REMOVED many unused plugin hooks because they decreased the performance.
-
REMOVED support for temporary documents see here
-
REMOVED RxDatabase.broadcastChannel The broadcast channel has been moved out of the RxDatabase and is part of the RxStorage. So it is not longer exposed via
RxDatabase.broadcastChannel
. -
In the RxDB internal
_meta.lwt
field, we now use 2 decimals number of the unix timestamp in milliseconds. -
REMOVE RxStorageStatics
.hash
and.hashKey
-
CHANGE removed default usage of
md5
as default hashing. Use a faster non-cryptographic hash instead.- ADD option to pass a custom hash function when calling
createRxDatabase
.
- ADD option to pass a custom hash function when calling
-
Removed the
liveInterval
option of the replication. It was an edge case feature with wrong defaults. If you want to run the pull replication on internval, you can send aRESYNC
event manually in a loop. -
CHANGE use
Float
instead ofInt
to represent timestamps in GraphQL. -
REPLACED
RxReplicationPullError
andRxReplicationPushError
with normalRxError
like in the rest of the RxDB code. -
REMOVED the option to filter out replication documents with the push/pull modifiers #2552 because this does not work with the new replication protocol.
-
CHANGE default of replication
live
to be set totrue
. Because most people want to do a live replication, not a one time replication. -
CHANGED Attachment data is now always handled as
Blob
because Node.js does supportBlob
since version 18.0.0 so we no longer have to use aBuffer
but instead can use Blob for browsers and Node.js -
FIXED multiple problems with encoding attachments data. We now use the
js-base64
library which properly handles utf-8/binary/ascii transformations. -
RENAMED the
server
plugin is now calledserver-couchdb
andRxDatabase.server()
is nowRxDatabase.serverCouchDB()
-
ADDED the websocket replication plugin
-
ADDED the FoundationDB RxStorage
-
FIX
couchdb-server
plugin missed out events from the replication. -
ADD Support JsonSchema for nested additionalProperties #3952 Thanks @swnf
NOTICE: An overview about all releases can be found at the changelog