@qtsurfer/api-client
    Preparing search index...

    Type Alias DatasetUploadState

    Progress of one upload, from staged through ingest. Durably recorded once a version exists, so ready/failed are permanent answers; uploading/ingesting reflect in-flight state that can itself age out — see the 404 case on GET .../uploads/{uploadId}.

    type DatasetUploadState = {
        error?: string;
        jobId?: string;
        status: "uploading" | "ingesting" | "ready" | "failed";
        uploadId: string;
        version?: DatasetVersion;
    }
    Index
    error?: string

    A human-readable reason, present when status is failed (e.g. bad CSV contract, mixed timestamp units, a .zip with no file inside or more than one). Durably recorded alongside the failure itself, so it stays available however long after the fact you poll — not tied to how recently the failure happened.

    jobId?: string

    The ingest job id, while status is ingesting.

    status: "uploading" | "ingesting" | "ready" | "failed"
    • uploading — the file was PUT to the presigned URL, but finalize has not been called yet.
    • ingesting — finalize was called; the worker is parsing and validating the file.
    • ready — ingested successfully. version carries the result.
    • failed — ingest rejected the file (e.g. bad CSV contract, mixed timestamp units, a .zip with no file inside or more than one).
    uploadId: string
    version?: DatasetVersion

    Present when status is ready or failed.