Source — /opt/splicevpn/proto/proto.go

/opt/splicevpn/proto/proto.go

// Package proto defines the wire types exchanged between the SpliceVPN
// coordinator and agents. Everything here is plain JSON over HTTP.
package proto

// RegisterRequest is sent by an agent when it joins (or refreshes) the mesh.
type RegisterRequest struct {
	JoinKey string `json:"join_key"` // shared bootstrap secret
	Name    string `json:"name"`     // human label, e.g. "office-gw"

	// PublicKey is the agent's WireGuard public key (base64, as `wg` prints it).
	PublicKey string `json:"public_key"`

	// Endpoints are candidate ip:port pairs the agent believes it is reachable on
	// (LAN addresses, UPnP-mapped ports, etc). The coordinator also records the
	// observed public source ip:port (STUN-lite) and merges it in.
	Endpoints []string `json:"endpoints"`

	// Routes are subnets this endpoint exposes to the mesh. Empty =[REDACTED]