# `nom` CLI

The `nom` command line tool is installed with the `nominal` package. See the [CLI guide](https://dev.nominal.io/python/guides/cli/overview.md) for an introduction.

## nom

Usage

```shell
nom [OPTIONS] COMMAND [ARGS]...
```

Options

### --version

Show the version and exit.

### config

Usage

```shell
nom config [OPTIONS] COMMAND [ARGS]...
```

#### migrate

Interactively migrate deprecated config at ~/.nominal.yml
to new profile-based config at ~/.config/nominal/config.yml

Usage

```shell
nom config migrate [OPTIONS]
```

#### profile

Usage

```shell
nom config profile [OPTIONS] COMMAND [ARGS]...
```

##### add

Add or update a profile to your Nominal config

Usage

```shell
nom config profile add [OPTIONS] PROFILE
```

Options

###### -t, --token <token>

**Required** bearer token or api key

###### -u, --base-url <base_url>

###### -w, --workspace-rid <workspace_rid>

workspace RID [optional]

###### --validate, --no-validate

Validate authentication parameters

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

Arguments

###### PROFILE

Required argument

##### list

List the profiles in your Nominal config

Usage

```shell
nom config profile list [OPTIONS]
```

Options

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

##### remove

Remove a profile from your Nominal config

Usage

```shell
nom config profile remove [OPTIONS] PROFILE
```

Options

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

Arguments

###### PROFILE

Required argument

### container

Work with containerized extractors and the container images they run.

An extractor carries identity; its execution contract (inputs, parameters, output format,
timestamp defaults) lives on the container images registered against it, exactly one of
which is active.

Usage

```shell
nom container [OPTIONS] COMMAND [ARGS]...
```

#### extractor

Create and manage containerized extractors and their image lifecycle

Usage

```shell
nom container extractor [OPTIONS] COMMAND [ARGS]...
```

##### archive

Archive a containerized extractor

Usage

```shell
nom container extractor archive [OPTIONS]
```

Options

###### -r, --rid <rid>

**Required**

###### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

###### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

##### create

Create a containerized extractor.

A newly created extractor has no container image: register one with `register-image` and
activate it with `set-active-image` before ingesting.

Usage

```shell
nom container extractor create [OPTIONS]
```

Options

###### -n, --name <name>

**Required**

###### -d, --description <description>

description of the extractor

###### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

###### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

##### get

Get a containerized extractor by its RID

Usage

```shell
nom container extractor get [OPTIONS]
```

Options

###### -r, --rid <rid>

**Required**

###### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

###### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

##### register-image

Upload a `docker save` tarball and register it as a container image for an extractor.

Prints the resulting container image RID on stdout (status messages go to stderr), suitable
for capturing in CI:

```bash
IMAGE_RID=$(nom container extractor register-image -r "$EXTRACTOR_RID" \
    -f image.tar -t $(git rev-parse --short HEAD) -c extractor-config.json)
nom container extractor set-active-image -r "$EXTRACTOR_RID" -i "$IMAGE_RID"
```

The registered image starts PENDING and must be activated with `set-active-image` once READY.

Build the image for amd64 (`docker build --platform linux/amd64`). Nominal runs extractor
images on amd64 and registration does not check the tarball’s architecture, so an arm64 image
registers and activates, then fails at ingest with an exec format error.

Usage

```shell
nom container extractor register-image [OPTIONS]
```

Options

###### -r, --rid <rid>

**Required** RID of the extractor to register the image against

###### -f, --file <tarball>

**Required** path to the uncompressed `docker save` tarball to upload

###### -t, --tag <tag>

tag to register the image under, typically a git short SHA

###### -c, --config <config_file>

path to a JSON file describing the image’s execution contract: `inputs` and `parameters` (lists of objects with snake_case FileExtractionInput / FileExtractionParameter fields), and optionally `tag`, `default_timestamp_column`, `default_timestamp_type`, and `output_format`. Typically a per-package config checked into the repo. Values supplied via flags override fields in the JSON.

###### --timestamp-column <timestamp_column>

the column containing timestamp data in the extractor’s output files

###### --timestamp-type <timestamp_type>

interpretation of the timestamp column in the extractor’s output files

Options:
:   iso_8601 | epoch_picoseconds | epoch_nanoseconds | epoch_microseconds | epoch_milliseconds | epoch_seconds | epoch_minutes | epoch_hours | epoch_days

###### --output-format <output_format>

file format the extractor writes [default: parquet]

Options:
:   avro_stream | csv | manifest | parquet

###### --wait, --no-wait

wait until the image is READY

Default:
:   `True`

###### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

###### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

##### search

Search for containerized extractors (filters are ANDed together)

Usage

```shell
nom container extractor search [OPTIONS]
```

Options

###### --include-archived

include archived extractors in the results

###### --file-extension <file_extension>

only include extractors whose active image accepts files with this suffix (e.g. “csv” – no leading dot)

###### --workspace <workspace_rid>

workspace RID to search [default: the profile’s workspace]

###### -o, --output <output>

If provided, a path to write the output to as a file

###### -f, --format <format>

Output data format to represent the data as

Default:
:   `'table'`

Options:
:   csv | table

###### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

###### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

##### set-active-image

Select the container image an extractor runs when ingesting

Usage

```shell
nom container extractor set-active-image [OPTIONS]
```

Options

###### -r, --rid <rid>

**Required** RID of the extractor

###### -i, --image-rid <image_rid>

**Required** RID of the registered image to activate

###### --wait, --no-wait

wait until the image is READY before activating (with –no-wait, a non-READY image errors)

Default:
:   `True`

###### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

###### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

##### unarchive

Unarchive a containerized extractor

Usage

```shell
nom container extractor unarchive [OPTIONS]
```

Options

###### -r, --rid <rid>

**Required**

###### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

###### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

##### update

Update mutable fields of a containerized extractor (only the flags you pass are sent)

Usage

```shell
nom container extractor update [OPTIONS]
```

Options

###### -r, --rid <rid>

**Required**

###### -n, --name <name>

replace the extractor’s name

###### -d, --description <description>

replace the extractor’s description

###### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

###### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

##### validate-config

Validate a register-image config JSON without contacting Nominal.

Runs the exact validation `register-image` performs before uploading, so it can lint a
checked-in config in CI without credentials. Values that must be supplied via flags at
register time (e.g. a missing `tag`) are reported as notes, not errors.

Usage

```shell
nom container extractor validate-config [OPTIONS] CONFIG_PATH
```

Options

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

Arguments

###### CONFIG_PATH

Required argument

#### image

Inspect and manage container images in Nominal’s registry

Usage

```shell
nom container image [OPTIONS] COMMAND [ARGS]...
```

##### delete

Delete a container image (fails if an extractor still has it as its active image)

Usage

```shell
nom container image delete [OPTIONS]
```

Options

###### -r, --rid <rid>

**Required**

###### --yes

skip the confirmation prompt

###### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

###### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

##### get

Get a container image by its RID

Usage

```shell
nom container image get [OPTIONS]
```

Options

###### -r, --rid <rid>

**Required**

###### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

###### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

##### search

Search for container images, filtering by tag, status, and/or extractor (filters are ANDed together)

Usage

```shell
nom container image search [OPTIONS]
```

Options

###### -t, --tag <tag>

filter to images with this exact tag

###### --status <status>

filter to images with this lifecycle status

Options:
:   pending | ready | failed

###### -e, --extractor <extractor_rid>

filter to images registered against this extractor RID

###### --workspace <workspace_rid>

workspace RID to search [default: the profile’s workspace]

###### -o, --output <output>

If provided, a path to write the output to as a file

###### -f, --format <format>

Output data format to represent the data as

Default:
:   `'table'`

Options:
:   csv | table

###### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

###### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

###### --no-color

If provided, don’t color terminal log output

###### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

### download

Browse assets, pick a dataset, filter channels by exact name, and download.

Usage

```shell
nom download [OPTIONS]
```

Options

#### --channels-per-request <channels_per_request>

Number of channels to request at a time. For requesting a small number of channels, setting this value low helps parallelize downloads.

Default:
:   `10`

#### --points-per-file <points_per_file>

Number of points to put in each written file.

Default:
:   `25000000`

#### --format <format>

Default:
:   `'parquet'`

Options:
:   csv | parquet

#### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

#### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

#### --no-color

If provided, don’t color terminal log output

#### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

### migrate

Commands to migrate resources between Nominal tenants.

Usage

```shell
nom migrate [OPTIONS] COMMAND [ARGS]...
```

#### copy

Copy resources from a source tenant to a destination tenant.

Usage

```shell
nom migrate copy [OPTIONS]
```

Options

##### --destination-profile <destination_profile>

If provided, use the given named config profile for instantiating a Nominal Client for the destination tenant. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url. Required unless –dry-run is set.

##### --source-profile <source_profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client for the source tenant. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

##### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

##### --no-color

If provided, don’t color terminal log output

##### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

##### --config <config_path>

**Required** Path to the migration config YAML file.

##### --migration-state-path <migration_state_path>

Path to load/save migration state JSON for resumable migrations. Defaults to ‘migration_state.json’.

##### --max-workers <max_workers>

Maximum number of top-level asset/template/checklist/dataset migrations to run concurrently.

Default:
:   `1`

##### --video-ingest-timeout-seconds <video_ingest_timeout_seconds>

How long to wait for a copied video to finish ingesting before recording it as incomplete and moving on. 0 waits indefinitely.

Default:
:   `7200`

##### --dry-run

Log what would be created without writing anything to the destination tenant or state file. –destination-profile is optional; without it, the destination tenant is not contacted.

#### prep

Count in-scope and out-of-scope resources and generate a migration config.

Usage

```shell
nom migrate prep [OPTIONS]
```

Options

##### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

##### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

##### --no-color

If provided, don’t color terminal log output

##### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

##### --name <migration_name>

**Required** Name for the migration (written into the generated config file).

##### --output <output_path>

**Required** Path where the generated migration config YAML will be written.

##### --add-label <added_labels>

Label to add to every resource the migration creates, written to add_labels in the generated config. Pass once for each label to be added.

#### summary

Summarize a migration as a markdown table. Fully offline: no profiles or tokens required.

Usage

```shell
nom migrate summary [OPTIONS]
```

Options

##### --no-color

If provided, don’t color terminal log output

##### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

##### --from-config <config_paths>

Migration config YAML for an offline size check. Repeat the flag to summarize several configs.

##### --from-log <log_path>

Captured ‘nom migrate copy –dry-run’ log to tally would-create lines from.

##### --from-state <state_path>

Migration-state JSON to count created resources from.

##### --output <output_path>

File to append the markdown summary to, e.g. $GITHUB_STEP_SUMMARY.

### mis

This CLI processes an MIS and turns it into unit assignments and channel descriptions on a dataset.
MIS must be a CSV with the following columns: Channel, Description, UCUM Unit

Example:

Channel, Description, UCUM Unit

RPM, Engine RPM, rpm

ECT1, Engine Coolant Temperature Main, Cel

Usage

```shell
nom mis [OPTIONS] COMMAND [ARGS]...
```

#### list-units

List all available units in Nominal.

Usage

```shell
nom mis list-units [OPTIONS]
```

Options

##### -o, --output <output>

If provided, write the output to a file.

##### -f, --format <format>

The format to represent the data as

Default:
:   `'table'`

Options:
:   table | csv

##### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

##### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

##### --no-color

If provided, don’t color terminal log output

##### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

#### process

Processes an MIS file and updates channel descriptions and units.

Usage

```shell
nom mis process [OPTIONS] MIS_PATH
```

Options

##### --dataset-rid <dataset_rid>

**Required** The RID of the dataset to update.

##### --sheet <sheet>

The sheet to use in the Excel file if parsing direct from Excel. Only needed if there are multiple sheets.

##### --override-channel-info

If channel is already present and has different description/units information, overwrite.

##### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

##### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

##### --no-color

If provided, don’t color terminal log output

##### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

Arguments

##### MIS_PATH

Required argument

#### validate

Validate units in an MIS file against available units in Nominal.

Usage

```shell
nom mis validate [OPTIONS] MIS_PATH
```

Options

##### --sheet <sheet>

The sheet to use in the Excel file if parsing direct from Excel. Only needed if there are multiple sheets.

##### --profile <profile>

**Required** If provided, use the given named config profile for instantiating a Nominal Client. This is the preferred mechanism for instantiating a client today– see `nom config profile add` to create a configuration profile. If provided, takes precedence over –token, –token-path, and –base-url.

##### --trust-store-path <trust_store_path>

Path to a trust store CA root file to initiate SSL connections. If not provided, defaults to certifi’s trust store.

##### --no-color

If provided, don’t color terminal log output

##### -v, --verbose

Verbosity to use within the CLI. Pass -v to allow info-level logs, or -vv for debug-level.

Arguments

##### MIS_PATH

Required argument
