mirror of
https://github.com/netbirdio/netbird.git
synced 2026-08-24 16:41:30 +02:00
A tenant's endpoint is <subdomain>.<cluster>, where the cluster half is the address of the proxy serving them. That couples the hostname to placement: the tenant cannot be served by a different proxy without their address changing. Zone is a parent DNS zone captured onto the settings row when the row is created, making the endpoint <subdomain>.<zone> instead. It is persisted per row rather than read from config at call time for two reasons: Endpoint() must keep its no-argument signature, because a synthesizer is registered against a pinned signature at init() time; and persisting makes a tenant's address immutable, so editing server config never silently moves an existing tenant. Zone is empty for every existing row and for any deployment that configures none, in which case Endpoint() falls back to the previous behaviour exactly.