headscale/hscontrol/policy/v2
Kristoffer Dalby 0e3acdd8ec policy/v2: implement CapGrant compilation with companion capabilities
Compile grant app fields into CapGrant FilterRules matching Tailscale
SaaS behavior. Key changes:

- Generate CapGrant rules in compileFilterRules and
  compileGrantWithAutogroupSelf, with node-specific /32 and /128
  Dsts for autogroup:self grants
- Add reversed companion rules for drive→drive-sharer and
  relay→relay-target capabilities, ordered by original cap name
- Narrow broad CapGrant Dsts to node-specific prefixes in
  ReduceFilterRules via new reduceCapGrantRule helper
- Skip merging CapGrant rules in mergeFilterRules to preserve
  per-capability structure
- Remove ip+app mutual exclusivity validation (Tailscale accepts both)
- Add semantic JSON comparison for RawMessage types and netip.Prefix
  comparators in test infrastructure

Reduces grant compat test skips from 99 to 41 (58 newly passing).

Updates #2180
2026-04-01 14:10:42 +01:00
..
testdata policy/v2: add advertised routes to compat test topologies 2026-04-01 14:10:42 +01:00
filter.go policy/v2: implement CapGrant compilation with companion capabilities 2026-04-01 14:10:42 +01:00
filter_test.go policy/v2: use bare IPs in autogroup:self DstPorts 2026-04-01 14:10:42 +01:00
main_test.go all: fix test flakiness and improve test infrastructure 2026-03-14 02:52:28 -07:00
policy.go policy/v2: refactor alias resolution to use ResolvedAddresses 2026-04-01 14:10:42 +01:00
policy_test.go all: upgrade to Go 1.26rc2 and modernize codebase 2026-02-08 12:35:23 +01:00
tailscale_acl_data_compat_test.go policy/v2: implement CapGrant compilation with companion capabilities 2026-04-01 14:10:42 +01:00
tailscale_grants_compat_test.go policy/v2: implement CapGrant compilation with companion capabilities 2026-04-01 14:10:42 +01:00
tailscale_routes_data_compat_test.go policy/v2: convert routes compat tests to data-driven format with Tailscale SaaS captures 2026-04-01 14:10:42 +01:00
tailscale_ssh_data_compat_test.go policy/v2: add SSH compatibility testdata from Tailscale SaaS 2026-02-28 05:14:11 -08:00
types.go policy/v2: implement CapGrant compilation with companion capabilities 2026-04-01 14:10:42 +01:00
types_test.go policy/v2: implement CapGrant compilation with companion capabilities 2026-04-01 14:10:42 +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