Files
narratio/docs/archive-storage.md

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/ or artifacts/
  • current/manifest.json write
  • current/run_id.txt write
  • audio re-upload from local workdir
  • failed/incomplete run uploads

Prerequisites

Archive verifies the following stages succeeded before upload:

  • prepare
  • transcribe
  • merge
  • polish
  • normalize
  • trim
  • analyze

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: false skips archive cleanly.
  • archive.upload_run: false skips run upload cleanly.

Metadata

Archive stage metadata includes non-secret upload context:

  • s3_bucket
  • s3_run_prefix
  • files_uploaded
  • uploaded_paths
  • audio_upload_skipped