feat(ci): publish minisign-signed meshagent-<id> to the Forgejo package #63
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/VA-57-minisign-signed-packages"
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?
The vervain-server fetcher pulls each agent from the Forgejo generic package under the MeshCentral-style filename
meshagent-<AgentId>and verifies a detached minisign signaturemeshagent-<id>.minisigagainst an operator-supplied public key. Server-side verification is mandatory (the public key is required, not optional), so the previously published artifacts (namedvervain-agent-x86_64-unknown-linux-gnu, unsigned) could not be consumed.Add a signing step to build-package.yml that copies the built binary to
meshagent-6(AgentId::Linux64, the only target built today) and signs it with minisign inside a pinned alpine container, keeping the host dependency to just Docker. The password-less signing key comes from the new CI secretVERVAIN_AGENT_MINISIGN_SECRET_KEYand is written only to the container tmpfs, never to the publishedout/dir. The upload step now also publishesmeshagent-6andmeshagent-6.minisigalongside the existing descriptive-named artifact and its sha256.Document owner/package/version, the public key (with provisioning steps), and the full AgentId-to-filename mapping in docs/agent-package-distribution.md for server-side configuration. Verified the signing flow end-to-end locally: a password-less key signs
meshagent-6via the identical container step andminisign -Vconfirms the signature against the published public key. Key custody and rotation are designed in VA-58.#VA-57