headscale/hscontrol/types
Kristoffer Dalby 8ea4cd3faa types/node, policy/v2: drop taildrive caps from baseline emission
Taildrive (drive:share and drive:access) is policy-driven per
Tailscale's documented behaviour
(https://tailscale.com/docs/features/taildrive). The previous
always-on baseline emission diverged from SaaS for every node not
targeted by a drive nodeAttr -- a real semantic divergence that the
compat suite caught once the test moved to comparing TailNode output
against the captured netmaps.

types.Node.TailNode no longer stamps the drive pair. Operators
wanting taildrive add a nodeAttrs entry:

  "nodeAttrs": [
    { "target": ["*"], "attr": ["drive:share", "drive:access"] }
  ]

unmodelledTailnetStateCaps shrinks accordingly. The baseline-divergence
group is gone; every entry left in the list is genuinely unmodelled
(user-role caps, unimplemented features, tailnet metadata, internal
tuning).

servertest's TestNodeAttrsBaselineCapsAlwaysOn expects the smaller
baseline (admin + ssh + file-sharing). Integration TestGrantCapDrive
grants the drive caps explicitly via NodeAttrs to exercise the
policy-driven emission path.
2026-05-13 14:22:30 +02:00
..
change change: document PingRequest merge first-wins foot-gun 2026-04-17 16:31:49 +01:00
testcapture policy/v2: SaaS-derived compat tests for nodeAttrs 2026-05-13 14:22:30 +02:00
testdata Restore support for "Override local DNS" (#2438) 2025-04-17 17:16:59 +02:00
api_key.go types: add MarshalZerologObject to domain types 2026-02-06 07:40:29 +01:00
common.go oidc: add confirmation page for node registration 2026-04-10 14:09:57 +01:00
common_test.go oidc: add confirmation page for node registration 2026-04-10 14:09:57 +01:00
config.go config, types: move randomize_client_port from server config to policy file 2026-05-13 14:22:30 +02:00
config_test.go types: omit secret fields from JSON marshalling 2026-04-10 14:09:57 +01:00
const.go improve testing of route failover logic 2024-04-15 12:31:53 +02:00
debug_routes.go types: move DebugRoutes from routes to types 2026-04-29 18:08:39 +01:00
main_test.go all: fix test flakiness and improve test infrastructure 2026-03-14 02:52:28 -07:00
node.go types/node, policy/v2: drop taildrive caps from baseline emission 2026-05-13 14:22:30 +02:00
node_benchmark_test.go types: avoid NodeView clone in CanAccess 2026-02-26 19:15:07 -08:00
node_tags_test.go all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
node_test.go hscontrol: route hostname handling through dnsname and NodeStore 2026-04-18 15:12:21 +01:00
policy.go feat: implements apis for managing headscale policy (#1792) 2024-07-18 07:38:25 +02:00
preauth_key.go all: fix golangci-lint issues (#3064) 2026-02-06 21:45:32 +01:00
preauth_key_test.go all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
registration.go state: replace zcache with bounded LRU for auth cache 2026-04-10 14:09:57 +01:00
routes.go Redo route code (#2422) 2025-02-26 16:22:55 +01:00
testlog.go hscontrol/types: silence zerolog by default in tests 2026-04-17 16:31:49 +01:00
types_clone.go hscontrol/types: regenerate types_clone.go for viewer bump 2026-05-11 08:46:12 +01:00
types_view.go types: add Unhealthy and SessionEpoch fields to Node 2026-04-29 18:08:39 +01:00
users.go oidc: handle groups claim as string or array (FlexibleStringSlice) 2026-05-04 15:26:53 +02:00
users_test.go oidc: handle groups claim as string or array (FlexibleStringSlice) 2026-05-04 15:26:53 +02:00
version.go all: apply formatter changes 2026-04-13 17:23:47 +01:00