Skip to content

Commit 872af90

Browse files
committed
Document the design of alternative endpoints
1 parent 1a4725d commit 872af90

File tree

1 file changed

+15
-0
lines changed
  • packages/jumpstarter/jumpstarter/exporter

1 file changed

+15
-0
lines changed

packages/jumpstarter/jumpstarter/exporter/tls.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,21 @@
1111

1212

1313
def with_alternative_endpoints(server, endpoints: list[str]):
14+
"""
15+
Listen on alternative endpoints directly without going through the router
16+
17+
Useful when the network bandwidth/latency between the clients/exporters and the router is suboptimal,
18+
yet direct connectivity between the clients and exporters can be established, e.g. the exporters have
19+
public ip addresses, or they are in the same subnet.
20+
21+
Since the direct traffic can transit through untrusted networks, it's encrypted and authenticated with
22+
mTLS. The client would attempt the first connection through the router, a trusted channel, on which the
23+
exporter would provide the client with its own certificate, and a client certificate/key pair for client
24+
authentication. All certificates are selfsigned as they are only ever explicitly trusted by the client
25+
and the exporter for the duration of a single lease. Future connections would be attempted on alternative
26+
endpoints first and fallback to the router if none works.
27+
"""
28+
1429
key = rsa.generate_private_key(public_exponent=65537, key_size=2048, backend=default_backend())
1530
client_key = rsa.generate_private_key(public_exponent=65537, key_size=2048, backend=default_backend())
1631

0 commit comments

Comments
 (0)