Skip to content
Go to platform

Get OCI blob provenance

GET
/v1preview1/artifact-provenance/oci_blob
curl --request GET \
--url 'https://api.craci.dev/v1preview1/artifact-provenance/oci_blob?digest=sha256%3A0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef' \
--header 'Authorization: Bearer <token>'

Find which jobs uploaded an OCI blob. A blob CRACI has only seen referenced by a manifest returns no creating jobs.

digest
required
string

Content digest including its algorithm prefix: sha256: followed by 64 hexadecimal characters, or sha512: followed by 128.

Example
sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef

Artifact identity and creating jobs

Media typeapplication/json
Artifact provenance
object
annotations

Annotations carried by the artifact's own content.

object
key
additional properties
string
artifact_id
required

CRACI identifier for this artifact.

string
/^-?[0-9]+$/
artifact_type

Artifact type declared by an OCI artifact manifest.

string | null
cache_id
One of:
null
digest
required

Content digest including its algorithm prefix, for example sha256:….

string
jobs_created_in
required

Every job observed creating this exact content, newest first. A reproducible build yields more than one; an artifact CRACI has only seen referenced yields none.

Array<object>
Creating job
object
accepted_at
required

Time at which CRACI accepted the publication, in RFC 3339 format.

string
craci_job_id
required

Unique CRACI job ID.

string
/^-?[0-9]+$/
metadata
required
One of: discriminator: kind
OCI publication metadata
object
kind
required
OCI publication discriminator
string
Allowed values: oci
reference
required

Tag or digest the job pushed under.

string
registry
required

OCI registry hostname the job pushed to.

string
repository
required

Repository path within that registry.

string
provider
required
One of: discriminator: kind
GitHub job identity
object
job_id
required

GitHub job identifier.

string
/^-?[0-9]+$/
kind
required
GitHub provider discriminator
string
Allowed values: github
repository
required

GitHub repository in OWNER/REPOSITORY form.

string
kind
required
Artifact kind

What kind of artifact this is.

string
Allowed values: oci_image_manifest oci_image_index oci_unknown_manifest oci_manifest oci_blob gha_cache
media_type

Media type of the artifact's own content, for manifests.

string | null
purl

Package URL of the artifact, when one is known.

string
refers
required

Artifacts this artifact points at by digest, in manifest order. Follow each ref to walk the graph.

Array<object>
Artifact reference
object
digest
required

Digest of the referenced artifact, including its algorithm prefix.

string
kind
required
Artifact kind

Kind of the referenced artifact.

string
Allowed values: oci_image_manifest oci_image_index oci_unknown_manifest oci_manifest oci_blob gha_cache
media_type
required

Media type the referring manifest declared for this artifact.

string
platform
One of:
null
position

Zero-based position within the ordered list this role belongs to. Absent for a config blob, which the manifest names once and does not order.

integer | null format: int32
ref
required

Path of this API that returns the referenced artifact's provenance.

string
role
required
Reference role

How the referring manifest uses this artifact.

string
Allowed values: config layer manifest
size_bytes
required

Size the referring manifest declared for this artifact.

integer format: int64
urls

Locations a non-distributable layer may be fetched from.

Array<string>
subject
One of:
null
Example
{
"jobs_created_in": [
{
"metadata": {
"kind": "oci"
},
"provider": {
"kind": "github"
}
}
],
"kind": "oci_image_manifest",
"refers": [
{
"kind": "oci_image_manifest",
"role": "config"
}
]
}

Malformed selector

Media typeapplication/problem+json
API problem
object
detail
required

Human-readable explanation specific to this occurrence.

string
status
required

HTTP status code returned with the problem.

integer format: int32
title
required

Short, human-readable summary of the problem.

string
type
required

URI identifying the problem type. about:blank uses the HTTP status meaning.

string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

Missing, invalid, expired, or revoked token

Media typeapplication/problem+json
API problem
object
detail
required

Human-readable explanation specific to this occurrence.

string
status
required

HTTP status code returned with the problem.

integer format: int32
title
required

Short, human-readable summary of the problem.

string
type
required

URI identifying the problem type. about:blank uses the HTTP status meaning.

string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

Unknown artifact

Media typeapplication/problem+json
API problem
object
detail
required

Human-readable explanation specific to this occurrence.

string
status
required

HTTP status code returned with the problem.

integer format: int32
title
required

Short, human-readable summary of the problem.

string
type
required

URI identifying the problem type. about:blank uses the HTTP status meaning.

string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}

Internal dependency unavailable or stored artifact invalid

Media typeapplication/problem+json
API problem
object
detail
required

Human-readable explanation specific to this occurrence.

string
status
required

HTTP status code returned with the problem.

integer format: int32
title
required

Short, human-readable summary of the problem.

string
type
required

URI identifying the problem type. about:blank uses the HTTP status meaning.

string
Examplegenerated
{
"detail": "example",
"status": 1,
"title": "example",
"type": "example"
}