feat(remote): add support for remote services

A Remote Service is a juice service that does not have to live on the same device and same network as regular juice services.

The Remote Service communicates with juice by estabilishing authenticated websocket tunnels.

Juice only exposes Jupyterhub server the public internet so for Remote Services this is their entrypoint. After successful connection Remote Services are capable of recieving Tasks (not sending), publishing and subscribing to Events. Jupyterhub forwards the information it recieves to the Task Manager for Juice to handle the incoming messages.

For Juice to successfully authenticate a Remote Service it needs to satisfy the following criterions:

  1. Remote Service has a valid Jupyterhub API user token
  2. Remote Service name is registered withing Juice and does not overlap with existing service names
Edited by Kristian Gogora

Merge request reports

Loading
Loading