Represent any object produced or consumed by the processing pipeline and stored
outside Postgres.
artifacts stores references, hashes, types, schemas, and state. It does not
store heavy JSON or binary payloads.
artifact_idartifact_id is globally unique inside the processing registry.artifact_id is immutable after creation.storage_uri locates the external artifact but must not replaceartifact_id.content_hash identifies artifact content for validation and changeartifacts is owned by victus-processing.
CREATE TABLE artifacts (
artifact_id TEXT PRIMARY KEY,
paper_id TEXT NOT NULL REFERENCES papers(paper_id),
pipeline_run_id TEXT REFERENCES pipeline_runs(pipeline_run_id),
stage_run_id TEXT REFERENCES stage_runs(stage_run_id),
artifact_type TEXT NOT NULL,
schema_name TEXT,
schema_version TEXT,
storage_uri TEXT NOT NULL,
content_hash TEXT NOT NULL,
status TEXT NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
validated_at TIMESTAMPTZ
);
| Field | Type | Description |
|---|---|---|
artifact_id |
TEXT | Primary identifier for the artifact registry row. |
paper_id |
TEXT | Paper associated with the artifact. |
pipeline_run_id |
TEXT / NULL | Pipeline run that produced or consumed the artifact. |
stage_run_id |
TEXT / NULL | Stage run that produced or consumed the artifact. |
artifact_type |
TEXT | Stable artifact type. |
schema_name |
TEXT / NULL | Schema name associated with the artifact payload. |
schema_version |
TEXT / NULL | Schema version associated with the artifact payload. |
storage_uri |
TEXT | External artifact location. |
content_hash |
TEXT | Hash of artifact content. |
status |
TEXT | Current artifact registry status. |
created_at |
TIMESTAMPTZ | Artifact registry creation timestamp. |
validated_at |
TIMESTAMPTZ / NULL | Timestamp when the artifact was validated. |
artifacts must:
artifacts must not store:
artifact_id, paper_id, artifact_type, storage_uri, content_hash,status are required.paper_id must reference an existing papers.paper_id.pipeline_run_id, when present, must reference an existingpipeline_runs.pipeline_run_id.stage_run_id, when present, must reference an existingstage_runs.stage_run_id.artifact_type must be one of the expected types unless the contract isstatus must be one of the allowed states.validated_at should be set when status is validated or promoted.source_pdfsource_markdownprocessed_markdownmarkdown_batchesstructured_blockspaper_classificationtrimmed_blocksexperiment_mapcanonical_evidence_setevaluation_reportindex_payloadlangfuse_trace_exportcreatedavailablevalidatedpromotedsupersededdeprecatedfailed_validationdeletedCreated when an artifact is registered.
Updated when the artifact becomes available, validated, promoted, superseded,
deprecated, fails validation, or is deleted.
Logical deletion is represented by status: deleted.
Deprecated when an artifact remains available but should no longer be used for
new processing or consumption.
ProcessingPapersPipelineRunsStageRunsProcessingErrorsartifacts.paper_id -> papers.paper_idartifacts.pipeline_run_id -> pipeline_runs.pipeline_run_idartifacts.stage_run_id -> stage_runs.stage_run_idstage_runs.input_artifact_ids[] -> artifacts.artifact_idstage_runs.output_artifact_ids[] -> artifacts.artifact_idArtifact content lives outside Postgres. The registry stores enough metadata to
locate, validate, promote, supersede, or deprecate artifacts.
Documentation clarification or validation wording refinement.
Backward-compatible additions such as nullable columns, new artifact types, or
new non-breaking status values.
Breaking schema changes, identity changes, artifact type meaning changes, status
meaning changes, or field removals.