Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support yjs in dexie-cloud-addon #2045

Open
wants to merge 98 commits into
base: master
Choose a base branch
from
Open

Conversation

dfahlander
Copy link
Collaborator

No description provided.

dfahlander and others added 30 commits June 10, 2024 19:39
Still need to think it through. Might need to find a better way than iterating all updates in entire DB periodically.
Could not take latest as it generates double types. Found out we needed version 9.3.1 exactly.
* Renamed updTable to updatesTable
* Renamed id / rowId to parentId
* To lookup whether a certain document is open and find it
* updates
* awareness
* sync
* websocket
Move all yjs related modules to an yjs directory
* updatesTable is not meaningful outside of client
* server need to know the parent table to verify access
* parent table + yDoc prop combined forms the same uniqueness as updatesTable.
David Fahlander added 30 commits October 16, 2024 14:05
…he same client, and destroy doc if it is open.
…affected the new unsyncedProps feature made it skip eager sync in other situations.
…r app:

* Upgraded Typescript tp 5.6.3
* Separate serverRevision from yServerRevision
* Remove serverRev from YSyncState node in Y-tables and use yServerRevision in PersistedSyncState instead because it will always be same for all tables and only updated after a full sync.
* Handle situation when server has dropped historical Y-updates and the client was on an ancient yServerRevision - re-download all y docs and get the local changes merged in.
* Server may ask us to send a doc-open request any time. Respond to it by triggering a local signal that makes us send that request, making sure to be notified on changes eagerly.
* Bugfix docCache in the case when add is called twice to overwrite existing value, the previous doc might be deleted later on and that must not affect the new instance. Therefore we check on the delete that the stored doc is the same as the intended deletion.
… sync is complete!

This means that:
* if requireAuth option is on, all queries that the application does won't execute until the authentication AND an authenticated initial sync has completed! Before it still waited for authentication progress to complete but then the queries were executed before the intial authorized sync was complete.
* Initial sync is now done AFTER authentication phase. Before, an initial sync was performed before authentication - only to sync the schema - and then after authentication, another sync was made that actually synced the data.
* This commit is dependant on the latest release candidate of dexie-cloud-server (version 2.0.0-rc.1 or later)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant