# uip ah

> Manage Automation Hub automation ideas, pipeline, taxonomy, marketplace, and users using the `uip ah` tool.

`uip ah` is the Automation Hub tool (command prefix `ah`, package `@uipath/automation-hub-tool`): it manages the automation-idea pipeline — ideas submitted through an assessment, moved through configurable phases, scored, and tracked to delivery — plus the taxonomy, collaboration, and marketplace surfaces around it. Install it with `uip tools install ah`, or invoke `uip ah …` and let auto-install run. See [Tools (plugins)](./concepts-tools.md) for the install model.

## Concepts

- **Every write is a full-record replace, not a patch.** `automations update`, `categories update`, `users update`, and `tags set` all send Automation Hub's complete record shape — fields you don't pass are carried over from what's already stored (or, for `categories update`/`tags set`, the whole collection is replaced outright). Check each verb's own notes for exactly what's preserved vs. overwritten.
- **`--all-fields` on every read command.** A raw Automation Hub record carries roughly 300 keys, including a `__display` pre-formatted twin for most of them. Every `list`/`get` command projects down to a manageable field set by default; pass `--all-fields` for the untouched payload.
- **Paged vs. unpaged endpoints.** Most `list` commands hit a paged Automation Hub endpoint and accept `--limit`/`--offset` normally. A few endpoints (`roles`, `idea-flows`, `questionnaires list`, `audit-logs list`, `collaborators list`) return their entire collection in one call with no server-side paging — `--limit`/`--offset` are applied client-side on these, after the full set is fetched.
- **IDs come from other `list` commands, not from the UI.** Automation Hub's web UI doesn't expose most of the numeric IDs this CLI takes (category IDs, phase-status IDs, role IDs) — find them with the corresponding `list --all-fields` command, as each verb's own error messages point out.
- **Errors specific to this tool**: a 403 means "not visible to your Automation Hub role," never "not found" — Automation Hub doesn't use 404 for out-of-scope records. A 500-class "Automation Hub is not provisioned on this tenant" or "no tenant record of its own yet" response surfaces as `Result: "ConfigError"` with tenant-onboarding instructions, distinct from an authentication failure.

## Resources

Each resource has its own reference page. The verb set on each page matches the commands registered by `uip ah` — run `uip ah --help` to confirm the full surface on your installation.

| Resource | Purpose |
|---|---|
| [automations, idea-flows, business-cases, phases, questionnaires, pipelines](./uip-ah-automations.md) | The core idea-to-delivery lifecycle: submit and read automation ideas, discover phase/status transitions, read cost-benefit analyses, move ideas through phases, read the assessment question catalogue, and read the benefit-ranked pipeline view. |
| [applications, components, documents, media, store-listings, store-reviews](./uip-ah-catalog.md) | The application inventory automations are tagged against, reusable components, attached documents and media, and the Automation Store marketplace (published listings and their reviews). |
| [categories, tags, collaborators, roles, users](./uip-ah-people.md) | The category taxonomy, free-text tags, per-automation collaborators and their roles, the assignable role catalogue, and Automation Hub user accounts. |
| `audit-logs`, `auth-info` | Covered below on this page — small, cross-cutting utility resources. |

## uip ah audit-logs

Read the Automation Hub audit trail. Automation Hub groups the trail into weekly CSV bundles rather than a flat log.

### uip ah audit-logs list

List audit-log bundles for a date range.

#### Options

| Long | Value | Description |
|---|---|---|
| `--start-date <date>` | `YYYY-MM-DD` | Start of the range. |
| `--end-date <date>` | `YYYY-MM-DD` | End of the range. |
| `--limit <n>` | integer | Maximum number of bundles to return. Default `20`. |
| `--offset <n>` | integer | Number of bundles to skip. Default `0`. |
| `--all-fields` | flag | Return the raw payload instead of the projected `Name`/`EntryCount` fields. |

Unpaged endpoint — the whole collection for the date range is fetched, then windowed client-side. An empty trail (a 404 "No audit log was found") is folded into an empty `Data` array rather than surfaced as an error.

#### Example

```bash
uip ah audit-logs list --start-date 2026-07-01 --end-date 2026-08-04
```

#### Data shape (--output json)

```json
{
  "Code": "AhAuditLogsList",
  "Data": [
    { "Name": "tenant-service-audit-log-(2026-08-02)-to-(2026-08-08).csv", "EntryCount": 12 }
  ]
}
```

A bundle backed by an object-reference blob instead of inline entries returns `Uri` (the value `download --uri` takes) in place of `EntryCount`.

### uip ah audit-logs download

Save one audit-log bundle as a local CSV file.

#### Options

| Long | Value | Required | Description |
|---|---|---|---|
| `--uri <name>` | string | **yes** | Bundle name, exactly as the `Name` field from `audit-logs list`. |
| `--destination <path>` | path | **yes** | Local path to write the CSV to. |

#### Example

```bash
uip ah audit-logs download --uri <name> --destination ./audit.csv
```

#### Data shape (--output json)

```json
{ "Code": "AhAuditLogsDownload", "Data": { "Destination": "./audit.csv", "Bytes": 4096, "Rows": 20 } }
```

## uip ah auth-info

Singular mass-noun resource — there is exactly one identity per session, so there is nothing to list.

### uip ah auth-info get

Show the Automation Hub tenant and your identity in it — the quickest check that Automation Hub is enabled and onboarded for the active tenant.

#### Options

| Long | Description |
|---|---|
| `--all-fields` | Return the raw payload instead of the summarized `Type`/`Tenant`/`User` fields. |

#### Example

```bash
uip ah auth-info get
```

#### Data shape (--output json)

```json
{
  "Code": "AhAuthInfoGet",
  "Data": {
    "Type": "automation-cloud",
    "Tenant": { "Uuid": "...", "CompanyName": "acme - finance", "Url": "..." },
    "User": {
      "Id": 3, "Email": "jane@acme.com", "FirstName": "Jane", "LastName": "Doe",
      "JobTitle": "Analyst", "Department": "Finance", "BusinessUnit": "EMEA",
      "IsAdmin": 1, "IsActive": 1, "Roles": ["ah-system-admin"]
    }
  }
}
```

## Synopsis

```text
uip ah audit-logs list [--start-date <date>] [--end-date <date>] [--limit <n>] [--offset <n>] [--all-fields]
uip ah audit-logs download --uri <name> --destination <path>
uip ah auth-info get [--all-fields]
```

See [automations, idea-flows, business-cases, phases, questionnaires, pipelines](./uip-ah-automations.md), [applications, components, documents, media, store-listings, store-reviews](./uip-ah-catalog.md), and [categories, tags, collaborators, roles, users](./uip-ah-people.md) for the rest of the command surface.

## See also

- [Tools (plugins)](./concepts-tools.md)
- [uip tools](./uip-tools.md)
- [Global options](./global-options.md)
- [Exit codes](./exit-codes.md)
