1.7 KiB
1.7 KiB
Archive Storage
This document describes implemented archive-stage storage behavior.
Scope
Implemented:
- archive uploads successful run records to remote object storage through the storage backend abstraction.
- upload destination is the run prefix:
{root_prefix}/campaigns/{campaign}/sessions/{session_id}/runs/{run_id}/
- tests use fake storage and do not require live S3.
Not implemented:
- promotion uploads to top-level
transcripts/orartifacts/ current/manifest.jsonwritecurrent/run_id.txtwrite- audio re-upload from local workdir
- failed/incomplete run uploads
Prerequisites
Archive verifies the following stages succeeded before upload:
preparetranscribemergepolishnormalizetrimanalyze
If any prerequisite is missing or not succeeded, archive fails and does not upload.
Uploaded Run Record
Archive uploads existing files from the run workdir when present:
inputs/transcripts/artifacts/reports/(optional)config/logs/manifest.json
Archive preserves relative file paths under runs/{run_id}/.
Example:
- local
transcripts/raw/speaker.json - remote
runs/{run_id}/transcripts/raw/speaker.json
Audio Upload Policy
Archive does not upload local audio/ by default.
Original audio is expected at the session-level audio prefix and is not duplicated under runs/{run_id}/.
Config Controls
archive.enabled: falseskips archive cleanly.archive.upload_run: falseskips run upload cleanly.
Metadata
Archive stage metadata includes non-secret upload context:
s3_buckets3_run_prefixfiles_uploadeduploaded_pathsaudio_upload_skipped