Skip to content

Commit 190ed71

Browse files
fix(tailscale): remove empty groupByEntities from all 24 analytic rules
Resolves the ARM-TTK "Template Should Not Contain Blanks" failure v-shukore flagged locally with test-AzTemplate (20+ "Empty property: []" errors at Column 39, same failure class as the ApiKeyIdentifier: "" bug on the UniFi PR). Root cause: every rule's incidentConfiguration.groupingConfiguration block had a literal `groupByEntities: []` line. groupByEntities is only meaningful when matchingMethod is "Selected" (grouping incidents by specific entity types); all 24 Tailscale rules use `matchingMethod: AllEntities`, making the empty array pure inert boilerplate. Empty arrays aren't in ARM-TTK's default allow-list (unlike e.g. `defaultValue`, `properties`, `resources`), so the packaged mainTemplate.json failed on 24 instances - one per rule, at the exact line numbers in the reviewer's screenshot (4632, 4754, ... 7464). Why our own CI runs didn't catch this: .script/local-validation/ run-arm-ttk.ps1 explicitly skips "Template Should Not Contain Blanks" (mirroring .github/actions/entrypoint.ps1's filter list, which the real upstream GitHub Actions run-arm-ttk check also applies) - so neither our local wrapper nor the official CI check ever exercised this test. The reviewer caught it by running Test-AzTemplate directly, without those filters. Confirmed via the same raw invocation locally: before this fix, "Template Should Not Contain Blanks" failed with exactly 24 errors; after, 0. Also ran the FULL unfiltered ARM-TTK suite (50 tests, no skip list at all) to make sure nothing else was hiding behind our wrapper's filters. Only remaining failure: "IDs Should Be Derived From ResourceIDs" - the known, unavoidable false positive on CCF multi-poller solutions (Mustache {{...}} placeholders in dataCollectionEndpointId/auth.AppId), already documented from the UniFi PR and filtered by both our wrapper and the real upstream CI. Not a regression, not actionable. Files: groupByEntities: [] line removed from all 24 Analytic Rules/*.yaml. Package/ regenerated and repinned to 3.0.0.
1 parent 2d8c075 commit 190ed71

26 files changed

Lines changed: 182 additions & 230 deletions

Solutions/Tailscale (CCF)/Analytic Rules/TailscaleAuthkeycreated.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,5 @@ incidentConfiguration:
3737
reopenClosedIncident: false
3838
lookbackDuration: 5h
3939
matchingMethod: AllEntities
40-
groupByEntities: []
4140
kind: Scheduled
4241
version: 1.0.0

Solutions/Tailscale (CCF)/Analytic Rules/TailscaleDeviceAdvertisingSubnetRoutes.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,5 @@ incidentConfiguration:
4949
reopenClosedIncident: false
5050
lookbackDuration: 1d
5151
matchingMethod: AllEntities
52-
groupByEntities: []
5352
kind: Scheduled
5453
version: 1.0.0

Solutions/Tailscale (CCF)/Analytic Rules/TailscaleDeviceKeyExpiringSoon.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,5 @@ incidentConfiguration:
4141
reopenClosedIncident: false
4242
lookbackDuration: 1d
4343
matchingMethod: AllEntities
44-
groupByEntities: []
4544
kind: Scheduled
4645
version: 1.0.0

Solutions/Tailscale (CCF)/Analytic Rules/TailscaleDeviceSshNewlyEnabled.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,5 @@ incidentConfiguration:
5050
reopenClosedIncident: false
5151
lookbackDuration: 1d
5252
matchingMethod: AllEntities
53-
groupByEntities: []
5453
kind: Scheduled
5554
version: 1.0.0

Solutions/Tailscale (CCF)/Analytic Rules/TailscaleDnsNameserversModified.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,5 @@ incidentConfiguration:
4141
reopenClosedIncident: false
4242
lookbackDuration: 1d
4343
matchingMethod: AllEntities
44-
groupByEntities: []
4544
kind: Scheduled
4645
version: 1.0.0

Solutions/Tailscale (CCF)/Analytic Rules/TailscaleExitnodeadvertisedorapproved.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,5 @@ incidentConfiguration:
4040
reopenClosedIncident: false
4141
lookbackDuration: 5h
4242
matchingMethod: AllEntities
43-
groupByEntities: []
4443
kind: Scheduled
4544
version: 1.0.0

Solutions/Tailscale (CCF)/Analytic Rules/TailscaleExternalDeviceAdded.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,5 @@ incidentConfiguration:
4848
reopenClosedIncident: false
4949
lookbackDuration: 1d
5050
matchingMethod: AllEntities
51-
groupByEntities: []
5251
kind: Scheduled
5352
version: 1.0.0

Solutions/Tailscale (CCF)/Analytic Rules/TailscaleMagicDnsDisabled.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,5 @@ incidentConfiguration:
3838
reopenClosedIncident: false
3939
lookbackDuration: 1d
4040
matchingMethod: AllEntities
41-
groupByEntities: []
4241
kind: Scheduled
4342
version: 1.0.0

Solutions/Tailscale (CCF)/Analytic Rules/TailscaleMasscredentialrevocationinshortwindow.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,5 @@ incidentConfiguration:
4343
reopenClosedIncident: false
4444
lookbackDuration: 5h
4545
matchingMethod: AllEntities
46-
groupByEntities: []
4746
kind: Scheduled
4847
version: 1.0.0

Solutions/Tailscale (CCF)/Analytic Rules/TailscaleNewAPIaccesstokenorOAuthclientcreated.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,5 @@ incidentConfiguration:
3838
reopenClosedIncident: false
3939
lookbackDuration: 5h
4040
matchingMethod: AllEntities
41-
groupByEntities: []
4241
kind: Scheduled
4342
version: 1.0.0

0 commit comments

Comments
 (0)