VA-60: publish minisign-signed meshagent-<id> matching the server fetcher contract #65
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/VA-60-publish-meshagent"
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?
Makes the agent publish workflow emit exactly what the
vervain-serverfetcher consumes, so a configured server fetches and serves a working Linux x86_64 agent and device enrollment succeeds. Builds on VA-57 (which already signed and published themeshagent-6+.minisigpair) and on the VA-58 key-custody design.Changes
vervain-agent-x86_64-...artifact in addition tomeshagent-6, so every binary in the package carries a minisign signature (not just a SHA-256 checksum). Both verify against the same VA-58 publisher public key.X.Y.Z(immutable, 409-tolerant) and to a movingstabletag. The generic registry refuses to overwrite, so thestablepath deletes each file (HTTP 204, or 404 on first publish) before re-uploading, sostablealways points at the latest main build.stableis the fetcher's default pin, so staging tracks the newest agent with no per-release config bump; a pinnedX.Y.Zstays available for a frozen binary.vervain-agent(operator-configurable on the server viaVERVAIN_AGENT_FETCHER_PACKAGE), keeping the descriptive artifacts and themeshagent-<id>pair in one package.docs/agent-package-distribution.mdgains a server-fetcher configuration section with the exactVERVAIN_AGENT_FETCHER_*values (base, owner, package, version, agent-ids, publickey, read:package token for the private namespace), the fail-closed verification behaviour, and an explicit coverage note: only id 6 is built today, pinVERVAIN_AGENT_FETCHER_AGENT_IDS=6until cross-target builds land.Acceptance criteria
meshagent-6+.minisigunder agreed owner/package/version): done - published to pinnedX.Y.Zandstable.VERVAIN_AGENT_FETCHER_AGENT_IDS=6.Validation
No Rust touched. The workflow's embedded nu and the YAML were validated here by parse + runtime checks (
nu --ide-checkclean, list-iteration/indexing andnot-inexercised, the workflow YAML parses to 8 steps). The CI run itself exercises the build/sign/publish end to end on merge to main.Decisions confirmed with the maintainer: moving
stable+ pinnedX.Y.Z; keep packagevervain-agent; sign both binaries.#VA-60