GitHub
11/12/2026, 5:34 PMpkg/santa, osctrl-tls sync endpoint, Santa page in the UI).
Problem
osctrl builds the Santa sync server on syncv2 (pkg/santa/sync.go, cmd/tls/handlers/santa.go and their tests). North Pole Security says v2 is their internal protocol, "not supported for external users", and it is being removed from the published protos. The next update of the protos dependency after that will break the build. They will list osctrl as a sync server once it uses v1 (northpolesec/santa#1270).
Santa clients already speak v1 to osctrl, and osctrl uses no v2-only fields, so this is mostly an import swap.
Scope
• Replace syncv2 with buf.build/gen/go/northpolesec/protos/protocolbuffers/go/sync in pkg/santa and cmd/tls/handlers/santa.go, including tests.
• Keep sending block_usb_mount until #1167 lands.
• Check that stored enum names (SyncType, ClientMode, Policy, RuleType, Decision) parse the same with the v1 enums, so no data migration is needed. Numbers match; some v1 names differ (aliases such as ALLOWLIST/WHITELIST).
• `pkg/santa/README.md`: say "Santa sync protocol (v1)".
Acceptance
• grep -r syncv2 pkg cmd is empty; go test ./pkg/santa ./cmd/tls/... passes.
• A stock Santa client completes preflight, eventupload, ruledownload and postflight against osctrl (manual check or recorded fixtures).
• Reply on northpolesec/santa#1270 once released.
jmpsec/osctrlGitHub
11/12/2026, 7:15 PM