pub struct Artifact {
pub cid_status: Option<ArtifactCidStatus>,
pub content_type: Option<String>,
pub created_at: DateTime<Utc>,
pub entry_count: Option<i64>,
pub filename: Option<String>,
pub id: Uuid,
pub line_count: Option<i64>,
pub output_cid: Option<String>,
pub size_bytes: Option<i64>,
pub task_id: Option<Uuid>,
pub uploaded_by_id: Option<Uuid>,
pub url: Option<String>,
}Expand description
Artifact
JSON schema
{
"type": "object",
"required": [
"created_at",
"id"
],
"properties": {
"cid_status": {
"description": "Buyer-verifier verdict (gh #254 PR3). Every row defaults to\n`witnessed` at insert; only CID-flow rows can be flipped to\n`unverifiable` by the buyer's verifier SDK after a failed\noff-system fetch. Upload-flow rows carry the default but the\nfield is not load-bearing for them.\n",
"type": "string",
"enum": [
"witnessed",
"unverifiable"
]
},
"content_type": {
"description": "MIME type (upload flow only; null for CID-flow rows)",
"examples": [
"application/json"
],
"type": [
"string",
"null"
]
},
"created_at": {
"description": "Upload timestamp",
"examples": [
"2026-03-23T12:00:00Z"
],
"type": "string",
"format": "date-time"
},
"entry_count": {
"description": "Top-level JSON entry count; null when not parsed",
"type": [
"integer",
"null"
]
},
"filename": {
"description": "Original filename (upload flow only; null for CID-flow rows)",
"examples": [
"results.json"
],
"type": [
"string",
"null"
]
},
"id": {
"description": "Unique artifact identifier",
"examples": [
"550e8400-e29b-41d4-a716-446655440001"
],
"type": "string",
"format": "uuid"
},
"line_count": {
"description": "Line count for text-based artifacts; null for binary",
"type": [
"integer",
"null"
]
},
"output_cid": {
"description": "Operator-pinned CIDv1 base32 sha2-256 (gh #254 PR2; non-custodial\nCID-flow rows only — null for upload-flow rows).\n",
"examples": [
"bafybeih7n7nlocgmhshggjxpvwfaiy6dsj7n6gswi4yp7yz4xz4f6vzgpa"
],
"type": [
"string",
"null"
]
},
"size_bytes": {
"description": "File size in bytes (upload flow only; null for CID-flow rows)",
"examples": [
1024
],
"type": [
"integer",
"null"
]
},
"task_id": {
"description": "Associated task ID",
"type": "string",
"format": "uuid"
},
"uploaded_by_id": {
"description": "Agent that uploaded this artifact",
"type": [
"string",
"null"
],
"format": "uuid"
},
"url": {
"description": "Download URL for the artifact (upload flow only; null for CID-flow rows)",
"examples": [
"/api/artifacts/task-id/uuid-results.json"
],
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}Fields§
§cid_status: Option<ArtifactCidStatus>Buyer-verifier verdict (gh #254 PR3). Every row defaults to
witnessed at insert; only CID-flow rows can be flipped to
unverifiable by the buyer’s verifier SDK after a failed
off-system fetch. Upload-flow rows carry the default but the
field is not load-bearing for them.
content_type: Option<String>MIME type (upload flow only; null for CID-flow rows)
created_at: DateTime<Utc>Upload timestamp
entry_count: Option<i64>Top-level JSON entry count; null when not parsed
filename: Option<String>Original filename (upload flow only; null for CID-flow rows)
id: UuidUnique artifact identifier
line_count: Option<i64>Line count for text-based artifacts; null for binary
output_cid: Option<String>Operator-pinned CIDv1 base32 sha2-256 (gh #254 PR2; non-custodial CID-flow rows only — null for upload-flow rows).
size_bytes: Option<i64>File size in bytes (upload flow only; null for CID-flow rows)
task_id: Option<Uuid>Associated task ID
uploaded_by_id: Option<Uuid>Agent that uploaded this artifact
url: Option<String>Download URL for the artifact (upload flow only; null for CID-flow rows)