Get desktop application:
View/edit binary Protocol Buffers messages
Login logs in peer. In case server returns codes.PermissionDenied this endpoint can be used to register Peer providing LoginRequest.setupKey Returns encrypted LoginResponse in EncryptedMessage.Body
Sync enables peer synchronization. Each peer that is connected to this stream will receive updates from the server. For example, if a new peer has been added to an account all other connected peers will receive this peer's Wireguard public key as an update The initial SyncResponse contains all of the available peers so the local state can be refreshed Returns encrypted SyncResponse in EncryptedMessage.Body
Exposes a Wireguard public key of the Management service. This key is used to support message encryption between client and server
Server's Wireguard public key
Key expiration timestamp after which the key should be fetched again by the client
Version of the Netbird Management Service protocol
health check endpoint
Exposes a device authorization flow information This is used for initiating a Oauth 2 device authorization grant flow which will be used by our clients to Login. EncryptedMessage of the request has a body of DeviceAuthorizationFlowRequest. EncryptedMessage of the response has a body of DeviceAuthorizationFlow.
Exposes a PKCE authorization code flow information This is used for initiating a Oauth 2 authorization grant flow with Proof Key for Code Exchange (PKCE) which will be used by our clients to Login. EncryptedMessage of the request has a body of PKCEAuthorizationFlowRequest. EncryptedMessage of the response has a body of PKCEAuthorizationFlow.
SyncMeta is used to sync metadata of the peer. After sync the peer if there is a change in peer posture check which needs to be evaluated by the client, sync meta will evaluate the checks and update the peer meta with the result. EncryptedMessage of the request has a body of Empty.
Used in:
,CustomZone represents a dns.CustomZone
Used in:
DNSConfig represents a dns.Update
Used in:
DeviceAuthorizationFlow represents Device Authorization Flow information that can be used by the client to login initiate a Oauth 2.0 device authorization grant flow see https://datatracker.ietf.org/doc/html/rfc8628
An IDP provider , (eg. Auth0)
Used in:
DeviceAuthorizationFlowRequest empty struct for future expansion
(message has no fields)
Used as request type in: ManagementService.GetServerKey, ManagementService.isHealthy
Used as response type in: ManagementService.SyncMeta, ManagementService.isHealthy
(message has no fields)
Used as request type in: ManagementService.GetDeviceAuthorizationFlow, ManagementService.GetPKCEAuthorizationFlow, ManagementService.Login, ManagementService.Sync, ManagementService.SyncMeta
Used as response type in: ManagementService.GetDeviceAuthorizationFlow, ManagementService.GetPKCEAuthorizationFlow, ManagementService.Login, ManagementService.Sync
Wireguard public key
encrypted message Body
Version of the Netbird Management Service protocol
Environment is part of the PeerSystemMeta and describes the environment the agent is running in.
Used in:
cloud is the cloud provider the agent is running in if applicable.
platform is the platform the agent is running on if applicable.
File represents a file on the system.
Used in:
path is the path to the file.
exist indicate whether the file exists.
processIsRunning indicates whether the file is a running process or not.
FirewallRule represents a firewall rule
Used in:
PolicyID is the ID of the policy that this rule belongs to
Used in:
Used in:
counters determines if flow packets and bytes counters should be sent
exitNodeCollection determines if event collection on exit nodes should be enabled
dnsCollection determines if DNS event collection should be enabled
Used in:
Protocol of the forwarding rule
portInfo is the ingress destination port information, where the traffic arrives in the gateway node
IP address of the translated address (remote peer) to send traffic to
Translated port information, where the traffic should be forwarded to
HostConfig describes connection properties of some server (e.g. STUN, Signal, Management)
Used in:
,URI of the resource e.g. turns://stun.netbird.io:4430 or signal.netbird.io:10000
Used in:
Pre-authorized setup key (can be empty)
Meta data of the peer (e.g. name, os_name, os_version,
SSO token (can be empty)
Can be absent for now.
Global config
Peer local config
Posture checks to be evaluated by client
NameServer represents a dns.NameServer
Used in:
NameServerGroup represents a dns.NameServerGroup
Used in:
NetbirdConfig is a common configuration of any Netbird peer. It contains STUN, TURN, Signal and Management servers configurations
Used in:
,a list of STUN servers
a list of TURN servers
a Signal server config
Used in:
NetworkMap represents a network state of the peer with the corresponding configuration parameters to establish peer-to-peer connections
Used in:
Serial is an ID of the network state to be used by clients to order updates. The larger the Serial the newer the configuration. E.g. the client app should keep track of this id locally and discard all the configurations with a lower value
PeerConfig represents configuration of a peer
RemotePeerConfig represents a list of remote peers that the receiver can connect to
Indicates whether remotePeers array is empty or not to bypass protobuf null and empty array equality.
List of routes to be applied
DNS config to be applied
RemotePeerConfig represents a list of remote peers that the receiver can connect to
FirewallRule represents a list of firewall rules to be applied to peer
firewallRulesIsEmpty indicates whether FirewallRule array is empty or not to bypass protobuf null and empty array equality.
RoutesFirewallRules represents a list of routes firewall rules to be applied to peer
RoutesFirewallRulesIsEmpty indicates whether RouteFirewallRule array is empty or not to bypass protobuf null and empty array equality.
PKCEAuthorizationFlow represents Authorization Code Flow information that can be used by the client to login initiate a Oauth 2.0 authorization code grant flow with Proof Key for Code Exchange (PKCE). See https://datatracker.ietf.org/doc/html/rfc7636
PKCEAuthorizationFlowRequest empty struct for future expansion
(message has no fields)
PeerConfig represents a configuration of a "our" peer. The properties are used to configure local Wireguard
Used in:
, ,Peer's virtual IP address within the Netbird VPN (a Wireguard address config)
Netbird DNS server (a Wireguard DNS config)
SSHConfig of the peer.
Peer fully qualified domain name
PeerKeys is additional peer info like SSH pub key and WireGuard public key. This message is sent on Login or register requests, or when a key rotation has to happen.
Used in:
sshPubKey represents a public SSH key of the peer. Can be absent.
wgPubKey represents a public WireGuard key of the peer. Can be absent.
PeerSystemMeta is machine meta data like OS and version.
Used in:
, ,Used in:
, ,Used in:
ProtectedHostConfig is similar to HostConfig but has additional user and password Mostly used for TURN servers
Used in:
ProviderConfig has all attributes needed to initiate a device/pkce authorization flow
Used in:
,An IDP application client id
An IDP application client secret
An IDP API domain Deprecated. Use a DeviceAuthEndpoint and TokenEndpoint
An Audience for validation
DeviceAuthEndpoint is an endpoint to request device authentication code.
TokenEndpoint is an endpoint to request auth token.
Scopes provides the scopes to be included in the token request
UseIDToken indicates if the id token should be used for authentication
AuthorizationEndpoint is the endpoint of an IDP manager where clients can obtain authorization code.
RedirectURLs handles authorization code from IDP manager
DisablePromptLogin makes the PKCE flow to not prompt the user for login
Used in:
RemotePeerConfig represents a configuration of a remote peer. The properties are used to configure WireGuard Peers sections
Used in:
,A WireGuard public key of a remote peer
WireGuard allowed IPs of a remote peer e.g. [10.30.30.1/32]
SSHConfig is a SSH config of the remote peer. SSHConfig.sshPubKey should be ignored because peer knows it's SSH key.
Peer fully qualified domain name
Route represents a route.Route object
Used in:
RouteFirewallRule signifies a firewall rule applicable for a routed network.
Used in:
sourceRanges IP ranges of the routing peers.
Action to be taken by the firewall when the rule is applicable.
Network prefix for the routed network.
Protocol of the routed network.
Details about the port.
IsDynamic indicates if the route is a DNS route.
Domains is a list of domains for which the rule is applicable.
CustomProtocol is a custom protocol ID.
PolicyID is the ID of the policy that this rule belongs to
RouteID is the ID of the route that this rule belongs to
Used in:
,Used in:
Used in:
, ,SSHConfig represents SSH configurations of a peer.
Used in:
,sshEnabled indicates whether a SSH server is enabled on this peer
sshPubKey is a SSH public key of a peer to be added to authorized_hosts. This property should be ignore if SSHConfig comes from PeerConfig.
SimpleRecord represents a dns.SimpleRecord
Used in:
Meta data of the peer
Meta data of the peer
SyncResponse represents a state that should be applied to the local peer (e.g. Netbird servers config as well as local peer and remote peers configs)
Global config
Deprecated. Use NetworkMap.PeerConfig
Deprecated. Use NetworkMap.RemotePeerConfig
Indicates whether remotePeers array is empty or not to bypass protobuf null and empty array equality. Deprecated. Use NetworkMap.remotePeersIsEmpty
Posture checks to be evaluated by client