
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
jupyterlab-webrtc-docprovider
Advanced tools
Document collaboration for JupyterLab and JupyterLite, powered by y-webrtc
Document collaboration for JupyterLab, powered by y-webrtc.
room
URL parameters
http://localhost:8888/lab?room=demo
username
and usercolor
http://localhost:8888/lab?room=demo&username=jo&usercolor=e65100
To install the extension, run:
pip install jupyterlab-webrtc-docprovider
mamba install -c conda-forge jupyterlab-webrtc-docprovider
conda install -c conda-forge jupyterlab-webrtc-docprovider
For a development install, see the contributing guide.
Unlike JupyterLab's built-in, purely WebSocket-based collaborative document provider,
jupyterlab-webrtc-docprovider
relies on:
Jupyter Server is configured with jupyter_server_config.json
:
{
"LabServerApp": {
"collaborative": true
}
}
collaborative
This flag must be enabled for the provider to be used.
In JupyterLite, this is a configurable of
jupyter-config-data
injupyter-lite.json
.
User-configurable settings can be pre-populated in
{sys.prefix}/share/jupyter/lab/settings/overrides.json
: roomPrefix
and
signalingUrls
are security-related.
{
"@jupyterlite/webrtc-docprovider:plugin": {
"disabled": false,
"room": "an pre-shared room name",
"roomPrefix": "a-very-unique-name",
"signalingUrls": [
"wss://y-webrtc-signaling-eu.herokuapp.com",
"wss://y-webrtc-signaling-us.herokuapp.com",
"wss://signaling.yjs.dev"
],
"usercolor": "f57c00",
"username": "Jo V. Un"
}
}
In JupyterLite, this can be configured with an
overrides.json
roomPrefix
By default, the final room ID that is actually sent to the signaling server will be the SHA256 hash of the configured room prefix and the chosen room name.
By default this prefix is the domain serving the site, but for common URLs (like
localhost
) a more random prefix should be chosen.
signalingUrls
By default, a number of public signaling servers are provided, as described by y-webrtc, as shown above.
Note: the signaling server, as the name suggests, should only know high-level metadata about your exchange, and should be protected from third-parties by standard SSL encryption.
However, a real deployment should not rely on free hosted services at runtime. Some research would be required to find an appropriate server for your specific deployment.
username
The name displayed to others next to your cursor in shared editing sessions.
usercolor
A suggested color of your cursor, as displayed to others next in shared editing sessions.
To remove the extension, run:
pip uninstall jupyterlab_webrtc_docprovider
mamba uninstall jupyterlab_webrtc_docprovider
conda uninstall jupyterlab_webrtc_docprovider
This work is licensed under the BSD 3-Clause License.
The code was originally extracted from JupyterLite and JupyterLab, which are also covered under the BSD 3-Clause License.
Two vendored patches (special thanks to @datakurre) are applied to simple-peer and int64-buffer, both of which are licensed under the MIT license, and should hopefully be merged some day.
FAQs
Document collaboration for JupyterLab and JupyterLite, powered by y-webrtc
We found that jupyterlab-webrtc-docprovider demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.