Xeonr Developer Docs

List Pipeline Runs

POST
/uplim.api.v1.PipelineAdminService/ListPipelineRuns

Lists runs newest first (ties broken by run id): one integration's, or with owner_scope.team every integration that team owns, paged across all of them. integration_id alongside a team narrows to that integration, which must be the team's (NotFound otherwise). limit defaults to 50 and is clamped to 200. page_token is the previous response's next_page_token (InvalidArgument if unparseable); next_page_token is empty on the last page. Status, trigger, bucket, time-range, content-type URN, pipeline version and upload filters are applied in the query, so every page but the last is full.

Access: for one integration, an authenticated caller who owns the integration's OAuth client (and its application, when the client belongs to one), a upl writer or above in the team that owns it, or any caller holding the upl:admin scope; system integrations such as Default require upl:admin. Missing integrations return NotFound; other callers get PermissionDenied. For a team, the upl writer role or above in that team or upl:admin; a team the caller has no such role in is NotFound. A system integration the team owns is included only for upl:admin (naming it without that is PermissionDenied).

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

integrationId?string

The integration whose runs to list. Required unless owner_scope names a team; with a team it narrows the listing to that one of the team's integrations.

Formatuuid
statuses?statuses

Optional filters — all applied as AND.

Itemsitems <= 100
triggers?triggers
Itemsitems <= 100
bucketId?string|null
Lengthlength <= 255
enqueuedBefore?google.protobuf.Timestamp|null
enqueuedAfter?google.protobuf.Timestamp|null
contentTypeUrn?string|null

Filter to runs whose pipeline targets this content-type URN. Resolved against the pipeline (not the run) so a run is included regardless of which snapshot version it executed against.

Lengthlength <= 255
pipelineVersion?integer|null

Filter to runs of pipelines pinned to this exact published version. Most useful as "show me only runs of v3" when triaging a fresh publish; pair with content_type_urn for a single pipeline's run history. validate:skip any version number is a valid filter; no server bound

uploadId?string|null

Filter to runs bound to this specific upload id (Upload kind + VirtualFileSentinel kind both surface the upload's UUID here).

Lengthlength <= 255
pageToken?string

Cursor: the previous page's next_page_token. Opaque; a bare RFC3339Nano enqueued_at (the old token) is still accepted.

Lengthlength <= 256
limit?integer

Default 50, max 200. validate:skip server maps 0 to the default 50 and clamps values over 200 to 200 rather than rejecting

ownerScope?|null

Lists the runs of every integration a team owns, in one newest-first listing that pages across them. Only a team is accepted (personal is InvalidArgument); the caller needs the upl writer role or above in it.

[key: string]?never

Response Body

application/json

application/json

curl -X POST "https://uploads-api.xeonr.io/uplim.api.v1.PipelineAdminService/ListPipelineRuns" \  -H "Connect-Protocol-Version: 1" \  -H "Connect-Timeout-Ms: 1000" \  -H "Content-Type: application/json" \  -d '{}'
{
  "runs": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "snapshotId": "09520abc-01e6-4da1-8fa5-f10e3883c861",
      "integrationId": "497a18ca-284e-40c0-985d-f72be35d468e",
      "bucketId": "string",
      "trigger": "PIPELINE_RUN_TRIGGER_UNSPECIFIED",
      "resource": {
        "kind": "PIPELINE_RESOURCE_KIND_UNSPECIFIED",
        "folderId": "string"
      },
      "batchId": "string",
      "status": "PIPELINE_RUN_STATUS_UNSPECIFIED",
      "failureClass": "STEP_FAILURE_CLASS_UNSPECIFIED",
      "failureStepId": "string",
      "failureMessage": "string",
      "stepRuns": [
        {
          "stepId": "string",
          "parentStepId": "string",
          "status": "STEP_RUN_STATUS_UNSPECIFIED",
          "attempt": 0,
          "failureClass": "STEP_FAILURE_CLASS_UNSPECIFIED",
          "failureMessage": "string",
          "resolvedInputsJson": "string",
          "blobOutputNames": [
            "string"
          ],
          "kvOutputKeys": [
            "string"
          ],
          "localOutputNames": [
            "string"
          ],
          "localBlobNames": [
            "string"
          ],
          "logsObjectKey": "string",
          "logsTruncated": true,
          "utilisation": {
            "cpuMilliseconds": "string",
            "wallTimeMs": "string",
            "blobBytesWritten": "string",
            "kvWrites": 0,
            "httpCallsOutbound": 0,
            "peakMemoryBytes": "string"
          },
          "startedAt": "2023-01-15T01:30:15.01Z",
          "finishedAt": "2023-01-15T01:30:15.01Z"
        }
      ],
      "supersededByRunId": "458849c9-1a7a-4314-b11d-cb996f79bcdf",
      "pipelineUrn": "string",
      "enqueuedAt": "2023-01-15T01:30:15.01Z",
      "startedAt": "2023-01-15T01:30:15.01Z",
      "finishedAt": "2023-01-15T01:30:15.01Z",
      "traceRunId": "string"
    }
  ],
  "nextPageToken": "string"
}
{
  "code": "not_found",
  "message": "string",
  "details": [
    {
      "type": "string",
      "value": "string",
      "debug": {}
    }
  ]
}