Skip to content

plexctl mesh

Synopsis

plexctl mesh is the operator surface for inspecting the per-Domain mesh topology. The family currently exposes a single topology leaf that renders the snapshot served by GET /v1/domains/{domainId}/mesh/topology — every anchored Peer Node in a Domain together with the directed WireGuard edges between them, including the relay fallback in use when an edge is in relayed mode.

text
plexctl mesh topology --domain <uuid>

The same snapshot endpoint backs ./peer.md; plexctl peer projects the Nodes side, plexctl mesh topology projects the Edges side. Use whichever verb matches the question you are asking.

Subcommands

plexctl mesh topology

GETs /v1/domains/{domainId}/mesh/topology and renders the resulting MeshTopology as a flat edge table. Each row joins a directed edge to its source / target node projection so a single text / JSON / YAML payload describes both nodes and edges without requiring two round-trips. The text-mode columns are positionally stable so downstream tooling can pipe --output text through awk:

ColumnSource
FROMMeshEdge.source_node_id
TOMeshEdge.target_node_id
MESH_IPthe target Node's mesh_ip from the Nodes lookup
FALLBACKMeshEdge.relay_node_id (empty for direct mode)
REACH_FROMthe source Node's reachability projection
REACH_TOthe target Node's reachability projection

Flags

plexctl mesh topology

FlagTypeRequiredDescription
--domainstring (UUID)yesDomain UUID whose mesh topology to retrieve.

Persistent flags inherited from root

--server, --profile, --token-file, --output. See ../plexctl.md for the canonical list.

Exit codes

See ../plexctl.md#exit-code-taxonomy for the inherited base table. The Problem.code branches that apply to this family:

HTTP statusProblem.codeExit code
404domain_not_found4
403rebac_denied77

Examples

Render the topology as text

shell
export PLEXSPHERE_URL="${PLEXSPHERE_URL:-https://localhost:8080}"

plexctl mesh topology \
  --server "${PLEXSPHERE_URL}" \
  --domain 0190a8b8-a0c0-7a0a-8a0a-a0a0a0a0a0a0

Fetch the full nodes + edges JSON envelope

shell
plexctl mesh topology \
  --server "${PLEXSPHERE_URL}" \
  --domain 0190a8b8-a0c0-7a0a-8a0a-a0a0a0a0a0a0 \
  --output json

Cross-references