You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We already have some kind of ad-hoc schema for the WebSocket endpoint path, e.g.:
/api/collaboration/room/json:notebook:{document_id}: for connecting to a notebook.
/api/collaboration/room/text:file:{document_id}: for connecting to a text file.
/api/collaboration/room/JupyterLab:globalAwareness: for connecting to the "awareness".
If we wanted to have collaborative widgets, or directory content, we could have:
/api/collaboration/room/ywidget:{widget_id}: for connecting to a collaborative widget.
/api/collaboration/room/drive:{drive_id}: for connecting to a drive.
We currently assume that if an endpoint path has two colons (like json:notebook:{document_id} or text:file:{document_id}), then the corresponding shared document is file-backed (that's how we dump files to disk). And we assume that if an endpoint path has only one colon (like /api/collaboration/room/JupyterLab:globalAwareness), then it is a "transient" document that is not file-backed. Widgets would not be file-backed, but drives would be, although maybe not in the sense of a regular file that needs to talk to the file ID service.
Proposed Solution
We should normalize the structure of the Y-WebSocket endpoint paths. The number of colons doesn't seem to be a solid solution, and we should probably have a field saying if the document is file-backed.
Problem
We already have some kind of ad-hoc schema for the WebSocket endpoint path, e.g.:
/api/collaboration/room/json:notebook:{document_id}
: for connecting to a notebook./api/collaboration/room/text:file:{document_id}
: for connecting to a text file./api/collaboration/room/JupyterLab:globalAwareness
: for connecting to the "awareness".If we wanted to have collaborative widgets, or directory content, we could have:
/api/collaboration/room/ywidget:{widget_id}
: for connecting to a collaborative widget./api/collaboration/room/drive:{drive_id}
: for connecting to a drive.We currently assume that if an endpoint path has two colons (like
json:notebook:{document_id}
ortext:file:{document_id}
), then the corresponding shared document is file-backed (that's how we dump files to disk). And we assume that if an endpoint path has only one colon (like/api/collaboration/room/JupyterLab:globalAwareness
), then it is a "transient" document that is not file-backed. Widgets would not be file-backed, but drives would be, although maybe not in the sense of a regular file that needs to talk to the file ID service.Proposed Solution
We should normalize the structure of the Y-WebSocket endpoint paths. The number of colons doesn't seem to be a solid solution, and we should probably have a field saying if the document is file-backed.
cc @ellisonbg
The text was updated successfully, but these errors were encountered: