Tables

sim tables is also spelled sim table.

Every command below also accepts the global options.

Add column

sim tables columns create <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--column <json|@file>YesColumn definition to add. (JSON, or @path / @- to read a file or stdin).

Delete column

sim tables columns delete <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--column-name <value>YesName of the column to delete.
-y, --yesYesConfirm this operation.

Update column

sim tables columns update <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--column-name <value>YesCurrent name of the column to update.
--updates <json|@file>YesMutable column fields. (JSON, or @path / @- to read a file or stdin).

Add workflow group

sim tables groups create <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--group <json|@file>YesWorkflow or enrichment producer definition. (JSON, or @path / @- to read a file or stdin).
--output-columns <json|@file>YesColumns created for producer outputs. (JSON, or @path / @- to read a file or stdin).
--auto-runNoWhether to schedule existing rows after group creation.
--no-auto-runNoSend --auto-run as false.

Delete workflow group

sim tables groups delete <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--group-id <value>YesWorkflow group to delete.
-y, --yesYesConfirm this operation.

List workflow groups

sim tables groups list <tableId>

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Update workflow group

sim tables groups update <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--group-id <value>YesWorkflow group to update.
--workflow-id <value>NoReplacement backing workflow identifier.
--name <value>NoReplacement workflow-group display name.
--dependencies <json|@file>NoReplacement input dependencies. (JSON, or @path / @- to read a file or stdin).
--outputs <json|@file>NoReplacement producer outputs. (JSON, or @path / @- to read a file or stdin).
--new-output-columns <json|@file>NoColumns to add for new outputs. (JSON, or @path / @- to read a file or stdin).
--mapping-updates <json|@file>NoExisting output-column mapping changes. (JSON, or @path / @- to read a file or stdin).
--input-mappings <json|@file>NoReplacement workflow input mappings. (JSON, or @path / @- to read a file or stdin).
--deployment-mode <value>NoReplacement workflow execution mode. Accepted values: live, deployed.
--type <value>NoWorkflow-group producer type. Must match the group's stored type — a group's producer cannot be changed after creation. Accepted values: manual, enrichment.
--auto-runNoReplacement automatic-run setting.
--no-auto-runNoSend --auto-run as false.

Bulk delete tables and folders

sim tables batch-delete [options]

Options

OptionRequiredDescription
--table-ids <json|@file>NoTables to archive, by identifier. (JSON, or @path / @- to read a file or stdin).
--folder <value...>NoFolder path as shown in the app; the leading / is optional (space-separated, or @path / @- with one value per line; @@value for a literal leading @).
-y, --yesYesConfirm this operation.

Apply a distinct patch to each listed row

sim tables rows update-each <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--updates <json|@file>YesOne merge patch per row. Each row identifier may appear at most once. (JSON, or @path / @- to read a file or stdin).

Create rows

sim tables rows create <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--data <json|@file>NoOne row keyed by column name (JSON, or @path / @-; choose exactly one body flag).
--rows <json|@file>NoSeveral rows keyed by column name (JSON, or @path / @-; choose exactly one body flag).

Delete row

sim tables rows delete <tableId> <rowId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.
rowIdYesUnique table row identifier.

Options

OptionRequiredDescription
-y, --yesYesConfirm this operation.

Delete rows matching a filter, or an explicit list of ids

sim tables rows batch-delete <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--filter <json|@file>NoPredicate: {"all":[{"field":"status","op":"eq","value":"active"}]}; groups use all/any. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin).
--limit <value>NoMaximum matching rows to delete. (caps a --filter match only; omit it to act on every match, and note 0 is not accepted).
--row <value...>NoExplicit row identifiers to delete. (space-separated, or @path / @- with one value per line; @@value for a literal leading @).
-y, --yesYesConfirm this operation.

Get row

sim tables rows get <tableId> <rowId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.
rowIdYesUnique table row identifier.

Options

OptionRequiredDescription
--include-run-stateNoInclude per-workflow-group run state on the returned row. Off by default.
--no-include-run-stateNoSend --include-run-state as false.

List rows

sim tables rows list <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--limit <n>NoMaximum items to return (0 for everything). Defaults to 100.
--cursor <value>NoContinue from nextCursor returned by a previous result.
--include-run-stateNoInclude per-workflow-group run state on every returned row. Off by default: run state is a separate sidecar read and its blockErrors are unbounded, so a full page carries it only when asked. Caps limit at 200.
--no-include-run-stateNoSend --include-run-state as false.

Query rows

sim tables rows query <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--filter <json|@file>NoCondition: {"field":"status","op":"eq","value":"active"}. Groups: {"all":[{"field":"status","op":"eq","value":"active"}]} or {"any":[{"field":"status","op":"eq","value":"active"}]}; group entries may also be nested groups. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin).
--sort <json|@file>NoOrdered sort keys: [{"field":"createdAt","direction":"desc"}] (direction: asc or desc) (JSON, or @path / @- to read a file or stdin).
--limit <n>NoMaximum items to return (0 for everything). Defaults to 100.
--cursor <value>NoContinue from nextCursor returned by a previous result.
--include-run-stateNoInclude per-workflow-group run state on every returned row. Off by default: run state is a separate sidecar read and its blockErrors are unbounded, so a full page carries it only when asked. Incompatible with limit: 0, and caps limit at 200.
--no-include-run-stateNoSend --include-run-state as false.

Count rows matching a filter

sim tables rows count <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--filter <json|@file>NoCondition: {"field":"status","op":"eq","value":"active"}. Groups: {"all":[{"field":"status","op":"eq","value":"active"}]} or {"any":[{"field":"status","op":"eq","value":"active"}]}; group entries may also be nested groups. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin).

Run one row’s enrichment group

sim tables rows enrich <tableId> <rowId> <groupId>

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.
rowIdYesUnique table row identifier.
groupIdYesWorkflow or enrichment group to run.

Search cells for a value and return their coordinates

sim tables rows search <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--query <value>YesValue to search for.
--filter <json|@file>NoPredicate: {"all":[{"field":"status","op":"eq","value":"active"}]}; groups use all/any. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin).
--sort <json|@file>NoOrdered sort keys: [{"field":"createdAt","direction":"desc"}] (direction: asc or desc) (JSON, or @path / @- to read a file or stdin).

Update every row matching a filter

sim tables rows batch-update <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--filter <json|@file>YesPredicate: {"all":[{"field":"status","op":"eq","value":"active"}]}; groups use all/any. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin).
--data <json|@file>YesRow-data patch applied to every matching row. (JSON, or @path / @- to read a file or stdin).
--limit <value>NoMaximum matching rows to update. (caps a --filter match only; omit it to act on every match, and note 0 is not accepted).
-y, --yesYesConfirm this operation.

Update row

sim tables rows update <tableId> <rowId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.
rowIdYesUnique table row identifier.

Options

OptionRequiredDescription
--data <json|@file>YesPartial row-data patch keyed by column name. (JSON, or @path / @- to read a file or stdin).

Cancel a running dispatch

sim tables dispatches cancel <tableId> <dispatchId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.
dispatchIdYesUnique table run-dispatch identifier.

Options

OptionRequiredDescription
-y, --yesYesConfirm this operation.

Start a column or enrichment run

sim tables dispatches create <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--group-ids <value...>YesWorkflow or enrichment groups to run. (space-separated, or @path / @- with one value per line; @@value for a literal leading @).
--run-mode <value>NoWhether to run all or only incomplete cells. Accepted values: all, incomplete.
--row-ids <value...>NoExplicit row subset to run. (space-separated, or @path / @- with one value per line; @@value for a literal leading @).
--filter <json|@file>NoPredicate: {"all":[{"field":"status","op":"eq","value":"active"}]}; groups use all/any. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin).
--exclude-row-ids <value...>NoRows excluded from a select-all run scope. (space-separated, or @path / @- with one value per line; @@value for a literal leading @).
--max-rows <n>NoStop after this many eligible rows have run (1-1,000,000). Omit for an unbounded run.

Get run dispatch

sim tables dispatches get <tableId> <dispatchId>

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.
dispatchIdYesUnique table run-dispatch identifier.

List active run dispatches

sim tables dispatches list <tableId>

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Stop a running export

sim tables exports cancel <tableId> <exportId>

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.
exportIdYesUnique table-export identifier.

Create table export

sim tables exports create <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--format <value>NoExport file format. Accepted values: csv, json.

Get table export

sim tables exports get <tableId> <exportId>

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.
exportIdYesUnique table-export identifier.

Get the download URL for a finished export

sim tables exports download <tableId> <exportId>

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.
exportIdYesUnique table-export identifier.

Stop a running import

sim tables imports cancel <importId> [options]

Arguments

ArgumentRequiredDescription
importIdYesUnique table-import identifier.

Options

OptionRequiredDescription
-y, --yesYesConfirm this operation.

Get table import

sim tables imports get <importId>

Arguments

ArgumentRequiredDescription
importIdYesUnique table-import identifier.

Stop every running column job

sim tables cancel-runs <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--scope <value>YesWhether to cancel across the table or one row. Accepted values: all, row.
--row-id <value>NoRow whose runs should be canceled for row scope.
--filter <json|@file>NoPredicate: {"all":[{"field":"status","op":"eq","value":"active"}]}; groups use all/any. Operators: eq, ne, gt, gte, lt, lte, in, nin, contains, ncontains, startsWith, endsWith, like, ilike, nlike, nilike, isEmpty, isNotEmpty, isNull, isNotNull (JSON, or @path / @- to read a file or stdin).
--exclude-row-ids <value...>NoRows excluded from an all-scope cancellation. (space-separated, or @path / @- with one value per line; @@value for a literal leading @).
-y, --yesYesConfirm this operation.

Create table

sim tables create [options]

Options

OptionRequiredDescription
--name <value>YesIdentifier: letters, numbers, and underscores; cannot start with a number.
--description <value>NoOptional table description.
--schema <json|@file>YesTable schema: {"columns":[{"name":"email","type":"string"}]} (JSON, or @path / @- to read a file or stdin).
--folder <value>NoFolder path as shown in the app; the leading / is optional.

Create a table folder at a path

sim tables folders create <path>

Arguments

ArgumentRequiredDescription
pathYesFolder path as shown in the app; the leading / is optional

Delete folder

sim tables folders delete <path> [options]

Arguments

ArgumentRequiredDescription
pathYesFolder path as shown in the app; the leading / is optional

Options

OptionRequiredDescription
--recursiveNoDelete the folder and its descendants.
-y, --yesYesConfirm this operation.

List table folders

sim tables folders list [options]

Also available as sim tables folders ls.

Options

OptionRequiredDescription
--parent <value>NoDirect parent folder path.
--search <value>NoCase-insensitive substring match against the folder name.
--sort-by <value>NoField used to sort the result. Sorting by name is case-sensitive and follows the storage collation, so do not rely on a case-insensitive order. Accepted values: name, createdAt, updatedAt.
--sort-order <value>NoSort direction. Accepted values: asc, desc.

Rename or move a table folder

sim tables folders move <path> <destination>

Also available as sim tables folders mv.

Arguments

ArgumentRequiredDescription
pathYesFolder path as shown in the app; the leading / is optional
destinationYesFolder path as shown in the app; the leading / is optional

Restore an archived table folder

sim tables folders restore <path>

Arguments

ArgumentRequiredDescription
pathYesFolder path as shown in the app; the leading / is optional

Create view

sim tables views create <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--name <value>YesSaved-view display name.
--config <json|@file>YesSaved filter, sort, and column-layout configuration. (JSON, or @path / @- to read a file or stdin).

Delete view

sim tables views delete <tableId> <viewId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.
viewIdYesUnique saved-view identifier.

Options

OptionRequiredDescription
-y, --yesYesConfirm this operation.

Get view

sim tables views get <tableId> <viewId>

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.
viewIdYesUnique saved-view identifier.

List views

sim tables views list <tableId>

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Update view

sim tables views update <tableId> <viewId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.
viewIdYesUnique saved-view identifier.

Options

OptionRequiredDescription
--name <value>NoReplacement saved-view display name.
--config <json|@file>NoComplete replacement saved-view configuration. (JSON, or @path / @- to read a file or stdin).
--config-patch <json|@file>NoSaved-view configuration fields to shallow-merge. (JSON, or @path / @- to read a file or stdin).
--is-defaultNoWhether to promote this view to the table default.
--no-is-defaultNoSend --is-default as false.

Delete table

sim tables delete <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
-y, --yesYesConfirm this operation.

Get enrichment run detail

sim tables enrichment get <tableId> <rowId> <groupId>

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.
rowIdYesUnique table row identifier.
groupIdYesWorkflow or enrichment group to run.

Get table

sim tables get <tableId>

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

List tables

sim tables list [options]

Options

OptionRequiredDescription
--scope <value>NoWhich lifecycle set to list: active (default) for live tables, archived for tables a delete archived and a table restore can bring back. folderPath resolves against active folders only, so pairing it with scope=archived returns an empty page when the containing folder was archived too. Accepted values: active, archived.
--folder <value>NoFolder path as shown in the app; the leading / is optional.
--search <value>NoCase-insensitive substring match against the resource name.
--sort-by <value>NoField used to sort the result. Sorting by name is case-sensitive and follows the storage collation, so do not rely on a case-insensitive order. Accepted values: name, createdAt, updatedAt.
--sort-order <value>NoSort direction. Accepted values: asc, desc.
--limit <n>NoMaximum items to return (0 for everything). Defaults to 0.

Move tables and folders

sim tables move [options]

Options

OptionRequiredDescription
--table-ids <json|@file>NoTables to move, by identifier. (JSON, or @path / @- to read a file or stdin).
--folder <value...>NoTable folders to move, by path as shown in the app; the leading / is optional (space-separated, or @path / @- with one value per line; @@value for a literal leading @).
--to <value>NoDestination folder path; omit for root.

Restore an archived table

sim tables restore <tableId>

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Update table

sim tables update <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--name <value>NoIdentifier: letters, numbers, and underscores; cannot start with a number.
--description <value>NoReplacement table description, or null to clear it. (--description null sends the word, not JSON null).
--folder <value>NoFolder path as shown in the app; the leading / is optional.

Move a table to a folder

sim tables mv <tableId> <folder>

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.
folderYesFolder path as shown in the app; the leading / is optional

Insert a row, or update the one that conflicts on a unique column

sim tables upsert <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
--data <json|@file>YesComplete set of row cells keyed by column name. On the update branch this REPLACES the matched row: any column not present here is cleared, unlike a single-row update, which merges. (JSON, or @path / @- to read a file or stdin).
--on <value>NoUnique column to resolve the conflict against.

Import a CSV, into a new table by default

sim tables import [path] [options]

Arguments

ArgumentRequiredDescription
pathNoLocal CSV file to import; omit when using --file-id

Options

OptionRequiredDescription
--name <name>NoIdentifier for the new table: letters, numbers, and underscores; defaults to the sanitized file name.
--table-id <id>NoImport into this existing table instead of creating one.
--mode <append|replace>NoHow to write into --table-id (default: append). Accepted values: append, replace.
--folder <path>NoFolder path for the new table, as shown in the app.
--file-id <id>NoImport a file already in the workspace instead of a local path.
--mapping <json|@file>NoColumn mapping (--table-id only).
--create-columns <json|@file>NoColumns to create (--table-id only).
--timezone <iana>NoTimezone for date parsing, e.g. America/New_York.
-y, --yesNoConfirm this destructive operation (required with --mode replace).
--no-waitNoReturn once the import is queued instead of watching it.

List table resources and child folders together

sim tables ls [path] [options]

Arguments

ArgumentRequiredDescription
pathNoFolder path to list; defaults to the root folder

Options

OptionRequiredDescription
--search <text>NoFilter folders and resources by name.
--limit <n>NoMaximum combined items to return (0 for everything). Defaults to 0.

Create a table directory at a path

sim tables mkdir <path>

Arguments

ArgumentRequiredDescription
pathYesFolder path to create; the leading / is optional