Skip to main content

jupyter-deploy-client-proxy

A local client that routes an app from your http://localhost to a jupyter-deploy-managed remote host. It runs a configured token command (the exec-credential contract, à la kubectl ExecCredential / aws eks get-token), receives a JSON connection bundle on stdout, and proxies plain http://localhost to the remote host over pinned self-signed TLS — injecting the bundle's rotating headers on every request and the WebSocket upgrade.

It stays cloud-agnostic — it imports nothing cloud-specific and works against any self-signed-TLS + bearer endpoint:

jupyter-deploy-client-proxy --token-command "jd proxy connect-info" --listen-port 8080

Connection bundle

The token command emits, on stdout:

{
  "host": "203.0.113.7", "port": 443,
  "ca_cert": "-----BEGIN CERTIFICATE-----\n...",
  "headers": { "Authorization": "Bearer ...", "x-k8s-aws-id": "..." },
  "expires_at": "2026-06-10T18:01:00Z"
}

The proxy re-execs the command on a margin before expires_at, reconnecting with the fresh endpoint/pin/credential and keeping localhost:PORT stable.

A token command signals a transient failure (network blip, throttling) by exiting 75 (EX_TEMPFAIL): the proxy keeps serving on its last-good credential and retries. Any other non-zero exit is permanent — the proxy can no longer serve anything, so it stops itself and exits 78.

Auto-shutdown

The proxy ends its own process in two cases, so a background one cannot outlive its session:

  • the credential can no longer be refreshed (the token command failed permanently) — exits 78, leaving status.json behind as the record that it failed rather than stopped; the reason is in the NNNN.log files beside it;
  • no client activity for --idle-timeout-seconds (default 7200, two hours) — exits 0 and removes status.json, like any clean stop. Pass 0 to disable, which is what jd open does when it runs the proxy in the foreground: there the terminal governs the lifetime.

Activity means traffic from a client. An open WebSocket counts even while no frames flow, so a kernel computing silently for hours keeps its tunnel, and a response still streaming counts on every chunk, so a long transfer is never cut off mid-flight. Credential refreshes do not count — they are the proxy's own traffic.

Part of the jupyter-deploy project.

License

The jupyter-deploy-client-proxy package is licensed under the MIT License.

Metadata

Release files for jupyter-deploy-client-proxy 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jupyter-deploy-client-proxy 0.1.1
File Size Uploaded
jupyter_deploy_client_proxy-0.1.1.tar.gz 51.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jupyter-deploy-client-proxy 0.1.1
File Interpreter ABI Platform
jupyter_deploy_client_proxy-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 85.5 kB

Release files / jupyter_deploy_client_proxy-0.1.1.tar.gz

Download URL jupyter_deploy_client_proxy-0.1.1.tar.gz
Size 51.2 kB
Tags Source
SHA-256 checksum
How to use checksums
5ff29a29654b612cfc7589d435282242ecebcca5a1ba8613b6709ad00b8abba3
BLAKE2b-256 checksum
How to use checksums
a14648fb1b43c81910fbd701bf23f58817926252d7f43071b52effa07bb1c6e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / jupyter_deploy_client_proxy-0.1.1-py3-none-any.whl

Download URL jupyter_deploy_client_proxy-0.1.1-py3-none-any.whl
Size 34.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f6886eb0f075c00948e9f4d6a12ae8c9b507f1d3904d4c3958ba3b984f78ccc5
BLAKE2b-256 checksum
How to use checksums
f5f061cf6e0e05b3c4fb4723c16af2952066b2f74be163c034b757bcb8c84c9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page