headscale/hscontrol/policy/v2
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
..
testdata policy/v2: SaaS-derived compat tests for nodeAttrs 2026-05-13 14:22:30 +02:00
compiled.go policy/v2: parse, validate, and compile nodeAttrs 2026-05-13 14:22:30 +02:00
filter.go policy: surface exit nodes via autogroup:internet (#3212) 2026-04-29 11:24:33 +01:00
filter_test.go policy/v2: surface autogroup:internet via grants on exit nodes 2026-04-30 19:22:45 +01:00
issue_3212_test.go policy/v2: SaaS-derived compat tests for nodeAttrs 2026-05-13 14:22:30 +02:00
issue_3233_test.go policy/v2: surface autogroup:internet via grants on exit nodes 2026-04-30 19:22:45 +01:00
main_test.go all: fix test flakiness and improve test infrastructure 2026-03-14 02:52:28 -07:00
nodeattrs_test.go policy/v2: parse, validate, and compile nodeAttrs 2026-05-13 14:22:30 +02:00
policy.go policy/v2: parse, validate, and compile nodeAttrs 2026-05-13 14:22:30 +02:00
policy_test.go policy/v2: SaaS-derived compat tests for nodeAttrs 2026-05-13 14:22:30 +02:00
policytester_compat_test.go policy/v2: match default proto set for tests with no proto 2026-05-12 11:54:54 +01:00
tailnet_state_caps.go types/node, policy/v2: drop taildrive caps from baseline emission 2026-05-13 14:22:30 +02:00
tailscale_acl_data_compat_test.go policy/v2: SaaS-derived compat tests for nodeAttrs 2026-05-13 14:22:30 +02:00
tailscale_grants_compat_test.go policy/v2: SaaS-derived compat tests for nodeAttrs 2026-05-13 14:22:30 +02:00
tailscale_nodeattrs_compat_test.go types/node, mapper, policy/v2: assemble self CapMap inside TailNode 2026-05-13 14:22:30 +02:00
tailscale_routes_data_compat_test.go policy/v2: SaaS-derived compat tests for nodeAttrs 2026-05-13 14:22:30 +02:00
tailscale_ssh_data_compat_test.go policy/v2: SaaS-derived compat tests for nodeAttrs 2026-05-13 14:22:30 +02:00
test.go policy/v2: match default proto set for tests with no proto 2026-05-12 11:54:54 +01:00
test_test.go policy/v2: match default proto set for tests with no proto 2026-05-12 11:54:54 +01:00
types.go policy/v2: parse, validate, and compile nodeAttrs 2026-05-13 14:22:30 +02:00
types_test.go policy/v2: canonicalize Protocol form during unmarshal 2026-05-12 11:54:54 +01:00
utils.go policy/v2: exclude exit routes from ReduceFilterRules 2026-04-01 14:10:42 +01:00
utils_test.go policy/v2: exclude exit routes from ReduceFilterRules 2026-04-01 14:10:42 +01:00