mercury icon indicating copy to clipboard operation
mercury copied to clipboard

Enhancement: Add new apps via uploading jupyter notebooks via drag and drop in the browser

Open jonaslandsgesell opened this issue 2 years ago • 2 comments

It would be nice, if users could create new apps via uploading their custom jupyter notebooks via drag and drop in the browser on the home screen of mercury.

Due to security concerns, this feature should only be enabled in trustworthy environments, e.g. via explicitly submitting an additional command-line argument mercury run --enable-app-upload.

I am curious about your thoughts.

jonaslandsgesell avatar Jul 01 '22 11:07 jonaslandsgesell

That would be a killer feature!

Some thoughts:

  1. It should be available only for admin users (might be django superuser).
  2. Sometimes you need to upload not only notebook but also other files: data files, requirements.txt - how to handle that?
  3. Maybe it will be easier to specify the GitHub repo from which the notebook will be uploaded and used?
  4. Maybe it will be convenient to create a Python package that will deploy the notebook. Example usage:
from mercury import deploy
deploy(server="mercury-URL-or-IP-address-here", files=["my-notebook.ipynb", "requrements.txt", "data-file.csv"])

if user call the deploy() method then all files will be send to remote instance with Mercury server.

pplonski avatar Jul 01 '22 11:07 pplonski

I like your thoughts!

From my experience there is a need in developer teams for quickly being able to deploy small demonstrations/ some exploratory data analysis for others who only want to consume the results. Being able to just drag and drop a notebook for deployment would lower the entry-barrier for most users and add speed to this process.

Regarding your points:

  1. We could make the user upload an app as a zip file my_app.zip (instead of a bare ipynb file) which contains the files"my-notebook.ipynb", "requrements.txt", "data-file.csv".
  2. pulling from a remote repository or 4. pushing to a mercury server would each be a very nice feature. Both approaches would not completely remove the entry barrier for non-tech-savvy users (they would still need to deal with git etc.), but I like both approaches a lot.

jonaslandsgesell avatar Jul 01 '22 12:07 jonaslandsgesell

I'm starting to work on a dashboard for managing notebooks in Mercury. It will be available in Mercury Cloud service. Users will be able to set up Mercury Server with few clicks and upload notebooks to share them.

Additionally, dashboard feature will be available in a commercial license for Mercury Pro users.

pplonski avatar Feb 20 '23 09:02 pplonski