Merged
Conversation
selalererjfrog
approved these changes
Mar 17, 2026
5c353e1 to
5831486
Compare
5831486 to
0013026
Compare
Collaborator
|
jfrog-cli-evidence/evidence/cli/command/command_cli.go Lines 268 to 276 in be621e5 |
alenon
requested changes
Mar 18, 2026
alenon
requested changes
Mar 19, 2026
alenon
approved these changes
Mar 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add External Attachment Support to
jf evd createSummary
This PR adds file attachment support to
jf evd create, allowing users to attach supplementary files (reports, SBOMs, scan results) to in-toto evidence. Two attachment modes are supported:--attach-local— attach a local file (uploaded temporarily to Artifactory, then auto-cleaned after creation)--attach-artifactory-path— reference a file already in ArtifactoryHow It Works
Attachment Flow
Temporary File Lifecycle (local attachments)
When using
--attach-local, the local file is uploaded to a temporary Artifactory path, its SHA-256 checksum is resolved, attachment metadata is embedded into the DSSE envelope, and the upload request is sent to the Evidence service. After the evidence is created, the temporary file is automatically deleted from Artifactory. The file only exists in Artifactory for the duration of the create operation.Backward Compatibility
The upload request to the Evidence service includes attachment metadata (repository, path, sha256) only when attachments are present. The
jfrog-client-golayer performs a version check before sending attachment data — if the Evidence service version is below7.646.1and artifactory7.143.0, the request is rejected client-side with a clear error message. Requests without attachments are unaffected.--attach-artifactory-temp-pathPersistenceThe
--attach-artifactory-temp-pathvalue is resolved from multiple sources in order:--attach-artifactory-temp-pathEVIDENCE_ATTACHMENT_ARTIFACTORY_TEMP_PATH.jfrog/evidence/evidence.ymlkeyattachment.artifactoryTempPathOnce provided, the value is automatically persisted to the config file for subsequent runs. This means
--attach-artifactory-temp-pathonly needs to be specified once.Validation Rules
--attach-local+--attach-artifactory-path--attach-artifactory-temp-pathwithout--attach-local--attach-localwithout--attach-artifactory-temp-path(and no persisted/env value)--sigstore-bundleCLI Examples
1. Local file attachment
On subsequent runs,
--attach-artifactory-temp-pathcan be omitted — the value is persisted:2. Existing Artifactory file attachment
What Changed
jfrog-cli-evidence--attach-local,--attach-artifactory-path,--attach-artifactory-temp-pathevidence/create/attachments.go--attach-artifactory-temp-pathvia env var, config file, or flagjfrog-client-goPR: jfrog/jfrog-client-go#1325
EvidenceDetailsextended withAttachments []AttachmentDetailsfield7.646.1Testing
Checklist