Xeonr Developer Docs
UplApi

uplim.api.v1.InternalPipelineRunsService

postAbort Blob Upload

Aborts an in-progress multipart upload so its parts stop being billed; the side-car calls it best-effort after any mid-stream failure. object_key must lie under this run/step's scratch prefix (PermissionDenied otherwise). **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postAppend Step Log Chunk

Fans a batch of log lines out to live-tail subscribers of StreamStepLogs through the api's in-process broker. Nothing is persisted and an empty batch is a no-op. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postComplete Blob Upload

Completes a multipart upload from the supplied part numbers and ETags. Writes no metadata — the side-car calls FinaliseBlobOutput next. object_key must lie under this run/step's scratch prefix (PermissionDenied otherwise); at least one part is required. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postEnqueue Run

Atomically creates a QUEUED PipelineRun plus one PENDING StepRun per step in the snapshot, stamping parent_step_id for inlined sub-pipeline steps. Refuses with FailedPrecondition when the integration is not actively installed on a numeric bucket (the system Default integration is exempt) or when a QUEUED/RUNNING run already exists for the resource (checked under a row lock; the coordinator retries this). Returns ResourceExhausted with a `retry-after` header when the per-integration run quota is exceeded, NotFound for an unknown snapshot, and InvalidArgument when no resource is set. Reclassify triggers mark earlier runs on the resource as superseded by the new run. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postFinalise Blob Output

Verifies the blob was PUT at the expected key (upload_token must equal it), relocates it to the permanent metadata path (normalising thumbnails to a 768px square), deletes the scratch object, upserts the live UploadMetadata row, appends the name to the step's ledger and bumps the upload's updated_at. Only valid for upload-bound runs (FailedPrecondition otherwise, or when the object is missing); the same output-name namespace rules as MintBlobOutputUpload apply. Aborted (and the step is marked CANCELLED) when the upload was deleted mid-run. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postFinalise Step Logs

Uploads the step's JSONL log content (up to 10 MiB) to `pipeline-logs/<run_id>/<step_id>/logs.jsonl` and records the key and truncation flag on the step run. A final (non-partial) flush is skipped when a log object is already recorded, so the side-car's own flush wins over the coordinator's pod-log fallback; final flushes also drop the live-tail history. NotFound when the step run is missing. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postGet Active Pipeline For Resource

Resolves the integration from the content-type URN's slug prefix and returns its PUBLISHED pipeline for the URN and resource kind, plus the snapshot for the current version and the resolved integration id. Returns an empty response (no error) when the slug matches no integration, no pipeline exists, it isn't published, or its snapshot is missing. A URN without a `<slug>:` prefix is rejected with InvalidArgument. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postGet Integration Config For Resource

Returns the flat config map used for `${{ integration.config.<name> }}` references. Currently always returns an empty map: the source column was dropped and no replacement exists yet. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postGet Integration Secrets Ciphertext

Returns the named integration secrets as ciphertext plus key id only; the coordinator decrypts them with its private key, which the api never holds. Names with no stored secret are omitted, and an empty name list returns an empty response. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postGet Pipeline Run Status

Cheap status poll the coordinator uses (about every 2 seconds while a step runs) to notice an admin cancel. Returns the run's status and, when set, its failure message (the cancel reason). NotFound for an unknown run. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postGet Render Worker Context

Returns the worker-bridge context the headless renderer needs for this step: the run's resource upload as proto-JSON (with its stored filename re-injected and a browser-fetchable content_url) and the renderer scope JSON. config_json, auth_token and api_base_url are currently always empty. FailedPrecondition when the run has no resource upload; Aborted (and the step is marked CANCELLED) when the upload was deleted mid-run. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postGet Resource Metadata KV

Returns every live KV entry on an upload or folder plus the resource itself as JSON (uploads include a presigned source URL, mime and size so `${{ resource }}` resolves as a blob input). resource_json is empty when the resource isn't found. InvalidArgument when neither upload_id nor folder_id is set. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postGet Step Bundle

Returns a fresh presigned download URL, the step ref and the expected SHA-256 for this step's published JS bundle, resolved from the run's frozen snapshot and fetched from the steps registry (owner integration taken from the ref's slug). NotFound when the run, snapshot or step is missing; FailedPrecondition when the step is not a registry-bundle (js) step, the registry isn't configured, or it returns no bundle URL. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postIncrement Step Attempt

Increments a step run's attempt counter before the coordinator retries a transiently failed step, returning the new value. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postList Step Blob Outputs

Returns 5-minute presigned GET URLs with mime and size for each committed blob output (resolved to its permanent metadata location) and each run-scoped local blob a step recorded. Blobs that can't be found are omitted rather than failing the call. NotFound when the step run is missing. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postList Step KV Outputs

Returns the live KV entries a step recorded (per its KV ledger) on the run's upload, for resolving `${{ steps.<id>.outputs.kv.<key> }}`. Empty for non-upload runs, steps with no KV outputs, or keys since deleted. NotFound when the step run is missing. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postList Step Local Outputs

Returns the typed run-scoped locals a step wrote, as a JSON object ("{}" when none), for resolving `${{ steps.<id>.outputs.locals.<name> }}`. NotFound when the step run is missing. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postMark Run Cancelled

Marks a QUEUED or RUNNING run CANCELLED, stores `reason` as its failure message and stamps finished_at. Terminal runs are left unchanged. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postMark Run Failed

Marks a run FAILED with the failing step id, failure class and message, and stamps finished_at. Never overwrites a run that is already terminal; unknown ids are a no-op. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postMark Run Started

Moves a QUEUED run to RUNNING and stamps started_at. Has no effect on a run in any other status or an unknown id. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postMark Run Succeeded

Marks a run SUCCEEDED and stamps finished_at. Never overwrites a run already SUCCEEDED, FAILED or CANCELLED; unknown ids are a no-op. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postMark Step Failed

Records a step run's terminal failure with the caller-chosen status (FAILED, TIMED_OUT or CANCELLED), failure class and message. Already-terminal step runs are left unchanged. NotFound when no such step run exists. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postMark Step Skipped

Marks a step run SKIPPED, used for the remaining steps after a failure halts the pipeline. NotFound when no such step run exists. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postMark Step Started

Marks the step run identified by (run_id, step_id) as started. NotFound when no such step run exists. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postMark Step Succeeded

Marks the step run SUCCEEDED unless it is already terminal. NotFound when no such step run exists. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postMint Blob Output Upload

Presigns a 15-minute PUT for a step's blob output at `pipeline-runs/<run_id>/<step_id>/<output_name>[/<filename>]` on the upload's storage backend; the object key doubles as the upload token for FinaliseBlobOutput. output_name must match the `<slug>:<local>` grammar and be in `common:*` (except reserved pre-step keys) or the run integration's own namespace (`default:*` for system pipelines). Rejects with InvalidArgument when size_bytes exceeds the manifest's declared max_size_bytes. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postMint Local Blob Upload

Presigns a 15-minute PUT for a run-scoped scratch blob at `runs/<run_id>/locals/<step_id>/<output_name>` on the default storage bucket, where a 7-day lifecycle rule removes it. Nothing is committed to UploadMetadata. Same output-name namespace rules as blob outputs. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postPresign Upload Part

Presigns a 15-minute PUT for one part of an in-progress multipart upload. object_key must lie under this run/step's scratch prefix (PermissionDenied otherwise) and part_number must be 1-10000. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postRecord Step Logs

Stores the persisted log object key and truncation flag on a step run. NotFound when no such step run exists. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postRecord Step Outputs

Overwrites a step run's output ledgers (blob output names, KV keys, local output names, local blob names) with the lists supplied. NotFound when no such step run exists. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postRecord Step Utilisation

Stores the step's resource-utilisation snapshot (JSON-encoded) on its step run. NotFound when no such step run exists. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postReport Step Spans

Buffers OpenTelemetry spans the step runtime captured into a per-step Redis list (1 hour TTL) that the coordinator drains into its trace store. An empty batch is a no-op; more than 1000 spans is refused; attributes_json longer than 16 KiB is truncated. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postResolve Renderer For Content Type

Late-binds a `<slug>:<name>` content type to its current renderer archive upload id, preferring the worker config and falling back to the renderer config. NotFound when the integration or content type doesn't exist; FailedPrecondition when there is no config, the renderer is disabled, or it has no archive upload id. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postSet Step KV Output

Writes a step's KV output to the run's upload. The output name must pass the same namespace rules as blob outputs; when the snapshot binds it to a registered IntegrationMetadataKey the row is written under that key and the value type must match (InvalidArgument otherwise), else the name is used verbatim. The key is appended to the step's KV ledger. Only valid for upload-bound runs (FailedPrecondition otherwise). **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postSet Step Local

Stores a run-scoped typed value under `output_name` in the step run's local outputs (last writer wins) and appends the name to its local-output ledger. The value never reaches UploadMetadataKV. InvalidArgument when the value has no variant set. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.

postSet Upload Common Metadata KV

Pre-step write path the coordinator uses after virus scan and classification: upserts `common:*` KV entries on exactly one of an upload or a folder, bypassing step bindings. Entries without a value are skipped; any key outside `common:*` or a value with no variant set is rejected with InvalidArgument. **Access:** internal only — the pipeline coordinator, authenticated by the shared `X-Upl-Internal-Token` header matching `PIPELINE_INTERNAL_TOKEN` (FailedPrecondition when unset, Unauthenticated on mismatch). No user authentication.

postStart Blob Upload

Starts an S3 multipart upload for a streamed blob output at the same deterministic scratch key MintBlobOutputUpload would use, returning the object key and S3 upload id. The api holds the bucket credentials; the side-car then calls PresignUploadPart, CompleteBlobUpload and FinaliseBlobOutput. Same output-name namespace rules as MintBlobOutputUpload. **Access:** internal only — step-scoped. Requires the per-step JWT in `X-Upl-Step-Token` (HS256 over `PIPELINE_INTERNAL_TOKEN`, unexpired) whose run_id/step_id claims match the request; Unauthenticated otherwise. The shared `X-Upl-Internal-Token` is accepted instead only while `PIPELINE_ALLOW_LEGACY_STEP_TOKEN_FALLBACK` is enabled.