feat(agent): extract pushed-artifact add-on tarballs (delivery-models 1.2) (#3425) #3468
No reviewers
Labels
No labels
1week
2weeks
Failed compliance check
IP cameras
NATS
Possible security concern
Review effort 1/5
Review effort 2/5
Review effort 3/5
Review effort 4/5
Review effort 5/5
UI
aardvark
accessibility
amd64
api
arm64
auth
back-end
bgp
blog
bug
build
checkers
ci-cd
cleanup
cnpg
codex
core
dependencies
device-management
documentation
duplicate
dusk
ebpf
enhancement
eta 1d
eta 1hr
eta 3d
eta 3hr
feature
fieldsurvey
github_actions
go
good first issue
help wanted
invalid
javascript
k8s
log-collector
mapper
mtr
needs-triage
netflow
network-sweep
observability
oracle
otel
plug-in
proton
python
question
reddit
redhat
research
rperf
rperf-checker
rust
sdk
security
serviceradar-agent
serviceradar-agent-gateway
serviceradar-web
serviceradar-web-ng
siem
snmp
sysmon
topology
ubiquiti
wasm
wontfix
zen-engine
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
carverauto/serviceradar!3468
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/addon-pushed-tarball"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
delivery-models task 1.2 (agent-side tarball delivery). A pushed-artifact add-on can now be a gzip tarball bundling the binary + its
addon.yaml/config.schema.json+ any.service/.timerunits — not just a bare executable.stageAddonArtifactauto-detects gzip (a bare binary still works unchanged for single-binaryagent-sidecaradd-ons), verifies the sha256/signature over the raw artifact bytes, and extracts the tarball into the versioned staging dir so the binary and its units land side-by-side undercurrent/— exactly where the agent discovers units and the root-owned updater appliessetcap/ installs systemd units.This is the missing delivery link: it's what gets the
.service/.timerfiles to the agent so the systemd supervision dispatch (the supervision slice) can install them.Security
Extraction is hardened against hostile/malformed artifacts:
../traversal, subdirectories, symlinks, and hardlinks (ErrAddonTarballUnsafe);ErrAddonTarballTooLarge);ErrAddonTarballBinaryMissing);0755, all other files0644.Verification
Unit tests: tarball extraction (binary executable + manifest/units
0644undercurrent/), missing-binary, unsafe entries (traversal / subdir / symlink), too-many-entries; bare-binary delivery regression intact.go build/vet/golangci-lintclean. (Extraction is platform-agnostic; the downstreamsetcap/systemctlwere host-verified in the prior slices.)Scope / follow-ups
staging, independent of the supervision-dispatch PR (different files); they compose when both land.🤖 Generated with Claude Code
lgtm