Skip to content

Move the Santa sync server to the stable v1 protos - #1185

Merged
javuto merged 1 commit into
developfrom
worktree-santa-sync-server
Nov 12, 2026
Merged

javuto merged 1 commit into
developfrom
worktree-santa-sync-server

Conversation

@javuto

@javuto javuto commented Nov 12, 2026

Copy link
Copy Markdown
Collaborator

Move the Santa sync server to the stable v1 protos

Closes #1184

Problem

osctrl's Santa sync server was built on syncv2 from buf.build/gen/go/northpolesec/protos. North Pole Security has said that v2 is their internal protocol, "not supported for external users", and that they are removing it from the published protos (northpolesec/santa#1270). After that, the next update of the protos dependency will break osctrl's build. v1 is the stable protocol for third-party sync servers. North Pole Security will list osctrl as a sync server in the Santa docs once it uses v1.

Change

  • In pkg/santa/sync.go and cmd/tls/handlers/santa.go, plus their tests, switch the import from .../protocolbuffers/go/syncv2 to .../protocolbuffers/go/sync (package syncv1).
  • pkg/santa/README.md: the endpoint now says it serves Santa sync protocol v1.

No behaviour changes for Santa clients. They already talk v1 to osctrl, and osctrl used no v2-only fields. go.mod is unchanged because v1 and v2 come from the same module.

Compatibility

  • Stored data: v1 and v2 share the same enum names and numbers for everything osctrl stores (SyncType, ClientMode, Policy, RuleType, Decision), so existing rules, modes and pending sync types need no migration.
  • v2-only enum values: two no longer exist. The SEATBELT policy was never offered in the UI and is now rejected by the API. The CEL-fallback decisions (ALLOW_CEL_FALLBACK, BLOCK_CEL_FALLBACK) are not sent by v1 clients.

Security / operational impact

None. Auth (X-Osctrl-Santa-Token), body limits, UUID validation and node/environment ownership checks are untouched.

Validation

  • go build ./...
  • go vet ./pkg/santa ./cmd/tls/...
  • go test ./pkg/santa/... ./cmd/tls/... pass
  • grep -r syncv2 pkg cmd is empty
  • Not yet verified with a stock Santa client running a full sync against this build

Follow-up

After release, reply on northpolesec/santa#1270 so osctrl can be listed as a sync server.

@javuto javuto added the 🎅🏼 santa Santa related issues label Nov 12, 2026
@javuto
javuto merged commit ccb3266 into develop Nov 12, 2026
7 checks passed
@javuto
javuto deleted the worktree-santa-sync-server branch November 12, 2026 19:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🎅🏼 santa Santa related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Santa: move the sync server from syncv2 to the stable v1 protos

1 participant