Support for SOCKS proxy configuration on control planes #344

Merged
tobru merged 1 commit from socks-proxy-per-controlplane into main 2025-12-22 14:32:01 +00:00
Owner

Allow specifying a SOCKS proxy URL per control plane. Use case: Connect to a control plane via a user-space VPN like Netbird or Tailscale.

Allow specifying a SOCKS proxy URL per control plane. Use case: Connect to a control plane via a user-space VPN like Netbird or Tailscale.
support for SOCKS proxy configuration on control planes
All checks were successful
Tests / test (push) Successful in 30s
0acc67c09d
tobru merged commit ecb7c9b0d8 into main 2025-12-22 14:32:01 +00:00
tobru deleted branch socks-proxy-per-controlplane 2025-12-22 14:32:02 +00:00
Member

@tobru What does the typical SOCKS URL look like in practical use? Will it contain URL-based credentials or is it just a URL? Might be worth using a URLField for this, or at least an input validator. (This validator could also be reused in the SOCKS client class to make sure at instantiation that the URL is really valid.)

@tobru What does the typical SOCKS URL look like in practical use? Will it contain URL-based credentials or is it just a URL? Might be worth using a URLField for this, or at least an input validator. (This validator could also be reused in the SOCKS client class to make sure at instantiation that the URL is really valid.)
Member

@tobru Also re servala/servala-portal@6fa4b09b6a – the models file is already fairly huge, and putting a HTTP client in there makes it even larger and is not great re: separation of concerns imo. The SOCKSRESTClientObject also does not call super().__init__(), and instead vendors most of it. Might be worth calling super() and then overriding pool_manager afterwards, cutting down on code duplication.

@tobru Also re https://servala.app.codey.ch/servala/servala-portal/commit/6fa4b09b6a4cdd4e7acb099f2b483b26030f98dc – the models file is already fairly huge, and putting a HTTP client in there makes it even larger and is not great re: separation of concerns imo. The `SOCKSRESTClientObject` also does not call `super().__init__()`, and instead vendors most of it. Might be worth calling `super()` and then overriding `pool_manager` afterwards, cutting down on code duplication.
Sign in to join this conversation.
No description provided.