mirror of
https://github.com/netbirdio/netbird.git
synced 2026-09-13 02:09:08 +02:00
An agent network bootstrap stores the cluster it pins to as proxy_address, and that value selects the proxy that serves the endpoint. An account-scoped proxy only ever receives its own account's mappings, so a pin onto a host another account's proxy declares can never be served — and the endpoint it assigns is immutable, so the account is left with a dead gateway until it deletes its settings and starts over. Nothing refused that pin: the domain unique index arbitrates between pins only, and knows nothing about proxies. Both bootstrap paths now ask, before the insert, whether a proxy owned by a different account declares the host. Shared proxies are not foreign — a shared cluster is what most accounts pin to, and any number of them may — and a host no proxy has declared stays pinnable, since claiming the address before the proxy's first connection is the documented order. Ownership is decided on the proxy rows, not on heartbeat freshness, and on the folded spelling, since proxies declare their address as the operator typed it. Registration is deliberately not changed: refusing a proxy because another account pinned its host would let a pin lock a tenant's proxy out once the stale-proxy reaper has dropped its rows. Left as is, the worst a race or a reaping window can produce is a dead pin for the account that made it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Sa3DsBDP3VciAi4PPG17L6