# uip or processes

> `uip or processes` manages the runnable bindings of packages to folders — what Orchestrator internally calls Releases. A process is what `uip or jobs start` targets; a package is the underlying `.nupkg` artifact (see [`uip or packages`](./uip-orchestrator-packages.md)).

`uip or processes` manages the runnable bindings of packages to folders — what Orchestrator internally calls Releases. A process is what `uip or jobs start` targets; a package is the underlying `.nupkg` artifact (see [`uip or packages`](./uip-orchestrator-packages.md)).

## Synopsis

```
uip or processes <verb> [options]
```

## Verbs

| Verb | Purpose |
|---|---|
| `list` | List processes in a folder. |
| `get` | Fetch one process by key, including argument schemas and retention. |
| `create` | Bind a package to a folder as a new process. |
| `update-version` | Bump one or more processes to the latest (or a specific) package version. |
| `edit` | Edit process settings (PATCH semantics on selected fields). |
| `rollback` | Roll a process back to its previous package version. |

## uip or processes list

List processes in a folder. Requires `--folder-path` or `--folder-key`. Returns the process key (GUID), name, version, and basic metadata.

### Options

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| `-t` | `--tenant` | name | session default | Override the tenant. |
| — | `--folder-path` | path | — | Target folder by path. |
| — | `--folder-key` | GUID | — | Target folder by key. |
| `-n` | `--name` | text | — | Contains-match on process name. |
| — | `--process-type` | enum | — | `Process`, `Agent`, `Flow`, `TestAutomationProcess`, `WebApp`, `Api`, `MCPServer`, `BusinessRules`, `CaseManagement`, `Function`. |
| — | `--all-fields` | flag | off | Return the full API payload. |
| `-l` | `--limit` | number | `50` | Page size. |
| — | `--offset` | number | `0` | Skip count. |
| — | `--order-by` | field | `Id desc` | OData sort. |

### Examples

```bash
uip or processes list --folder-path "Shared"
uip or processes list --folder-path "Shared" --process-type Agent
uip or processes list --folder-path "Shared" \
    --output-filter 'Data[].{key:Key, name:Name, v:ProcessVersion}'
```

### Data shape (--output json)

```json
{
  "Code": "ProcessList",
  "Data": [
    {
      "Key": "c3d4e5f6-0000-0000-0000-000000000001",
      "Name": "InvoiceProcessing",
      "ProcessKey": "InvoiceProcessing",
      "ProcessVersion": "1.0.2",
      "Description": "",
      "IsLatestVersion": true,
      "RetentionPeriod": 30,
      "RetentionAction": "Delete"
    }
  ],
  "Pagination": { "Returned": 1, "Limit": 50, "Offset": 0, "HasMore": false }
}
```

## uip or processes get

Fetch one process by GUID key. Returns version, entry point, input/output argument schemas, process type, and configuration. No folder context needed — the key is resolved cross-folder.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<process-key>` | yes | Process key (GUID). Find it with `processes list`. |

### Options

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| `-t` | `--tenant` | name | session default | Override the tenant. |
| — | `--all-fields` | flag | off | Return the full API payload. |

### Examples

```bash
uip or processes get c3d4e5f6-0000-0000-0000-000000000001
uip or processes get c3d4e5f6-0000-0000-0000-000000000001 --all-fields
uip or processes get c3d4e5f6-0000-0000-0000-000000000001 \
    --output-filter 'Data.InputArguments'
```

### Data shape (--output json)

```json
{
  "Code": "ProcessGet",
  "Data": {
    "Key": "c3d4e5f6-0000-0000-0000-000000000001",
    "Name": "InvoiceProcessing",
    "ProcessKey": "InvoiceProcessing",
    "ProcessVersion": "1.0.2",
    "Description": "Processes vendor invoices",
    "IsLatestVersion": true,
    "ProcessType": "Process",
    "EntryPointPath": "Main.xaml",
    "InputArguments": "{\"invoicePath\":\"String\"}",
    "FolderKey": "a1b2c3d4-0000-0000-0000-000000000001",
    "FolderPath": "Shared",
    "AutoUpdate": false,
    "TargetFramework": "Windows",
    "JobPriority": "Normal",
    "SpecificPriorityValue": 50,
    "RetentionPeriod": 30,
    "RetentionAction": "Delete",
    "StaleRetentionPeriod": 0,
    "StaleRetentionAction": "None",
    "HiddenForAttendedUser": false,
    "AutoCreateConnectedTriggers": false
  }
}
```

## uip or processes create

Bind a package to a folder as a process. Requires `--folder-path` or `--folder-key` and three required package options. Use `uip or packages list` for the package key and `uip or packages versions` for available versions.

### Options

#### Required

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| — | `--name` | text | — | Process name inside the folder. |
| — | `--package-key` | text | — | Package key (the `PackageId` from `packages list`). |
| — | `--package-version` | version | — | Package version (for example, `1.0.0`). |

#### Identity and scope

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| `-t` | `--tenant` | name | session default | Override the tenant. |
| — | `--folder-path` | path | — | Target folder by path. |
| — | `--folder-key` | GUID | — | Target folder by key. |

#### Process settings

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| — | `--description` | text | — | Process description. |
| — | `--entry-point` | path | — | Entry-point workflow path (for multi-entry-point packages). |
| — | `--input-arguments` | JSON | — | Default input arguments as JSON. |
| — | `--job-priority` | enum | — | `Low`, `Normal`, `High`. Mutually exclusive with `--specific-priority`. |
| — | `--specific-priority` | 1–100 | — | Numeric priority. Mutually exclusive with `--job-priority`. |
| — | `--robot-size` | enum | — | Cloud robot size: `Small`, `Standard`, `Medium`, `Large`. |
| — | `--tags` | CSV | — | Comma-separated tag names. |
| — | `--environment-variables` | JSON | — | Environment variables as JSON (validated). |
| — | `--auto-update` / `--no-auto-update` | flag | — | Enable/disable auto-update to latest package version. |
| — | `--hidden-for-attended` / `--visible-for-attended` | flag | — | Hide or show to attended users. Mutually exclusive. |
| — | `--auto-create-triggers` / `--no-auto-create-triggers` | flag | — | Auto-create connected triggers on deploy. |

#### Retention

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| — | `--retention-period` | days (1–180) | `30` | Job retention period. |
| — | `--retention-action` | enum | `Delete` | `Delete`, `Archive`, or `None`. |
| — | `--retention-bucket` | bucket ID | — | Storage bucket ID. Required when `--retention-action Archive`. |
| — | `--stale-retention-period` | days | — | Stale-job retention period. |
| — | `--stale-retention-action` | enum | — | `Delete`, `Archive`, or `None`. |

### Examples

```bash
uip or processes create --folder-path "Shared" \
    --name "InvoiceProcessing" \
    --package-key InvoiceProcessing --package-version 1.0.2

uip or processes create --folder-path "Production/EU" \
    --name "InvoiceProcessing" --package-key InvoiceProcessing --package-version 1.0.2 \
    --job-priority High --auto-update --tags "finance,eu"

uip or processes create --folder-path "Shared" \
    --name "InvoiceProcessing" --package-key InvoiceProcessing --package-version 1.0.2 \
    --output-filter 'Data.Key'
```

### Data shape (--output json)

```json
{
  "Code": "ProcessCreated",
  "Data": {
    "Key": "c3d4e5f6-0000-0000-0000-000000000010",
    "Name": "InvoiceProcessing",
    "ProcessKey": "InvoiceProcessing",
    "ProcessVersion": "1.0.2",
    "Description": "",
    "IsLatestVersion": true,
    "RetentionPeriod": 30,
    "RetentionAction": "Delete"
  }
}
```

## uip or processes update-version

Update one or more processes to the latest package version, or to a specific version with `--package-version`. Folder is optional — if not provided it is inferred from the first process key.

- One key + no `--package-version` → update to latest (single API call).
- One key + `--package-version` → update to that version (single API call).
- Multiple keys + no `--package-version` → bulk update-to-latest.
- Multiple keys + `--package-version` → rejected (validation error).

Running jobs are unaffected; only new jobs use the updated version.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<process-keys...>` | yes | One or more process keys (GUIDs). |

### Options

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| `-t` | `--tenant` | name | session default | Override the tenant. |
| — | `--folder-path` | path | inferred | Skip auto-detection and use this folder. |
| — | `--folder-key` | GUID | inferred | Skip auto-detection and use this folder. |
| — | `--package-version` | version | — | Specific version. Only valid with a single key. |

### Examples

```bash
uip or processes update-version c3d4e5f6-0000-0000-0000-000000000001

uip or processes update-version c3d4e5f6-0000-0000-0000-000000000001 \
    --package-version 1.0.3

uip or processes update-version \
    c3d4e5f6-0000-0000-0000-000000000001 \
    c3d4e5f6-0000-0000-0000-000000000002 \
    --output-filter 'Data.Version'
```

### Data shape (--output json)

Single-key:

```json
{
  "Code": "ProcessVersionUpdated",
  "Data": { "ProcessKey": "c3d4e5f6-…-000001", "Version": "latest" }
}
```

Bulk returns `Code: "ProcessVersionsUpdated"` with `ProcessKeys`, `Version`, and a `Result` object echoed from the API.

## uip or processes edit

Edit process settings by key. Reads current values, applies the PATCH fields provided, and saves. Only provided fields are changed; retention fields omitted on the CLI are preserved from the current state.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<process-key>` | yes | Process key (GUID). |

### Options

Same fields as `processes create` except for the three required package options and scope flags. Mutual-exclusion and validation rules match `create` (`--job-priority` vs `--specific-priority`, `--hidden-for-attended` vs `--visible-for-attended`, `Archive` retention requires `--retention-bucket`).

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| `-t` | `--tenant` | name | session default | Override the tenant. |
| `-n` | `--name` | text | — | New display name. |
| `-d` | `--description` | text | — | New description. |
| — | `--entry-point` | path | — | New entry-point path. |
| — | `--input-arguments` | JSON | — | Default input arguments. |
| — | `--job-priority` | enum | — | `Low`, `Normal`, `High`. |
| — | `--specific-priority` | 1–100 | — | Numeric priority. |
| — | `--auto-update` / `--no-auto-update` | flag | — | Toggle auto-update. |
| — | `--hidden-for-attended` / `--visible-for-attended` | flag | — | Attended visibility. |
| — | `--auto-create-triggers` / `--no-auto-create-triggers` | flag | — | Connected-trigger auto-create. |
| — | `--retention-period` | days (1–180) | — | Job retention period. |
| — | `--retention-action` | enum | — | `Delete`, `Archive`, `None`. |
| — | `--retention-bucket` | bucket ID | — | Required when `--retention-action Archive`. |
| — | `--stale-retention-period` | days | — | Stale-job retention period. |
| — | `--stale-retention-action` | enum | — | `Delete`, `Archive`, `None`. |

### Examples

```bash
uip or processes edit c3d4e5f6-0000-0000-0000-000000000001 \
    --description "Monthly invoice batch"

uip or processes edit c3d4e5f6-0000-0000-0000-000000000001 \
    --job-priority High --retention-period 60

uip or processes edit c3d4e5f6-0000-0000-0000-000000000001 \
    --auto-update --output-filter 'Data.Status'
```

### Data shape (--output json)

```json
{
  "Code": "ProcessEdited",
  "Data": {
    "Key": "c3d4e5f6-0000-0000-0000-000000000001",
    "Name": "InvoiceProcessing",
    "Status": "Updated successfully"
  }
}
```

## uip or processes rollback

Roll a process back to its previous package version. Folder is optional — if not provided it is inferred from the process key.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<process-key>` | yes | Process key (GUID). |

### Options

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| `-t` | `--tenant` | name | session default | Override the tenant. |
| — | `--folder-path` | path | inferred | Skip auto-detection. |
| — | `--folder-key` | GUID | inferred | Skip auto-detection. |

### Examples

```bash
uip or processes rollback c3d4e5f6-0000-0000-0000-000000000001
uip or processes rollback c3d4e5f6-0000-0000-0000-000000000001 \
    --folder-path "Shared"
uip or processes rollback c3d4e5f6-0000-0000-0000-000000000001 \
    --output-filter 'Data.Status'
```

### Data shape (--output json)

```json
{
  "Code": "ProcessRolledBack",
  "Data": {
    "ProcessKey": "c3d4e5f6-0000-0000-0000-000000000001",
    "Status": "Rolled back to previous version"
  }
}
```

## Exit codes

See [Exit codes](./exit-codes.md). No verb-specific overrides beyond the standard validation errors.

## Related commands

- [`uip or packages`](./uip-orchestrator-packages.md) — find package keys (`packages list`), versions (`packages versions`), and entry points (`packages entry-points`) before calling `processes create`.
- [`uip or jobs`](./uip-orchestrator-jobs.md) — especially `jobs start`, which takes a process key.
- [`uip or folders`](./uip-orchestrator-folders.md) — create or locate the target folder before binding.

## See also

- [Global options](./global-options.md).
- [Sessions](./concepts-sessions.md).
