<#1113 Windows follow-ups: platform names, test ti...
# osctrl
g
#1113 Windows follow-ups: platform names, test titles and docs Pull request opened by javuto Windows follow-ups: platform names, test titles and docs Follow-up to #1112 (Windows osquery upgrades). Pairs with the osctrld change that handles
msiexec
timeouts, but has no dependency on it. Problem • The Set target warning and the node page treated a host as Windows only when its platform was exactly
windows
, while
pkg/nodes
already recognises
windows
,
win
,
win32
and
win64
. • Two tests still carried titles from before Windows was supported. • The docs did not say that Windows hosts need the new osctrld, or that Windows MSI upgrades are amd64 only. Change • Platform names: •
CountWindowsByEnv
now counts nodes whose lowercased platform is in the same list
pkg/nodes
uses for its Windows bucket, exposed as
WindowsPlatforms()
. • The frontend
isWindows
uses the same four names, case-insensitively. • The Set target warning now appears for environments with
win32
hosts, and the node page shows the Windows warning for them. • The other platform rules are unchanged: the node-row deny-list (
freebsd
) and `Resolve`'s GOOS request platform. • Test titles: • The node page test that mocked
platform_unsupported
is retitled to say it covers an unsupported, non-Windows host. • The "unsupported" case in
TestOsqueryHandlerNeverAnswers404
now uses
freebsd/amd64/deb
, a genuinely unsupported combination. • Docs: ARCHITECTURE.md now says Windows hosts need the new osctrld to upgrade. Until then they count as eligible and waiting in rollout progress and as behind in
osctrld_osquery_behind
. It also says Windows MSI upgrades are amd64 only. Security and operational impact None. No API, schema or permission changes, and no OpenAPI change. The SQL list is a package-level constant of lowercase literals bound as a parameter. Validation •
go test ./pkg/... ./cmd/... -count=1
,
go vet ./...
,
gofmt -l cmd pkg
• `golangci-lint run ./pkg/... ./cmd/...`: 0 issues • Frontend:
npm test
(666 tests) and
npm run check
• New tests cover: •
CountWindowsByEnv
counting
win32
,
Win64
and
windows
, and not
ubuntu
,
darwin
, another environment or a deleted node • a frontend table test for
isWindows
with
windows
,
Windows
,
WIN
,
Win32
,
win64
,
ubuntu
,
darwin
, an empty string and undefined • the node page warning for a
win32
host Notes •
WindowsPlatforms()
returns the shared list rather than a copy. Nothing mutates it today. •
applyPlatformBucket
and
NormalizePlatformBucket
still compare platform names case-sensitively, as before.
CountWindowsByEnv
is now case-insensitive, so an unusual spelling like
Windows
is counted as a Windows host here but bucketed as "other" elsewhere. This predates the change and is left alone. jmpsec/osctrl