Releases: stellarshenson/jupyterlab_share_files_extension
Releases · stellarshenson/jupyterlab_share_files_extension
1.2.20
First public release of the complete Share Files extension for JupyterLab. Every release ships the full feature set; this one delivers all of:
Sharing
- Shares - read-only drops of files and folders created from the side panel, the file browser context menu ("Share Files...") or drag-and-drop; recipients download single files, folder ZIPs or everything at once
- Requests - inboxes others upload into, organised per uploader, with live upload notifications and per-upload management
- Connections - paste a peer's link to subscribe to their share or upload to their request; pick-up to any workspace folder, send-to-request with folder structure preserved
- Standalone HTML page - every link works in a plain browser, no JupyterLab needed; QR code in the link dialog for phones
Security
- Optional password protection - set a password at creation or later (right-click -> Set Password, or
set-passwordon the CLI); it gates the standalone page, manifest, downloads and uploads; memorable passphrases generated via xkcdpass; the link dialog shows the password with its own copy button - Brute-force protection - unlock attempts rate limited per resource (the
limitslibrary): per-minute cap plus a mandatory cooldown, generous defaults (30/minute, 1s) tunable in config - Protected connections - connecting to a password-protected link prompts for the password, verifies it against the peer at connect time and unlocks automatically afterwards
- Hardening - HTTPS-aware links, self-connect guard, path-traversal-safe storage, secrets chmod-600 and masked in output, cloudflared token passed via environment (never visible in
ps)
Cloudflare tunnel sharing
- Links usable from the whole internet through an outbound-only Cloudflare tunnel - chosen for security: edge-enforced HTTPS and path-restricted ingress mean only the extension's
/public/...endpoints are routable; the hub login, authenticated APIs and the private network answer 404 at the edge - Provisioned end to end from the panel popup or
cloudflare setup; public/private toggle via the cloud icon orcloudflare start/stop; per-user deterministic tunnel names; connector daemon guaranteed by the extension with configurable autostart; server-side link reachability check in the link dialog
CLI
jupyterlab_share_filesexposes every panel operation as a subcommand: shares, requests, connections, passwords (--password,--generate-password,set-password,generate-password) and the full Cloudflare lifecycle (setup,validate,info,start,stop,reset); human-readable coloured output by default,--jsonfor machines
Panel UX
- Drag-and-drop everywhere (new share, add to share, upload to request), in-share folder browsing, open files directly in JupyterLab, copy/paste with the file browser, filtering, configurable polling, hidden-file toggle, delete-to-trash
Install: pip install jupyterlab-share-files-extension
Full feature list: RELEASE.md - per-version changes: CHANGELOG.md