jupyter-server-proxy


Namejupyter-server-proxy JSON
Version 4.1.2 PyPI version JSON
download
home_page
SummaryA Jupyter server extension to run additional processes and proxy to them that comes bundled JupyterLab extension to launch pre-defined processes.
upload_time2024-03-13 22:05:04
maintainer
docs_urlNone
author
requires_python>=3.8
licenseBSD 3-Clause License Copyright (c) 2017, Data Science 8 All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
keywords jupyter jupyterlab jupyterlab-extension
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Jupyter Server Proxy

[![ReadTheDocs badge](https://img.shields.io/readthedocs/jupyter-server-proxy?logo=read-the-docs)](https://jupyter-server-proxy.readthedocs.io/)
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/jupyterhub/jupyter-server-proxy/test.yaml?logo=github&branch=main)](https://github.com/jupyterhub/jupyter-server-proxy/actions)
[![PyPI badge](https://img.shields.io/pypi/v/jupyter-server-proxy.svg?logo=pypi)](https://pypi.python.org/pypi/jupyter-server-proxy)
[![Conda badge](https://img.shields.io/conda/vn/conda-forge/jupyter-server-proxy?logo=conda-forge)](https://anaconda.org/conda-forge/jupyter-server-proxy)
[![NPM badge](https://img.shields.io/npm/v/@jupyterhub/jupyter-server-proxy.svg?logo=npm)](https://www.npmjs.com/package/@jupyterhub/jupyter-server-proxy)

Jupyter Server Proxy lets you run arbitrary external processes (such as
RStudio, Shiny Server, Syncthing, PostgreSQL, Code Server, etc)
alongside your notebook server and provide authenticated web access to
them using a path like `/rstudio` next to others like `/lab`. Alongside
the python package that provides the main functionality, the JupyterLab
extension (`@jupyterhub/jupyter-server-proxy`) provides buttons in the
JupyterLab launcher window to get to RStudio for example.

**Note:** This project used to be called **nbserverproxy**. As
nbserverproxy is an older version of jupyter-server-proxy, uninstall
nbserverproxy before installing jupyter-server-proxy to avoid conflicts.

The primary use cases are:

1.  Use with JupyterHub / Binder to allow launching users into web
    interfaces that have nothing to do with Jupyter - such as RStudio,
    Shiny, or OpenRefine.
2.  Allow access from frontend javascript (in classic notebook or
    JupyterLab extensions) to access web APIs of other processes running
    locally in a safe manner. This is used by the [JupyterLab
    extension](https://github.com/dask/dask-labextension) for
    [dask](https://www.dask.org/).

[The documentation](https://jupyter-server-proxy.readthedocs.io/)
contains information on installation & usage.

## Security warning

Jupyter Server Proxy is often used to start a user defined process listening to
some network port (e.g. `http://localhost:4567`) for a user starting a Jupyter Server
that only that user has permission to access. The user can then access the
started process proxied through the Jupyter Server.

For safe use of Jupyter Server Proxy, you should ensure that the process started
by Jupyter Server proxy can't be accessed directly by another user and bypass
the Jupyter Server's authorization!

A common strategy to enforce access proxied via Jupyter Server is to start
Jupyter Server within a container and only allow network access to the Jupyter
Server via the container.

> For more insights, see [Ryan Lovett's comment about
> it](https://github.com/jupyterhub/jupyter-server-proxy/pull/359#issuecomment-1350118197).

## Install

### Python package

#### `pip`

```bash
pip install jupyter-server-proxy
```

#### `conda`

```bash
conda install -c conda-forge jupyter-server-proxy
```

### Jupyter Client Extensions

A JupyterLab and Notebook extension is bundled with the Python package to
provide:

- servers in the _New_ dropwdown of the Notebook Tree view
- launch buttons in JupyterLab's Launcher panel for registered server processes.
  - ![a screenshot of the JupyterLab Launcher](docs/source/_static/images/labextension-launcher.png "launch proxied servers as JupyterLab panels or new browser tabs")

#### Client compatibility

For historical compatibility ranges, see the table below:

| `jupyter-server-proxy` | `notebook` | `jupyterlab` |
| :--------------------: | :--------: | :----------: |
|        `4.1.x`         |  `>=6,<8`  |   `>=3,<5`   |
|        `4.0.x`         |  `>=6,<7`  |   `>=3,<4`   |
|         `3.x`          |  `>=6,<7`  |   `>=2,<4`   |

## Disable

### Server extension

```bash
jupyter serverextension disable --sys-prefix jupyter_server_proxy
jupyter server extension disable --sys-prefix jupyter_server_proxy
```

### Notebook Classic extension

```bash
jupyter nbextension disable --sys-prefix --py jupyter_server_proxy
```

### JupyterLab extension

```bash
jupyter labextension disable @jupyterhub/jupyter-server-proxy
```

#### Local development

To setup a local development environment, see the [contributing guide](https://github.com/jupyterhub/jupyter-server-proxy/blob/main/CONTRIBUTING.md).

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "jupyter-server-proxy",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "jupyter,jupyterlab,jupyterlab-extension",
    "author": "",
    "author_email": "Ryan Lovett <rylo@berkeley.edu>, Yuvi Panda <yuvipanda@gmail.com>, Jupyter Development Team <jupyter@googlegroups.com>",
    "download_url": "https://files.pythonhosted.org/packages/b6/9f/165d8a8edb852cacaafff2bf36709dd6dedb93f640ba044bc0ba2f739111/jupyter_server_proxy-4.1.2.tar.gz",
    "platform": null,
    "description": "# Jupyter Server Proxy\n\n[![ReadTheDocs badge](https://img.shields.io/readthedocs/jupyter-server-proxy?logo=read-the-docs)](https://jupyter-server-proxy.readthedocs.io/)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/jupyterhub/jupyter-server-proxy/test.yaml?logo=github&branch=main)](https://github.com/jupyterhub/jupyter-server-proxy/actions)\n[![PyPI badge](https://img.shields.io/pypi/v/jupyter-server-proxy.svg?logo=pypi)](https://pypi.python.org/pypi/jupyter-server-proxy)\n[![Conda badge](https://img.shields.io/conda/vn/conda-forge/jupyter-server-proxy?logo=conda-forge)](https://anaconda.org/conda-forge/jupyter-server-proxy)\n[![NPM badge](https://img.shields.io/npm/v/@jupyterhub/jupyter-server-proxy.svg?logo=npm)](https://www.npmjs.com/package/@jupyterhub/jupyter-server-proxy)\n\nJupyter Server Proxy lets you run arbitrary external processes (such as\nRStudio, Shiny Server, Syncthing, PostgreSQL, Code Server, etc)\nalongside your notebook server and provide authenticated web access to\nthem using a path like `/rstudio` next to others like `/lab`. Alongside\nthe python package that provides the main functionality, the JupyterLab\nextension (`@jupyterhub/jupyter-server-proxy`) provides buttons in the\nJupyterLab launcher window to get to RStudio for example.\n\n**Note:** This project used to be called **nbserverproxy**. As\nnbserverproxy is an older version of jupyter-server-proxy, uninstall\nnbserverproxy before installing jupyter-server-proxy to avoid conflicts.\n\nThe primary use cases are:\n\n1.  Use with JupyterHub / Binder to allow launching users into web\n    interfaces that have nothing to do with Jupyter - such as RStudio,\n    Shiny, or OpenRefine.\n2.  Allow access from frontend javascript (in classic notebook or\n    JupyterLab extensions) to access web APIs of other processes running\n    locally in a safe manner. This is used by the [JupyterLab\n    extension](https://github.com/dask/dask-labextension) for\n    [dask](https://www.dask.org/).\n\n[The documentation](https://jupyter-server-proxy.readthedocs.io/)\ncontains information on installation & usage.\n\n## Security warning\n\nJupyter Server Proxy is often used to start a user defined process listening to\nsome network port (e.g. `http://localhost:4567`) for a user starting a Jupyter Server\nthat only that user has permission to access. The user can then access the\nstarted process proxied through the Jupyter Server.\n\nFor safe use of Jupyter Server Proxy, you should ensure that the process started\nby Jupyter Server proxy can't be accessed directly by another user and bypass\nthe Jupyter Server's authorization!\n\nA common strategy to enforce access proxied via Jupyter Server is to start\nJupyter Server within a container and only allow network access to the Jupyter\nServer via the container.\n\n> For more insights, see [Ryan Lovett's comment about\n> it](https://github.com/jupyterhub/jupyter-server-proxy/pull/359#issuecomment-1350118197).\n\n## Install\n\n### Python package\n\n#### `pip`\n\n```bash\npip install jupyter-server-proxy\n```\n\n#### `conda`\n\n```bash\nconda install -c conda-forge jupyter-server-proxy\n```\n\n### Jupyter Client Extensions\n\nA JupyterLab and Notebook extension is bundled with the Python package to\nprovide:\n\n- servers in the _New_ dropwdown of the Notebook Tree view\n- launch buttons in JupyterLab's Launcher panel for registered server processes.\n  - ![a screenshot of the JupyterLab Launcher](docs/source/_static/images/labextension-launcher.png \"launch proxied servers as JupyterLab panels or new browser tabs\")\n\n#### Client compatibility\n\nFor historical compatibility ranges, see the table below:\n\n| `jupyter-server-proxy` | `notebook` | `jupyterlab` |\n| :--------------------: | :--------: | :----------: |\n|        `4.1.x`         |  `>=6,<8`  |   `>=3,<5`   |\n|        `4.0.x`         |  `>=6,<7`  |   `>=3,<4`   |\n|         `3.x`          |  `>=6,<7`  |   `>=2,<4`   |\n\n## Disable\n\n### Server extension\n\n```bash\njupyter serverextension disable --sys-prefix jupyter_server_proxy\njupyter server extension disable --sys-prefix jupyter_server_proxy\n```\n\n### Notebook Classic extension\n\n```bash\njupyter nbextension disable --sys-prefix --py jupyter_server_proxy\n```\n\n### JupyterLab extension\n\n```bash\njupyter labextension disable @jupyterhub/jupyter-server-proxy\n```\n\n#### Local development\n\nTo setup a local development environment, see the [contributing guide](https://github.com/jupyterhub/jupyter-server-proxy/blob/main/CONTRIBUTING.md).\n",
    "bugtrack_url": null,
    "license": "BSD 3-Clause License  Copyright (c) 2017, Data Science 8 All rights reserved.  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:  * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.  * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",
    "summary": "A Jupyter server extension to run additional processes and proxy to them that comes bundled JupyterLab extension to launch pre-defined processes.",
    "version": "4.1.2",
    "project_urls": {
        "Documentation": "https://jupyter-server-proxy.readthedocs.io",
        "Source": "https://github.com/jupyterhub/jupyter-server-proxy",
        "Tracker": "https://github.com/jupyterhub/jupyter-server-proxy/issues"
    },
    "split_keywords": [
        "jupyter",
        "jupyterlab",
        "jupyterlab-extension"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "30135497ae65c997006b054e492632363cb18ba33f482a95400f1caba8931b67",
                "md5": "f29ecb4436c3882fdab2bb424bc1d7d9",
                "sha256": "f97bd0c6bbba4931d8ae22bef872703c9785fc1258c4bc196955e2bd034f3eaa"
            },
            "downloads": -1,
            "filename": "jupyter_server_proxy-4.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f29ecb4436c3882fdab2bb424bc1d7d9",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 34741,
            "upload_time": "2024-03-13T22:05:01",
            "upload_time_iso_8601": "2024-03-13T22:05:01.318581Z",
            "url": "https://files.pythonhosted.org/packages/30/13/5497ae65c997006b054e492632363cb18ba33f482a95400f1caba8931b67/jupyter_server_proxy-4.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b69f165d8a8edb852cacaafff2bf36709dd6dedb93f640ba044bc0ba2f739111",
                "md5": "1a8d36762786cdd00ca9e198be503cf1",
                "sha256": "6fd8ce88a0100e637b48f1d3aa32f09672bcb2813dc057d70567f0a40b1237f5"
            },
            "downloads": -1,
            "filename": "jupyter_server_proxy-4.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "1a8d36762786cdd00ca9e198be503cf1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 133085,
            "upload_time": "2024-03-13T22:05:04",
            "upload_time_iso_8601": "2024-03-13T22:05:04.142529Z",
            "url": "https://files.pythonhosted.org/packages/b6/9f/165d8a8edb852cacaafff2bf36709dd6dedb93f640ba044bc0ba2f739111/jupyter_server_proxy-4.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-13 22:05:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jupyterhub",
    "github_project": "jupyter-server-proxy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "jupyter-server-proxy"
}
        
Elapsed time: 0.25036s