tailscale/ipn
Harry Harpham 1b88e93ff5 ipn/ipnlocal: allow retrieval of serve config ETags from local API
This change adds API to ipn.LocalBackend to retrieve the ETag when
querying for the current serve config. This allows consumers of
ipn.LocalBackend.SetServeConfig to utilize the concurrency control
offered by ETags. Previous to this change, utilizing serve config ETags
required copying the local backend's internal ETag calcuation.

The local API server was previously copying the local backend's ETag
calculation as described above. With this change, the local API server
now uses the new ETag retrieval function instead. Serve config ETags are
therefore now opaque to clients, in line with best practices.

Fixes tailscale/corp#35857
Signed-off-by: Harry Harpham <harry@tailscale.com>
2026-01-16 15:28:31 -07:00
..
auditlog syncs: add Mutex/RWMutex alias/wrappers for future mutex debugging 2025-11-16 19:13:59 -08:00
conffile cmd/tailscale/cli,ipn/conffile: add declarative config mode for Services (#17435) 2025-10-10 11:02:35 -04:00
desktop go.mod: bump golang.org/x/crypto (#17907) 2025-11-17 09:05:18 -08:00
ipnauth ipn/ipnauth, safesocket: defer named pipe client's token retrieval until ipnserver needs it 2025-12-23 14:04:45 -06:00
ipnext ipn/ipnlocal: remove all the weird locking (LockedOnEntry, UnlockEarly, etc) 2025-11-13 19:20:07 -08:00
ipnlocal ipn/ipnlocal: allow retrieval of serve config ETags from local API 2026-01-16 15:28:31 -07:00
ipnserver feature/featuretags, all: add build features, use existing ones in more places 2025-10-02 08:07:25 -07:00
ipnstate cmd/tailscale/cli: stabilise the output of tailscale lock status --json 2025-12-09 09:40:06 +00:00
lapitest various: allow tailscaled shutdown via LocalAPI 2025-09-25 14:26:06 -05:00
localapi ipn/ipnlocal: allow retrieval of serve config ETags from local API 2026-01-16 15:28:31 -07:00
policy ipn,tailconfig: clean up unreleased and removed app connector service 2023-11-09 22:36:52 -08:00
store ipn/store/kubestore: don't load write replica certs in memory (#18395) 2026-01-13 12:43:17 +00:00
backend_test.go ipn: fix the string representation of an empty ipn.Notify 2025-09-16 18:13:49 +01:00
backend.go types/netmap: remove PrivateKey from NetworkMap 2025-11-16 15:32:51 -08:00
conf.go ipn: ensure that conffile is source of truth for advertised services. (#15361) 2025-03-20 14:40:36 +00:00
doc.go ipn: generate LoginProfileView and use it instead of *LoginProfile where appropriate 2025-01-30 18:12:54 -06:00
ipn_clone.go cmd/tailscale/cli,ipn,all: make peer relay server port a *uint16 2025-11-25 19:40:17 -08:00
ipn_test.go all: do not depend on the testing package 2024-05-24 05:23:36 -07:00
ipn_view.go cmd/tailscale/cli,ipn,all: make peer relay server port a *uint16 2025-11-25 19:40:17 -08:00
prefs_test.go cmd/tailscale/cli,ipn,all: make peer relay server port a *uint16 2025-11-25 19:40:17 -08:00
prefs.go cmd/tailscale/cli,ipn,all: make peer relay server port a *uint16 2025-11-25 19:40:17 -08:00
serve_expand_test.go cmd/tailscale,ipn: add Unix socket support for serve 2025-12-04 11:06:06 -08:00
serve_test.go ipn/serve: validate service paths in HasPathHandler 2025-11-25 16:27:37 -05:00
serve.go ipn,cmd/tailscale/cli: set correct SNI name for TLS-terminated TCP Services (#17752) 2026-01-07 09:31:46 -05:00
store_test.go ipn/store: automatically migrate between plaintext and encrypted state (#16318) 2025-06-26 17:09:13 -07:00
store.go cmd/tailscaled,ipn: show a health warning when state store fails to open (#17883) 2025-11-20 15:52:58 -06:00