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>NoColumns to create for producer outputs. An entry naming a column the table already has attaches that column to the group instead of creating it (its type must match), and an output whose column already exists may omit its entry entirely — so [] attaches existing columns only. (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 with a filter and sort

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 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).
--defaultNoWhether to promote this view to the table default.
--no-defaultNoSend --default as false.

Delete table

sim tables delete <tableId> [options]

Arguments

ArgumentRequiredDescription
tableIdYesUnique table identifier.

Options

OptionRequiredDescription
-y, --yesYesConfirm this operation.

Get row group run

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