Collaboration guide

Connect two Yjs clients to one persisted document.

Enable the service at startup, choose standalone or record-backed rooms, then verify convergence, reconnect, permissions, and durable storage.

  • Yjs
  • Persisted updates
  • Record access

Choose how clients share a room.

Standalone room

Connect at /yjs/{documentName}. Any authenticated user who knows an ordinary standalone name can reach that room, so use an unguessable name when it is not broadly shared.

Record-backed room

Connect at /live/{type}/{referenceId}/{column}/yjs for a supported file column and use the record's existing permissions.

Editors

Users with Update may edit; Read-only users receive updates but their writes are ignored; other users cannot connect.

Storage

Persisted updates live under {DAPTIN_STORAGE}/yjs-documents; the startup storage path is not changed through the runtime config API.

Verify collaboration, access, and recovery.

  • Enable yjs.enabled, restart as required, and persist the configured storage directory.
  • Connect two editors, make concurrent changes, and confirm the documents converge.
  • Reconnect a stale client and verify it reconstructs current shared state.
  • Confirm a read-only account receives changes but cannot change the shared document.
  • Confirm a forbidden and missing record do not reveal different useful information.
  • Reconnect after permission or group changes.
  • Back up and restore the Yjs storage path together with application data.

The latest release contains the canonical-room permission fix documented in the published security advisory. Do not deploy affected older releases for record-backed collaboration.

Access matrix

Test the room model the product actually uses.

  • For record-backed rooms, verify Read permission receives updates and Update permission can edit.
  • Confirm denied and missing records share the same not-found behavior.
  • Reconnect after changing permissions because access is captured when the connection opens.
  • Treat a standalone room name as a capability shared among authenticated users who know it.
  • Restart the server and verify the Yjs update stream persists under the configured Daptin storage directory.

Pair collaborative content with its record.