Security
Headlines
HeadlinesLatestCVEs

Headline

CVE-2022-21697

Jupyter Server Proxy is a Jupyter notebook server extension to proxy web services. Versions of Jupyter Server Proxy prior to 3.2.1 are vulnerable to Server-Side Request Forgery (SSRF). Any user deploying Jupyter Server or Notebook with jupyter-proxy-server extension enabled is affected. A lack of input validation allows authenticated clients to proxy requests to other hosts, bypassing the allowed_hosts check. Because authentication is required, which already grants permissions to make the same requests via kernel or terminal execution, this is considered low to moderate severity. Users may upgrade to version 3.2.1 to receive a patch or, as a workaround, install the patch manually.

CVE
#sql#web#ubuntu#nodejs#js#git

From 510ea4d9f3858e64acf4170d9aa8f70ff875523c Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 00:09:33 +0100 Subject: [PATCH 01/17] ci: avoid triggering ci twice on pre-commit.ci/dependabot prs — .github/workflows/publish.yaml | 24 +++++++++++++++++++++± .github/workflows/test.yaml | 35 ++++++++++++++++±---------------- 2 files changed, 41 insertions(+), 18 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index b12903f…f7dc5ba 100644 — a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -1,8 +1,30 @@ +# This is a GitHub workflow defining a set of jobs with a set of steps. +# ref: https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions +# # Publish PyPI and NPM artifacts +# name: Publish + on: - push: pull_request: + paths-ignore: + - “docs/**” + - “contrib/**” + - “**.md” + - “**.rst” + - “.github/workflows/*” + - “!.github/workflows/publish.yaml” + push: + paths-ignore: + - “docs/**” + - “contrib/**” + - “**.md” + - “**.rst” + - “.github/workflows/*” + - “!.github/workflows/publish.yaml” + branches-ignore: + - “dependabot/**” + - “pre-commit-ci-update-config” workflow_dispatch: jobs: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 2c2f4e3…78770cf 100644 — a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,29 +1,30 @@ # This is a GitHub workflow defining a set of jobs with a set of steps. -# ref: https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions +# ref: https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions # name: Test -# Trigger the workflow’s on all PRs but only on pushed tags or commits to -# main/master branch to avoid PRs developed in a GitHub fork’s dedicated branch -# to trigger. on: pull_request: + paths-ignore: + - “docs/**” + - “contrib/**” + - “**.md” + - “**.rst” + - “.github/workflows/*” + - “!.github/workflows/test.yaml” push: - branches: - tags: + paths-ignore: + - “docs/**” + - “contrib/**” + - “**.md” + - “**.rst” + - “.github/workflows/*” + - “!.github/workflows/test.yaml” + branches-ignore: + - “dependabot/**” + - “pre-commit-ci-update-config” workflow_dispatch: -defaults: - run: - # Declare bash be used by default in this workflow’s “run” steps. - # - # NOTE: bash will by default run with: - # --noprofile: Ignore ~/.profile etc. - # --norc: Ignore ~/.bashrc etc. - # -e: Exit directly on errors - # -o pipefail: Don’t mask errors from a command piped into another command - shell: bash - jobs: test: runs-on: ubuntu-20.04 From b1dc09aa6645f4ca5cdde40fc78b7f161fce5f18 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 00:13:53 +0100 Subject: [PATCH 02/17] Update language, from master to main — …/template/{{cookiecutter.project_name}}/setup.py | 2 ± contrib/theia/setup.py | 2 ± docs/conf.py | 10 ++++±---- jupyter_server_proxy/utils.py | 3 +± 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/contrib/template/{{cookiecutter.project_name}}/setup.py b/contrib/template/{{cookiecutter.project_name}}/setup.py index 0079c64…666a80f 100644 — a/contrib/template/{{cookiecutter.project_name}}/setup.py +++ b/contrib/template/{{cookiecutter.project_name}}/setup.py @@ -3,7 +3,7 @@ setuptools.setup( name="jupyter-{{cookiecutter.project_name}}-proxy", version=’1.0dev’, - url="https://github.com/jupyterhub/jupyter-server-proxy/tree/master/contrib/{{cookiecutter.project_name}}", + url="https://github.com/jupyterhub/jupyter-server-proxy/tree/HEAD/contrib/{{cookiecutter.project_name}}", author="{{cookiecutter.author_name}}", description="{{cookiecutter.author_email}}", packages=setuptools.find_packages(), diff --git a/contrib/theia/setup.py b/contrib/theia/setup.py index 333ffcb…0014f81 100644 — a/contrib/theia/setup.py +++ b/contrib/theia/setup.py @@ -3,7 +3,7 @@ setuptools.setup( name="jupyter-theia-proxy", version=’1.0dev’, - url="https://github.com/jupyterhub/jupyter-server-proxy/tree/master/contrib/theia", + url="https://github.com/jupyterhub/jupyter-server-proxy/tree/HEAD/contrib/theia", author="Project Jupyter Contributors", description="[email protected]", packages=setuptools.find_packages(), diff --git a/docs/conf.py b/docs/conf.py index 16cdfd1…e1a9e84 100644 — a/docs/conf.py +++ b/docs/conf.py @@ -52,8 +52,8 @@ # source_suffix = ['.rst’, ‘.md’] source_suffix = ‘.rst’ -# The master toctree document. -master_doc = ‘index’ +# The root toctree document. +root_doc = master_doc = ‘index’ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -130,7 +130,7 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'JupyterServerProxy.tex’, u’Jupyter ServerProxy Documentation’, + (root_doc, 'JupyterServerProxy.tex’, u’Jupyter ServerProxy Documentation’, u’Yuvi Panda’, ‘manual’), ] @@ -140,7 +140,7 @@ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ - (master_doc, 'jupyterserverproxy’, u’Jupyter ServerProxy Documentation’, + (root_doc, ‘jupyterserverproxy’, u’Jupyter ServerProxy Documentation’, [author], 1) ] @@ -151,7 +151,7 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, ‘JupyterServerProxy’, u’Jupyter ServerProxy Documentation’, + (root_doc, ‘JupyterServerProxy’, u’Jupyter ServerProxy Documentation’, author, ‘JupyterServerProxy’, ‘One line description of project.’, ‘Miscellaneous’), ] diff --git a/jupyter_server_proxy/utils.py b/jupyter_server_proxy/utils.py index 725602c…2372447 100644 — a/jupyter_server_proxy/utils.py +++ b/jupyter_server_proxy/utils.py @@ -33,7 +33,8 @@ def call_with_asked_args(callback, args): ) return callback(*asked_arg_values) -# copy-pasted from the master of Traitlets source +# copy-pasted from the ipython/traitlets source code, see +# https://github.com/ipython/traitlets/blob/a1425327460c4a3ae970aeaef17e0c22da4c53c6/traitlets/traitlets.py#L3232-L3246 class Callable(TraitType): """A trait which is callable. Notes From ccaa292a8d974efc86ddc2996fe9cc7320ec5ae5 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 00:15:36 +0100 Subject: [PATCH 03/17] Remove no longer needed logic involving six — jupyter_server_proxy/utils.py | 3 ±- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jupyter_server_proxy/utils.py b/jupyter_server_proxy/utils.py index 725602c…309ee54 100644 — a/jupyter_server_proxy/utils.py +++ b/jupyter_server_proxy/utils.py @@ -1,5 +1,4 @@ from traitlets import TraitType -import six def call_with_asked_args(callback, args): “"” @@ -44,7 +43,7 @@ class Callable(TraitType): info_text = ‘a callable’ def validate(self, obj, value): - if six.callable(value): + if callable(value): return value else: self.error(obj, value) From 4b974715701a7310f913a64a6a4ecfae5086ccc9 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 13:22:42 +0100 Subject: [PATCH 04/17] docs: update Makefile with devenv and linkcheck — docs/Makefile | 23 +++++++++++++++++++±-- docs/make.bat | 38 ++++++++++++++++++++++++++++±-------- 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index 298ea9e…5fd9d87 100644 — a/docs/Makefile +++ b/docs/Makefile @@ -2,8 +2,8 @@ # # You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build SOURCEDIR = . BUILDDIR = _build @@ -16,4 +16,21 @@ help: # Catch-all target: route all unknown targets to Sphinx using the new # “make mode” option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +# Manually added commands +# ---------------------------------------------------------------------------- + +# For local development: +# - builds and rebuilds html on changes to source +# - starts a livereload enabled webserver and opens up a browser +devenv: + sphinx-autobuild -b html --open-browser "$(SOURCEDIR)" “$(BUILDDIR)/html” $(SPHINXOPTS) + +# For local development and CI: +# - verifies that links are valid +linkcheck: + $(SPHINXBUILD) -b linkcheck "$(SOURCEDIR)" “$(BUILDDIR)/linkcheck” $(SPHINXOPTS) + @echo + @echo "Link check complete; look for any errors in the above output " \ + “or in $(BUILDDIR)/linkcheck/output.txt.” diff --git a/docs/make.bat b/docs/make.bat index 27f573b…ba30c17 100644 — a/docs/make.bat +++ b/docs/make.bat @@ -11,25 +11,45 @@ set SOURCEDIR=. set BUILDDIR=_build if “%1” == “” goto help +if “%1” == “devenv” goto devenv +if “%1” == “linkcheck” goto linkcheck +goto default + +:default %SPHINXBUILD% >NUL 2>NUL if errorlevel 9009 ( echo. - echo.The ‘sphinx-build’ command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the ‘sphinx-build’ executable. Alternatively you - echo.may add the Sphinx directory to PATH. + echo.The ‘sphinx-build’ command was not found. Open and read README.md! + exit /b 1 +) +%SPHINXBUILD% -M %1 “%SOURCEDIR%” “%BUILDDIR%” %SPHINXOPTS% +goto end + + +:help +%SPHINXBUILD% -M help “%SOURCEDIR%” “%BUILDDIR%” %SPHINXOPTS% +goto end + + +:devenv +sphinx-autobuild >NUL 2>NUL +if errorlevel 9009 ( echo. - echo.If you don’t have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ + echo.The ‘sphinx-autobuild’ command was not found. Open and read README.md! exit /b 1 ) +sphinx-autobuild -b html --open-browser “…/jupyterhub/schema.yaml” “%SOURCEDIR%” “%BUILDDIR%/html” %SPHINXOPTS% +goto end + -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% +:linkcheck +%SPHINXBUILD% -b linkcheck “%SOURCEDIR%” “%BUILDDIR%/linkcheck” %SPHINXOPTS% +echo. +echo.Link check complete; look for any errors in the above output +echo.or in "%BUILDDIR%/linkcheck/output.txt". goto end -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% :end popd From f76842e57b939ca08ec02297e2bbf2b87f8f3db1 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 13:23:16 +0100 Subject: [PATCH 05/17] docs: update conf.py to not clutter as much — docs/conf.py | 114 +++++±-------------------------------------------- 1 file changed, 12 insertions(+), 102 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index e1a9e84…8ed7900 100644 — a/docs/conf.py +++ b/docs/conf.py @@ -1,32 +1,19 @@ -# -*- coding: utf-8 -*- +# Configuration file for Sphinx to build our documentation to HTML. # -# Configuration file for the Sphinx documentation builder. +# Configuration reference: https://www.sphinx-doc.org/en/master/usage/configuration.html # -# This file does only contain a selection of the most common options. For a -# full list see the documentation: -# http://www.sphinx-doc.org/en/master/config -# – Path setup -------------------------------------------------------------- -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -# import os -# import sys -# sys.path.insert(0, os.path.abspath(‘.’)) +# – Project specific imports ------------------------------------------------ +import datetime -# – Project information ----------------------------------------------------- -project = u’Jupyter ServerProxy’ -copyright = u’2019, Yuvi Panda’ -author = u’Yuvi Panda’ +# – Project information ----------------------------------------------------- -# The short X.Y version -version = u’’ -# The full version, including alpha/beta/rc tags -release = u’1.0’ +project = “Jupyter Server Proxy” +copyright = f"{datetime.date.today().year}, Project Jupyter Contributors" +author = “Project Jupyter Contributors” # – General configuration --------------------------------------------------- @@ -41,16 +28,15 @@ extensions = [ 'sphinx.ext.intersphinx’, 'sphinx.ext.todo’, + "sphinx_copybutton", + "myst_parser", ] # Add any paths that contain templates here, relative to this directory. templates_path = [‘_templates’] # The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# -# source_suffix = ['.rst’, ‘.md’] -source_suffix = ‘.rst’ +source_suffix = [".md", “.rst”] # The root toctree document. root_doc = master_doc = ‘index’ @@ -100,88 +86,12 @@ # html_sidebars = {} -# – Options for HTMLHelp output --------------------------------------------- - -# Output file base name for HTML help builder. -htmlhelp_basename = ‘JupyterServerProxydoc’ - - -# – Options for LaTeX output ------------------------------------------------ - -latex_elements = { - # The paper size (‘letterpaper’ or ‘a4paper’). - # - # 'papersize’: 'letterpaper’, - - # The font size ('10pt’, ‘11pt’ or ‘12pt’). - # - # 'pointsize’: '10pt’, - - # Additional stuff for the LaTeX preamble. - # - # 'preamble’: '’, - - # Latex figure (float) alignment - # - # 'figure_align’: 'htbp’, -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (root_doc, 'JupyterServerProxy.tex’, u’Jupyter ServerProxy Documentation’, - u’Yuvi Panda’, ‘manual’), -] - - -# – Options for manual page output ------------------------------------------ - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (root_doc, 'jupyterserverproxy’, u’Jupyter ServerProxy Documentation’, - [author], 1) -] - - -# – Options for Texinfo output ---------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (root_doc, 'JupyterServerProxy’, u’Jupyter ServerProxy Documentation’, - author, 'JupyterServerProxy’, 'One line description of project.’, - ‘Miscellaneous’), -] - - -# – Options for Epub output ------------------------------------------------- - -# Bibliographic Dublin Core info. -epub_title = project - -# The unique identifier of the text. This can be a ISBN number -# or the project homepage. -# -# epub_identifier = ‘’ - -# A unique identification for the text. -# -# epub_uid = ‘’ - -# A list of files that should not be packed into the epub file. -epub_exclude_files = [‘search.html’] - - -# – Extension configuration ------------------------------------------------- - # – Options for intersphinx extension --------------------------------------- # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = {’https://docs.python.org/’: None} + # – Options for todo extension ---------------------------------------------- # If true, `todo` and `todoList` produce output, else they produce nothing. From 45eeb0bea73127e62f191bf1277db2e75e89fc9e Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 13:32:24 +0100 Subject: [PATCH 06/17] docs: prepare for but don’t switch to pydata theme yet — .readthedocs.yaml | 19 +++++++++++++++++++ docs/conf.py | 40 +++++++++++++++++±--------------------- docs/requirements.txt | 4 ++++ 3 files changed, 41 insertions(+), 22 deletions(-) create mode 100644 .readthedocs.yaml create mode 100644 docs/requirements.txt diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000…afa6a4e — /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,19 @@ +# Configuration on how ReadTheDocs (RTD) builds our documentation +# ref: https://readthedocs.org/projects/jupyter-server-proxy/ +# ref: https://docs.readthedocs.io/en/stable/config-file/v2.html +# +version: 2 + +build: + os: ubuntu-20.04 + tools: + python: “3.9” + +python: + install: + - requirements: docs/requirements.txt + +sphinx: + configuration: docs/conf.py + +formats: [] diff --git a/docs/conf.py b/docs/conf.py index 8ed7900…b449586 100644 — a/docs/conf.py +++ b/docs/conf.py @@ -58,32 +58,28 @@ # – Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = ‘alabaster’ - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# -# html_theme_options = {} +# ref: http://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +# FIXME: change to pydata_sphinx_theme +html_theme = “alabaster” +html_theme_options = { + "github_url": "https://github.com/jupyterhub/jupyter-server-proxy/", + "use_edit_page_button": True, +} +html_context = { + "github_user": "jupyterhub", + "github_repo": "jupyter-server-proxy", + "github_version": "main", + "doc_path": "docs", +} + +html_favicon = “_static/images/logo/favicon.ico” +html_logo = “_static/images/logo/logo.png” # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named “default.css” will overwrite the builtin "default.css". -html_static_path = [‘_static’] - -# Custom sidebar templates, must be a dictionary that maps document names -# to template names. -# -# The default sidebars (for documents that don’t match any pattern) are -# defined by theme itself. Builtin themes are using these templates by -# default: ``['localtoc.html’, 'relations.html’, ‘sourcelink.html’, -# ‘searchbox.html’]``. -# -# html_sidebars = {} +html_static_path = [“_static”] # – Options for intersphinx extension --------------------------------------- diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000…ec2e63e — /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,4 @@ +myst-parser +pydata-sphinx-theme +sphinx-autobuild +sphinx-copybutton From dd63f2a04cef659828948458e86c5fdcf4cb0ca8 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 13:39:09 +0100 Subject: [PATCH 07/17] docs: add linkcheck test — .github/workflows/linkcheck.yaml | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/linkcheck.yaml diff --git a/.github/workflows/linkcheck.yaml b/.github/workflows/linkcheck.yaml new file mode 100644 index 0000000…e4a32e6 — /dev/null +++ b/.github/workflows/linkcheck.yaml @@ -0,0 +1,35 @@ +# This is a GitHub workflow defining a set of jobs with a set of steps. ref: +# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions +# +name: Linkcheck + +on: + pull_request: + paths: + - “docs/**” + - “**/linkcheck.yaml” + push: + paths: + - “docs/**” + - “**/linkcheck.yaml” + branches-ignore: + - “dependabot/**” + - “pre-commit-ci-update-config” + workflow_dispatch: + +jobs: + linkcheck: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: “3.8” + + - name: Install deps + run: pip install -r docs/requirements.txt + + - name: make linkcheck + run: | + cd docs + make linkcheck SPHINXOPTS=’–color -W --keep-going’ From 5396b6ad6276ec28974107ca29f0264e70c38a5f Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 13:43:51 +0100 Subject: [PATCH 08/17] docs: update links for the new linkcheck test — contrib/theia/README.rst | 6 ++±-- docs/convenience/new.rst | 2 ± docs/server-process.rst | 2 ± 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contrib/theia/README.rst b/contrib/theia/README.rst index c749746…b407515 100644 — a/contrib/theia/README.rst +++ b/contrib/theia/README.rst @@ -2,7 +2,7 @@ Theia IDE ========= -`Theia `_ is a configurable web based IDE +`Theia `_ is a configurable web based IDE built with components from `Visual Studio Code `_. This package is a plugin for `jupyter-server-proxy `_ @@ -12,12 +12,12 @@ in a JupyterHub / Binder environment. Installing Theia ================ -#. `Install the ``yarn`` package manager `_ +#. `Install the ``yarn`` package manager `_ with one of the available methods. #. Theia is highly configurable, so you need to decide which features you want in your theia install. Make a ``package.json`` with the list of extensions you want, - following `the instructions here `_. + following `the instructions here `_. Here is an example: diff --git a/docs/convenience/new.rst b/docs/convenience/new.rst index b59abbb…2163315 100644 — a/docs/convenience/new.rst +++ b/docs/convenience/new.rst @@ -4,7 +4,7 @@ Making a new convenience package ================================ -There is a `cookiecutter `_ +There is a `cookiecutter `_ template provided in this repo that can be used to make new packages. … code:: bash diff --git a/docs/server-process.rst b/docs/server-process.rst index f579dae…a9badb2 100644 — a/docs/server-process.rst +++ b/docs/server-process.rst @@ -234,7 +234,7 @@ if we want tighter control over what process is spawned. } } - This will start `OpenRefine `_ with the + This will start `OpenRefine `_ with the ``refine`` command (which must be in $PATH) on a randomly generated port, and make it available under ``/openrefine`` in your notebook url. The URL path is specified by the key, From cdc835851f0c507984225d0979c7ce79252b4920 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 13:47:21 +0100 Subject: [PATCH 09/17] Update .gitignore — .gitignore | 155 ++++++++++++++++++++++++++++++++++++++++++++++++±— 1 file changed, 146 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 8b53b5d…d2bfb0b 100644 — a/.gitignore +++ b/.gitignore @@ -1,12 +1,149 @@ -.coverage* -.ipynb_checkpoints/ -.vscode -*.egg-info/ -*.pyc -build/ -dist -docs/_build +# Manually added entries +# +jsdist jupyter_server_proxy/labextension -MANIFEST node_modules package-lock.json + + + +# Copy pasted entries from: +# https://raw.githubusercontent.com/github/gitignore/master/Python.gitignore +# + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg + PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don’t work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ From 2af9e707801d162b7b6f4014a4d62ce3dd9443b3 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 14:12:12 +0100 Subject: [PATCH 10/17] docs: fix warnings for linkcheck — docs/_static/images/logo/favicon.ico | Bin 0 -> 4555 bytes docs/conf.py | 3 +± docs/server-process.rst | 10 ++++±---- 3 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 docs/_static/images/logo/favicon.ico diff --git a/docs/_static/images/logo/favicon.ico b/docs/_static/images/logo/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000…ffdf84e2314ca24a8b508642368dbba3bc61c7cc GIT binary patch literal 4555 zcmbtYXIRt8yZuq5S3z2&gGddbNiTwQLJ=V#Jru!E6A%QcN>PfTOD_t76e%LTMS_T- z2t)yCOBEsnFsu~ekGp&K-uw05d7hbh=gfJ}nRn*fBw0WW80mQE003Y#GSss=pDliO z8mjX#m36Q7e4_NyG1CEnhBW#U*9+%s0l1-+835eB0szqu0pREyirxT#U|9gzbO8X> zTmawmMff3ALp6l{VyK?SzhSVDz+V*9T@4|anT3F^e~^cOqKtx!tdJ(1 zfPjE{kh`aE|mAp*tv4fGQY#@7_I`d-5{=L0({pii!$YRt_vDCw+0qojM5Mi`fc=Y`}>?IZ_odB@9m2khjOV^KX4ki27g5|AqbIqYnOU{yz@$ccp)!=cQ`Wse}K$ zHcdLyela@$VE$^Pr(+#T_T8R7z}lAk^Z<=8RASzX)s`yl><3+Xn!rv!U_5SP;M)Kl z93KzF;-8J6P$D0hXj*{^BT7zf&Rzvp z!>0D(|5KoaJKD+LROM{(!Z`V_k#Fgel|=7{s;^n4&FnnenEMz!#S#YZ+x-50V0U?t zmF^M4)9e)8NyPQ<)Oj(q#QXP&C;OwzDJdXGLp#sgg-A8y;SX~C?~>&$plbDcwyOR= zicEsWH^Ml7I<6*3I;|7Y!l7&5Dwjq-^hY^G@y^ai$d~%QT*&pvjLC-3?t~(po@p-^ z4^Ax9^L&=crmQo{{I*GWIJ%A@E@8&!@$nYn;V0<9jmrKfRYo1^aKOIg=;-LR@0QJ- ziURq2b%9^iGbHn9epXI?9*^%vdOdq9%t4D;9*qUp1KnkA8R4*n#=8U(+)^Vv*eAWA_Dji)S5Ys+<}lHJ9`*Bsm+;*`)EV–ftZFV;?EdYffzdK7f^h3Z0±Dl#biA>%8B`U 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 literal 0 HcmV?d00001 diff --git a/docs/conf.py b/docs/conf.py index b449586…07ee2df 100644 — a/docs/conf.py +++ b/docs/conf.py @@ -74,7 +74,8 @@ } html_favicon = “_static/images/logo/favicon.ico” -html_logo = “_static/images/logo/logo.png” +# FIXME: Add project logo +# html_logo = “_static/images/logo/logo.png” # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, diff --git a/docs/server-process.rst b/docs/server-process.rst index a9badb2…dc6502c 100644 — a/docs/server-process.rst +++ b/docs/server-process.rst @@ -33,7 +33,7 @@ pairs. For example, if the application needs to know its full path it can be constructed from ``{base_url}/proxy/{port}`` - * A callable that takes any :ref:`callable arguments `, + * A callable that takes any :ref:`callable arguments `, and returns a list of strings that are used & treated same as above. This key is required. @@ -56,7 +56,7 @@ pairs. process itself. The strings ``{port}`` and ``{base_url}`` will be replaced as for **command**. - * A callable that takes any :ref:`callable arguments `, + * A callable that takes any :ref:`callable arguments `, and returns a dictionary of strings that are used & treated same as above. ``absolute_url`` @@ -139,7 +139,7 @@ pairs. ``request_headers_override`` -^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ One of: @@ -147,11 +147,11 @@ pairs. request. The strings ``{port}`` and ``{base_url}`` will be replaced as for **command**. - * A callable that takes any :ref:`callable arguments `, + * A callable that takes any :ref:`callable arguments `, and returns a dictionary of strings that are used & treated same as above. -… _server-processes/callable-arguments: +… _server-process/callable-arguments: Callable arguments ------------------ From c69d73f590d990808d3eef5f1eb5c575084a00e0 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Tue, 30 Nov 2021 16:32:05 -0600 Subject: [PATCH 11/17] remove lab style — jupyterlab-server-proxy/src/index.ts | 2 – jupyterlab-server-proxy/style/index.css | 0 2 files changed, 2 deletions(-) delete mode 100644 jupyterlab-server-proxy/style/index.css diff --git a/jupyterlab-server-proxy/src/index.ts b/jupyterlab-server-proxy/src/index.ts index c3aaf19…795eed4 100644 — a/jupyterlab-server-proxy/src/index.ts +++ b/jupyterlab-server-proxy/src/index.ts @@ -3,8 +3,6 @@ import { ILauncher } from '@jupyterlab/launcher’; import { PageConfig } from '@jupyterlab/coreutils’; import { IFrame, MainAreaWidget, WidgetTracker } from '@jupyterlab/apputils’; -import '…/style/index.css’; - function newServerProxyWidget(id: string, url: string, text: string): MainAreaWidget

CVE: Latest News

CVE-2023-50976: Transactions API Authorization by oleiman · Pull Request #14969 · redpanda-data/redpanda
CVE-2023-6905
CVE-2023-6903
CVE-2023-6904
CVE-2023-3907