Artifact
Included from Basic tier
An artifact is a named, labelled piece of stored content attached to an
estate node: steps collect artifacts while a run executes, and callers
store them directly through the API. What this page describes is the
metadata record — the content itself lives in the blob store, and a
retention purge can remove the bytes while the row remains (purged_at).
Served by the v2 ArtifactService (ListArtifacts — the estate-wide
index, UploadArtifact) and NodeArtifactService (ListNodeArtifacts,
GetArtifact, GetArtifactDownloadTarget).
Artifact
Artifact is one artifact metadata record — the v1 artifact serialization typed, plus the owning node path the estate index pivots on.
| Field | Type | Meaning |
|---|---|---|
byte_size | integer/string | The stored content's size in bytes; unset when the content metadata is unknown (an upstream-written row, or a purged one). |
code | string | The record's code. |
content_type | string | The stored content's media type; unset when unknown. |
created_at | timestamp | When the record was created. |
created_by | string | Username of the creating identity. |
description | string | Free-text description. |
file_count | integer/string | The number of files a collected step artifact's archive carries; unset for artifacts stored as raw content. |
id | string | The record's identity. |
labels | array of string | Labels stored on the artifact, part of its resolution identity. |
node_path | string | The owning node's path. |
purged_at | timestamp | Set when retention purged the artifact's content: the metadata row remains, the bytes are gone. |
step_id | string | The storing step's id; empty for artifacts stored directly on a node. |
ArtifactFilter
ArtifactFilter is the typed estate-index vocabulary. All fields combine with AND; empty fields do not restrict.
| Field | Type | Meaning |
|---|---|---|
node_path_start | string | Keep artifacts whose node path starts with this string (the v1 filter[node_path_start] contract): "/projects/web" matches the project and everything under it. |
NodeArtifact
NodeArtifact is one artifact metadata record — the v1 artifact serialization typed with its scope references.
| Field | Type | Meaning |
|---|---|---|
byte_size | integer/string | The stored content's size in bytes; unset when the content metadata is unknown (an upstream-written row, or a purged one). |
code | string | The record's code. |
content_type | string | The stored content's media type; unset when unknown. |
created_at | timestamp | When the record was created. |
created_by | string | Username of the creating identity. |
description | string | Free-text description. |
file_count | integer/string | The number of files a collected step artifact's archive carries; unset for artifacts stored as raw content. |
id | string | The record's identity. |
labels | array of string | Labels stored on the artifact, part of its resolution identity. |
node_path | string | The owning node's path. |
purged_at | timestamp | Set when retention purged the artifact's content: the metadata row remains, the bytes are gone. |
step_id | string | The storing step's id; empty for artifacts stored directly on a node. |
Related pages
opschain docs artifacts— the component page: how steps collect and store artifacts, and how retention treats them.opschain docs retention— the purge clocks behindpurged_at.opschain docs resources/step— the storing step.