Skip to content

feat(build): embed auditable Rust dependency metadata - #2734

Open
alangou wants to merge 1 commit into
mainfrom
alangou/2686-feat-embed-linked-rust-dependency-tree-cargo-auditable-in-release-binaries
Open

feat(build): embed auditable Rust dependency metadata#2734
alangou wants to merge 1 commit into
mainfrom
alangou/2686-feat-embed-linked-rust-dependency-tree-cargo-auditable-in-release-binaries

Conversation

@alangou

@alangou alangou commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Summary

Embed the linked Rust dependency graph in gateway and supervisor binaries used by Release Dev and Release Tag images. This makes shipped binaries directly inspectable by Syft and other cargo-auditable consumers while keeping PR, E2E, and standalone artifact builds unchanged by default.

Related Issue

Closes #2686

Changes

  • Pin cargo-auditable 0.7.5 with locked artifacts for all supported mise platforms
  • Add an opt-in auditable input through the Docker and native Rust build workflows
  • Enable auditable builds only for release gateway and supervisor images
  • Unset sccache around auditable compiler invocations to avoid wrapper chaining failures
  • Verify release binaries by requiring Syft to decode Cargo packages
  • Add OPENSHELL_AUDITABLE=1 for equivalent local prebuilt staging
  • Document auditable binary metadata and its distinction from source-tree and OCI SBOMs

Testing

  • mise run pre-commit
  • mise run test
  • Built auditable amd64 gateway and supervisor prebuilts locally
  • Syft decoded 491 gateway and 358 supervisor Cargo packages
  • Gateway retained its GLIBC 2.28 symbol floor
  • Supervisor remained fully static
  • Release amd64/arm64 matrix — exercised by Release Dev after merge

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)

Coordination

PR #2677 also updates mise.toml and mise.lock; if it merges first, the lockfile should be regenerated with both tools present.

@github-actions

Copy link
Copy Markdown

@alangou
alangou force-pushed the alangou/2686-feat-embed-linked-rust-dependency-tree-cargo-auditable-in-release-binaries branch from 2f5c0d6 to b36255d Compare August 13, 2026 12:47
@alangou
alangou enabled auto-merge August 13, 2026 12:48
@alangou
alangou force-pushed the alangou/2686-feat-embed-linked-rust-dependency-tree-cargo-auditable-in-release-binaries branch from b36255d to e29224a Compare August 19, 2026 13:52
@alangou
alangou requested a review from sjenning as a code owner August 19, 2026 13:52
Signed-off-by: Adrien Langou <alangou@nvidia.com>
@alangou
alangou force-pushed the alangou/2686-feat-embed-linked-rust-dependency-tree-cargo-auditable-in-release-binaries branch from e29224a to 158b724 Compare August 20, 2026 09:07
Comment on lines +12 to +20
The OpenShell SBOM tooling produces source-tree CycloneDX JSON SBOMs using Syft, resolves missing or hash-based licenses by querying public registries (crates.io, npm, PyPI), and exports the results to CSV for stakeholder review.

SBOMs are **release artifacts only** -- they are generated on demand and not committed to the repository. Output lands in `deploy/sbom/output/` (gitignored).

Release Dev and Release Tag image builds separately embed cargo-auditable
metadata in the staged gateway and supervisor binaries. This metadata describes
the binary's Rust dependency graph and lets Syft discover Cargo packages from
the binary itself. It is not a complete image SBOM and is not an OCI SBOM
attestation; publishing such an attestation remains separate work.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Top line is not wrapped but the bottom paragraph is. Is that expected?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: embed linked Rust dependency tree (cargo-auditable) in release binaries

2 participants