pub struct RemoteServe {
pub allow_mcp: bool,
pub relay: Option<String>,
pub discovery: bool,
}Expand description
How this machine was told to put its proxy on the tunnel, kept so a restart arms it the same way.
Its companion is Settings::remote_enabled, the switch gglib remote enable and disable set and the one thing the daemon reads at startup
to decide whether to bring the tunnel back up. That field mirrors
proxy_autostart deliberately — same shape, same tri-state, same reason:
a machine you reach from elsewhere is not a feature you want to remember
to switch on after every reboot. Neither is ever typed; there is no flag
for either, because the flag is the command.
This record is the other half — the flags that enable was given, so a
resumed tunnel is armed the way it was enabled. Without it a restart
would quietly change behaviour, and --allow-mcp is a deliberate
decision on one machine: silently forgetting it is the failure that
matters, not the noise of remembering. Absent means never enabled.
The flags gglib remote enable accepts, and nothing else: this is a
record of a decision, not a place to configure one. There is no CLI path
that writes it directly and no GUI field for it — enable writes it
whole, the way remote_pairing is written whole, because the flags were
one decision taken at one moment and a half-applied set of them is not a
state anybody asked for.
Persisted as one settings_kv row holding a JSON object, camelCase
inside, matching remote_pairing.
Fields§
§allow_mcp: boolWhether requests arriving through the tunnel may reach /mcp.
Off unless asked for, and the one flag here with teeth: invoke_tool
starts the MCP servers configured on this machine, so a leaked key
with a shell server configured is remote code execution. Surviving a
restart is the point — silently dropping it would be a security
posture that changes when nobody is looking.
relay: Option<String>A self-hosted relay URL, or None for n0’s public relays.
discovery: boolWhether to publish to, and resolve through, n0’s discovery service.
true unless --no-discovery was given. With a lasting identity
this matters more than it did: the ticket now outlives the session,
so a ticket minted without discovery keeps only the paths it was
minted with and stops resolving the moment this machine changes
network — for good, not until the next enable.
Trait Implementations§
Source§impl Clone for RemoteServe
impl Clone for RemoteServe
Source§fn clone(&self) -> RemoteServe
fn clone(&self) -> RemoteServe
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RemoteServe
impl Debug for RemoteServe
Source§impl Default for RemoteServe
impl Default for RemoteServe
Source§fn default() -> RemoteServe
fn default() -> RemoteServe
Source§impl<'de> Deserialize<'de> for RemoteServe
impl<'de> Deserialize<'de> for RemoteServe
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for RemoteServe
impl PartialEq for RemoteServe
Source§fn eq(&self, other: &RemoteServe) -> bool
fn eq(&self, other: &RemoteServe) -> bool
self and other values to be equal, and is used by ==.