Skip to content

OCI 1.1 referrers (Cosign v3 signatures/SBOMs) are not replicated from Artifactory to Harbor #23210

@belmin-devops-eng

Description

@belmin-devops-eng

Expected behavior

When replicating images from a JFrog Artifactory registry to Harbor, all OCI 1.1 artifacts associated with the image should be replicated. This includes referrers such as Cosign v3 signatures, attestations, and SBOMs. After replication, the image in Harbor should be functionally equivalent to the source, including its linked supply-chain metadata.

Actual behavior

Only the container image itself and legacy Cosign v2.x artifacts (which use the .sig tag convention) are replicated. OCI 1.1 referrer artifacts (tagless signatures/SBOMs linked via the subject field) are ignored by the replication job and are missing in Harbor after completion.

Note: Harbor 2.15.0 correctly supports and displays these OCI 1.1 artifacts if they are pushed directly or copied via ORAS; the issue is strictly isolated to the Replication Service.

For related context on OCI 1.1 recognition, see issue: Cosign signatures using OCI 1.1 are not recognized #23013


Steps to reproduce the problem

  • Push an image to JFrog Artifactory and sign it using Cosign v3.x, generating signatures and attaching SBOMs/attestations stored as OCI 1.1 referrers.
  • Verify that referrers exist in Artifactory (e.g. using oras discover or via UI).
  • Create a replication endpoint in Harbor pointing to Artifactory (tested with both Docker Registry and JFrog Artifactory providers).
  • Create and run a Pull-based replication rule from Artifactory to Harbor.
  • Observe the replicated repository in Harbor.

Versions

  • ORAS: 1.3.1
  • Cosign: 3.0.5
  • Harbor: 2.15.0 (also tested with 2.14.1)
  • JFrog Artifactory (Self-Managed): 7.146.10

Additional context

  • Harbor correctly displays and stores Cosign v3 OCI artifacts when directly pushed.
  • The issue appears specific to Harbor replication.
  • Legacy Cosign v2.x signatures (sha256-<digest>.sig) replicate correctly. Only OCI 1.1 referrers are affected.
  • Using oras copy --recursive between the same Artifactory and Harbor instances successfully copies the image and all referrers (signatures, attestations, SBOMS, etc.). This confirms that both registries support the OCI 1.1 spec and that the artifacts are accessible via standard OCI calls.
  • While PR feat(cosign): Support Cosign v3 Bundle signature format #22628 improved Harbor's internal handling of Cosign v3 bundles, the Replication Service appears to lack the logic to traverse the Referrers API during a sync task.

I also tested different replication endpoint providers:

  • Provider (Docker Registry)
    Replication succeeds for the image, but misses OCI 1.1 referrers. Legacy Cosign v2.x signatures (<image-digest>.sig) are replicated correctly.
  • Provider (JFrog Artifactory)
    Replication fails discovery entirely. The job either finishes with total=0 or hangs indefinitely, despite the endpoint test being successful.

I am relatively new to Harbor, so if I have misconfigured something or missed a required setting, please let me know. If additional logs or information are needed, I am happy to provide them. Thank you.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions