Xeonr Developer Docs

Update upload (internal)

POST
/uplim.api.v1.InternalUploadsService/UpdateUpload

Updates an upload with processing results including validation, metadata, AI analysis, and virus scan. Authenticated by the in-band update_token; no Bearer required.

AuthorizationBearer <token>

JWT access token obtained via OAuth2 flow or service account

In: header

Header Parameters

Connect-Protocol-Version?number

Define the version of the Connect protocol

Connect-Timeout-Ms?number

Define the timeout, in ms

Request Body

application/json

updateToken?string

Per-upload processing JWT (queue.EncodeUploadToken)

Length1 <= length <= 4096
validation?|null
metadataEntries?

Per-entry metadata writes. Each entry is upserted into UploadMetadataKV keyed on (upload_id, key). Replaces the legacy UploadMetadata proto blob. Key must be a known registration (common:* or owning integration's slug).

Itemsitems <= 32
hasVirus?boolean|null

validate:skip a bool has no bounds

aiMetadata?|null
thumbnailGenerationVersion?integer|null

validate:skip opaque pipeline version, any uint32 stored as-is

aiDescriptionGenerationVersion?integer|null

validate:skip opaque pipeline version, any uint32 stored as-is

aiTagsGenerationVersion?integer|null

validate:skip opaque pipeline version, any uint32 stored as-is

virusScanGenerationVersion?integer|null

validate:skip opaque pipeline version, any uint32 stored as-is

detectedMime?string|null

Detection results from the pipeline's classification step. Persisted on the Upload row as detected_mime / detected_magic_format / detected_encoding / detected_magic_prefix. The prefix is the first 64 bytes of the file; the read-side matcher evaluator uses it to handle MagicMatch_Raw byte-for-byte the same as the pipeline.

Lengthlength <= 255
detectedMagicFormat?string|null
Lengthlength <= 64
detectedEncoding?string|null
Lengthlength <= 32
detectedMagicPrefix?string|null
Formatbyte
Lengthlength <= 64
thumbnailContentTypeUrn?string|null

URN of the content type whose worker generated the current S3 thumbnail (e.g., "default:image"). Equals resolvePrimary(detection, BucketApplicationDefault) at last classify/reprocess. Null when no thumbnail was generated.

Lengthlength <= 160
reprocessedAt?google.protobuf.Timestamp|null

Reprocess marker — set by the Sub-plan F reprocess workflow once an upload has been re-run under the new content type system.

[key: string]?never

Response Body

application/json

application/json

curl -X POST "https://uploads-api.xeonr.io/uplim.api.v1.InternalUploadsService/UpdateUpload" \  -H "Connect-Protocol-Version: 1" \  -H "Connect-Timeout-Ms: 1000" \  -H "Content-Type: application/json" \  -d '{}'
{}
{
  "code": "not_found",
  "message": "string",
  "details": [
    {
      "type": "string",
      "value": "string",
      "debug": {}
    }
  ]
}