# CodePipelineProcess

A run of a code pipeline: its status, the repositories it works on, and each phase and step as it goes.

**Kind:** an object, used in responses.

## Fields

Every field is present in a response; empty ones are `null`.

| Field | Type | Description |
|---|---|---|
| `pipeline` | [`VersionReference`](https://docs.maitento.com/reference/types/version-reference.md) | The code pipeline and the version of it the run uses. |
| `status` | [`CodePipelineProcessStatus`](https://docs.maitento.com/reference/types/code-pipeline-process-status.md) | Where the run is. |
| `failureDetails` | `string \| null` | Why the run failed. Null unless it did. |
| `failureReason` | `string \| null` | The kind of failure, when the run failed because of its coding tool or model provider: `"Auth"` (a key or sign-in was rejected), `"RateLimit"`, `"Quota"` (a usage limit is used up), `"Transient"` (a temporary provider error), `"Terminal"` (an error retrying won't fix), `"EndpointModelNotFound"` (no credential's endpoint serves the model) or `"Endpoint"` (an endpoint answered "not found"). Null when the run hasn't failed, or failed some other way (a git push, for example): check `status` to tell which. |
| `inputs` | [`NameValuePair`](https://docs.maitento.com/reference/types/name-value-pair.md)`[]` | The values the run was started with, by input name. |
| `agentOverrides` | [`CodePipelineProcessAgentOverride`](https://docs.maitento.com/reference/types/code-pipeline-process-agent-override.md)`[] \| null` | The engines and models the run uses in place of its agents' defaults. |
| `additionalAgents` | [`CodePipelineAgent`](https://docs.maitento.com/reference/types/code-pipeline-agent.md)`[] \| null` | Agents added for this run only, alongside the pipeline's own. A restart keeps them. |
| `reviewPanel` | [`CodePipelineReviewPanel`](https://docs.maitento.com/reference/types/code-pipeline-review-panel.md)`\| null` | The run's review panel. Null when it has none. A restart keeps it. |
| `maxParallelSteps` | `integer \| null` | For this run, how many of a phase's steps may run at once, in place of the pipeline's `maxParallelSteps`. Null: the pipeline's value. Between 1 and 16. |
| `credentials` | [`CodePipelineProcessCredentials`](https://docs.maitento.com/reference/types/code-pipeline-process-credentials.md)`[]` | The credentials the run was given for its engines. Keys and tokens are never returned. |
| `credentialStack` | [`CredentialStackSnapshot`](https://docs.maitento.com/reference/types/credential-stack-snapshot.md)`\| null` | The credential stack the run uses, as it stood when the run started (no secrets: keys are read live). When set, the engines use only this stack. Null: the run uses the credentials it was given. |
| `credentialFailures` | [`CodePipelineCredentialFailure`](https://docs.maitento.com/reference/types/code-pipeline-credential-failure.md)`[] \| null` | Failures of your own credentials during the current attempt. Null or empty when there were none. |
| `repos` | [`CodePipelineProcessRepo`](https://docs.maitento.com/reference/types/code-pipeline-process-repo.md)`[]` | The git repositories the run works on. Their credentials are never returned. |
| `vfsMounts` | [`CodePipelineProcessVfsMount`](https://docs.maitento.com/reference/types/code-pipeline-process-vfs-mount.md)`[] \| null` | The file systems mounted for the run's agents. |
| `systemPromptOverride` | `string \| null` | An extra system prompt for this run, applied on top of the pipeline's and agents' prompts. |
| `inputFileIds` | `uuid[] \| null` | Uploaded files the run copies into the agents' `files/` folder before it starts. |
| `phases` | [`CodePipelinePhaseExecution`](https://docs.maitento.com/reference/types/code-pipeline-phase-execution.md)`[]` | Each phase of the run, with its steps, as it goes. Hooks can add phases while the run is going. |
| `additionalSteps` | [`CodePipelineProcessAdditionalSteps`](https://docs.maitento.com/reference/types/code-pipeline-process-additional-steps.md)`[] \| null` | Steps added to the pipeline's phases for this run only. |
| `injectedPhases` | [`CodePipelinePhaseDefinition`](https://docs.maitento.com/reference/types/code-pipeline-phase-definition.md)`[] \| null` | Phases that hooks added to the run, beyond the pipeline's own. |
| `injectedPhaseCount` | `integer \| null` | How many phases hooks have added to the run so far, counted against the pipeline's `maxInjectedPhases`. |
| `variables` | [`NameValuePair`](https://docs.maitento.com/reference/types/name-value-pair.md)`[] \| null` | The run's variables: step results stored by `outputVariableName`, and values set by hooks. Step prompts read them as `%%name%%`. |
| `resumeFromProcessId` | `uuid \| null` | For a restarted run, the run it was restarted from. Null for a run started any other way. |
| `resumeVfsId` | `uuid \| null` | Not currently used. |
| `resumeContinuationPrompt` | `string \| null` | The prompt a resume-with-prompt sent to the agent. The step that failed or was interrupted carries on in the same session with this prompt instead of its own. Cleared once the agent has it. |
| `dateStarted` | `datetime \| null` | When a worker first started the run, in UTC. A resume doesn't change it. |
| `dateEnded` | `datetime \| null` | When the run ended, in UTC. Null while it is going, and cleared when it is resumed. |
| `executionTime` | `timespan` | The total time the run has spent working, across every attempt and resume. Time waiting for a worker or for an answer isn't counted. While the run is `Running`, add the time since `dateRunnerClaimed`. |
| `dateReQueuedUtc` | `datetime \| null` | When the run was last sent back to wait for a worker, in UTC: by a resume, or by answering its last question. Null if that has never happened. |
| `waitingForLaneSinceUtc` | `datetime \| null` | When the run started waiting for a lane, in UTC; null when it isn't waiting. A waiting run is in status New, and `GET /processes/{type}/{id}/lane` says why it waits. Set by Maitento. |
| `parentProcessId` | `uuid \| null` | The app run that started this run from its code. Null when no app run started it. A restart keeps it. |
| `parentProcessType` | [`ProcessType`](https://docs.maitento.com/reference/types/process-type.md)`\| null` | What kind of run `parentProcessId` is. Null exactly when that is null. |
| `rootProcessId` | `uuid \| null` | For a run started by an app, the id of the run at the top of its tree, shared by every run started for the same piece of work, so you can group them without following parent links. Null when no app run started it. A restart keeps it. |
| `triggeredByAutomatedActionId` | `uuid \| null` | The automation that started this run (on a schedule, a message or by hand). Null when it was started any other way. A restart keeps it. |
| `triggeredByAutomatedActionName` | `string \| null` | The automation's name when it started this run. Null exactly when `triggeredByAutomatedActionId` is. |
| `retentionLeaseActive` | `boolean \| null` | True while a retention lease keeps this run: its own, or one inherited from a retained run that started it. A retained run is never deleted when the tenant's retention period ends. Null or false: not retained. |
| `retentionLeaseAppliedAtUtc` | `datetime \| null` | When the lease was taken, in UTC. For an inherited lease, when the ancestor's lease was taken. |
| `retentionLeaseAppliedByUserId` | `uuid \| null` | The id of the user who took the lease. |
| `retentionLeaseAppliedByUserName` | `string \| null` | The name of the user who took the lease, as it was when they took it. |
| `retentionLeaseNote` | `string \| null` | Why it is retained, as the person who retained it wrote it (optional, at most 500 characters). |
| `retentionLeaseInheritedFromProcessId` | `uuid \| null` | Null when the lease is this run's own. Otherwise the id of the ancestor run whose lease keeps this one; releasing that run's lease releases this one too. |
| `hostname` | `string \| null` | The name of the worker machine running the run, for diagnostics. |
| `dateRunnerPing` | `datetime \| null` | When the worker running the run last reported that it is alive, in UTC. |
| `dateRunnerClaimed` | `datetime \| null` | When a worker last picked the run up, in UTC: the start of its current stretch of work. While the run is `Running`, its time so far is `executionTime` plus the time since this. |
| `packageInstalls` | [`CodePipelinePackageInstall`](https://docs.maitento.com/reference/types/code-pipeline-package-install.md)`[] \| null` | The packages the agents installed during the run. |
| `outputFilesPartitionId` | `uuid \| null` | The knowledge base (partition) that files the agents write to `output_files/` are uploaded to. Null: output files aren't uploaded. |
| `outputFiles` | [`CodePipelineOutputFile`](https://docs.maitento.com/reference/types/code-pipeline-output-file.md)`[] \| null` | The files uploaded from `output_files/` so far. |
| `autoRebase` | `boolean` | Whether the run rebases each work branch onto its source branch when they have diverged, with an agent resolving any conflicts. |
| `rebaseAgent` | `string \| null` | The agent that resolves rebase conflicts. Null: Maitento picks one by engine. |
| `maxCheckLoops` | `integer \| null` | For this run, the most rounds of a step's `runChallengeLoop` check, in place of the pipeline's `maxCheckLoops`. Null: the pipeline's value. Capped at 8. |
| `maxFixIterations` | `integer \| null` | For this run, the most review-and-fix rounds, in place of the pipeline's `maxFixIterations`. Null: the pipeline's value. Capped at 5. |
| `allowWebTools` | `boolean \| null` | For this run, whether every agent gets Maitento's web tools. Null: each agent's and the pipeline's own `allowWebTools`. |
| `webDownloadPartitionId` | `uuid \| null` | The temporary knowledge base (partition) the run's web fetches are kept in, chosen when the run starts. Null: no agent of the run may fetch from the web. |
| `stepMax` | `timespan \| null` | For this run, the longest every step may run, in place of each step's own `durationAutoTermination`. |
| `stepActivity` | `timespan \| null` | For this run, how long every step may go without activity, in place of each step's own `durationActivityTimeout`. |
| `phaseMax` | `timespan \| null` | For this run, each phase's `durationAutoTermination`. |
| `phaseActivity` | `timespan \| null` | For this run, each phase's `durationActivityTimeout`. |
| `processMax` | `timespan \| null` | For this run, the pipeline's `durationAutoTermination`. |
| `processActivity` | `timespan \| null` | For this run, the pipeline's `durationActivityTimeout`. |
| `hook` | `timespan \| null` | For this run, the longest one hook may run, in place of the pipeline's `hookDurationLimit`. |
| `diffRef` | [`CodePipelineChildRef`](https://docs.maitento.com/reference/types/code-pipeline-child-ref.md)`\| null` | A reference to the run's diff, file by file. Null until the run has produced one. |
| `diffRawRef` | [`CodePipelineChildRef`](https://docs.maitento.com/reference/types/code-pipeline-child-ref.md)`\| null` | A reference to the run's diff as unified diff text. Null until the run has produced one. |
| `toolUseCount` | `integer \| null` | How many tool calls the run's agents have made so far. |
| `contextEntryCount` | `integer \| null` | How many transcript entries (the agents' text and thinking) the run has so far. |
| `payloadBytes` | `integer \| null` | The total size, in bytes, of the run's tool calls, transcript entries and diffs. |
| `revisionHighWater` | `integer \| null` | The highest revision of any of the run's tool calls, transcript entries or diffs. If it hasn't changed since you last fetched them, none of them has. |
| `resolvedCommitSha` | `string \| null` | The `resolvedCommitSha` of the run's first repository, copied here for convenience. Null for a run without repositories. |
| `priorCommitSha` | `string \| null` | An earlier commit to diff from. A run's diff normally compares the work branch with the source branch; with this set, or a run input named `priorCommitSha`, it shows only what changed since that commit. |
| `userCreatedById` | `uuid` | The id of the user who created it. A call made with an API key is recorded as the key's user. |
| `tenantId` | `uuid` | The id of the tenant it belongs to. |
| `id` | `uuid` | The unique id. Use it in `by-id` routes and wherever another object refers to this one. |
| `dateCreated` | `datetime` | When it was created, in UTC. |
| `dateUpdated` | `datetime` | When it was last changed, in UTC. |

## Example

```json
{
  "pipeline": {
    "id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
    "version": 0
  },
  "status": "New",
  "failureDetails": "...",
  "failureReason": "...",
  "inputs": [
    {
      "name": "...",
      "value": "..."
    }
  ],
  "agentOverrides": [
    {
      "agentName": "...",
      "engine": "Claude",
      "model": "..."
    }
  ],
  "additionalAgents": [
    {
      "name": "...",
      "defaultEngine": "Claude",
      "role": "Architect",
      "tags": [],
      "defaultModel": "...",
      "systemPrompts": [],
      "enginePrompts": [],
      "systemPromptMode": "Additional",
      "externalOperationsMcp": [],
      "externalOperationsOpenApi": [],
      "allowWebTools": false
    }
  ],
  "reviewPanel": {
    "phaseName": "...",
    "recheckPolicy": "AllMembers",
    "members": [
      {}
    ]
  },
  "maxParallelSteps": 0,
  "credentials": [
    {
      "type": "apiKey"
    }
  ],
  "credentialStack": {
    "stackId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
    "stackName": "...",
    "stackVersion": 0,
    "source": "Start",
    "resolvedAtUtc": "2026-10-26T12:00:00.0000000Z",
    "entries": [
      {}
    ],
    "passesToChildren": false
  },
  "credentialFailures": [
    {
      "credentialId": "...",
      "reason": "...",
      "detail": "...",
      "dateUtc": "2026-10-26T12:00:00.0000000Z",
      "retryAfterSeconds": 0
    }
  ],
  "repos": [
    {
      "type": "http"
    }
  ],
  "vfsMounts": [
    {
      "name": "...",
      "vfsId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
      "mode": "ReadOnly",
      "context": "..."
    }
  ],
  "systemPromptOverride": "...",
  "inputFileIds": [
    "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f"
  ],
  "phases": [
    {
      "phaseName": "...",
      "status": "NotStarted",
      "dateStart": "2026-10-26T12:00:00.0000000Z",
      "dateEnd": "2026-10-26T12:00:00.0000000Z",
      "steps": [],
      "failureDetails": "...",
      "hookPreOutput": "...",
      "hookPostOutput": "..."
    }
  ],
  "additionalSteps": [
    {
      "phaseName": "...",
      "steps": []
    }
  ],
  "injectedPhases": [
    {
      "name": "...",
      "dependsOn": [],
      "steps": [],
      "preHook": "...",
      "postHook": "...",
      "onFailHook": "...",
      "durationWarning": "00:05:00",
      "durationAutoTermination": "00:05:00",
      "durationActivityTimeout": "00:05:00"
    }
  ],
  "injectedPhaseCount": 0,
  "variables": [
    {
      "name": "...",
      "value": "..."
    }
  ],
  "resumeFromProcessId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "resumeVfsId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "resumeContinuationPrompt": "...",
  "dateStarted": "2026-10-26T12:00:00.0000000Z",
  "dateEnded": "2026-10-26T12:00:00.0000000Z",
  "executionTime": "00:05:00",
  "dateReQueuedUtc": "2026-10-26T12:00:00.0000000Z",
  "waitingForLaneSinceUtc": "2026-10-26T12:00:00.0000000Z",
  "parentProcessId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "parentProcessType": "App",
  "rootProcessId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "triggeredByAutomatedActionId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "triggeredByAutomatedActionName": "...",
  "retentionLeaseActive": false,
  "retentionLeaseAppliedAtUtc": "2026-10-26T12:00:00.0000000Z",
  "retentionLeaseAppliedByUserId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "retentionLeaseAppliedByUserName": "...",
  "retentionLeaseNote": "...",
  "retentionLeaseInheritedFromProcessId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "hostname": "...",
  "dateRunnerPing": "2026-10-26T12:00:00.0000000Z",
  "dateRunnerClaimed": "2026-10-26T12:00:00.0000000Z",
  "packageInstalls": [
    {
      "agentName": "...",
      "packageManager": "...",
      "packageName": "...",
      "dateRequested": "2026-10-26T12:00:00.0000000Z",
      "dateCompleted": "2026-10-26T12:00:00.0000000Z",
      "wasSuccessful": false
    }
  ],
  "outputFilesPartitionId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "outputFiles": [
    {
      "id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
      "fileName": "...",
      "checksum": "...",
      "size": 0,
      "version": 0,
      "dateLastUploadedUtc": "2026-10-26T12:00:00.0000000Z"
    }
  ],
  "autoRebase": false,
  "rebaseAgent": "...",
  "maxCheckLoops": 0,
  "maxFixIterations": 0,
  "allowWebTools": false,
  "webDownloadPartitionId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "stepMax": "00:05:00",
  "stepActivity": "00:05:00",
  "phaseMax": "00:05:00",
  "phaseActivity": "00:05:00",
  "processMax": "00:05:00",
  "processActivity": "00:05:00",
  "hook": "00:05:00",
  "diffRef": {
    "id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
    "rev": 0
  },
  "diffRawRef": {
    "id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
    "rev": 0
  },
  "toolUseCount": 0,
  "contextEntryCount": 0,
  "payloadBytes": 0,
  "revisionHighWater": 0,
  "resolvedCommitSha": "...",
  "priorCommitSha": "...",
  "userCreatedById": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "tenantId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "dateCreated": "2026-10-26T12:00:00.0000000Z",
  "dateUpdated": "2026-10-26T12:00:00.0000000Z"
}
```

## Where it's used

- [`pipelineRuns.get`](https://docs.maitento.com/reference/api/pipeline-runs.md) (`GET /code-pipelines/processes/by-id/{id}`)
- [`pipelineRuns.listActive`](https://docs.maitento.com/reference/api/pipeline-runs.md) (`GET /code-pipelines/processes/alive`)
- [`pipelineRuns.list`](https://docs.maitento.com/reference/api/pipeline-runs.md) (`GET /code-pipelines/processes`)
- [`pipelineRuns.restart`](https://docs.maitento.com/reference/api/pipeline-runs.md) (`PUT /code-pipelines/processes/by-id/{id}/restart`)
- [`pipelineRuns.resumeWithPrompt`](https://docs.maitento.com/reference/api/pipeline-runs.md) (`PUT /code-pipelines/processes/by-id/{id}/resume-with-prompt`)
- [`pipelines.start`](https://docs.maitento.com/reference/api/pipelines.md) (`PUT /code-pipelines/processes/by-id/{id}/start`)
- [`pipelines.start`](https://docs.maitento.com/reference/api/pipelines.md) (`PUT /namespaces/{namespaceName}/code-pipelines/by-name/{name}/start`)
