Table Commands
Create, populate, and manage structured data tables.rip artifact publish --type table
Create a new table artifact with a defined schema.
The other
rip artifact publish flags (--team, --folder, --visibility, --workspace-id, --audience, …) apply to tables too — see Artifact Commands.
Column types: text, number, date, url, boolean, enum. For enum columns, include a values array.
Example:
Import from a CSV
Skip writing the schema by hand — pass a CSV file with--from-csv:
--headers and --schema returns SCHEMA_AND_HEADERS_CONFLICT — pick one source for column names. A column name is 1 to 256 characters, with no leading or trailing space and no comma or square bracket, and is unique, so natural headers such as Estado (funil) import as they are; a blank header is named col_<n>. A header that breaks the rule or repeats is refused with INVALID_SCHEMA naming its position, and a quote that is never closed with INVALID_CSV. See CSV Artifacts for the full comparison with the csv artifact type.
rip table append
Append one or more rows to a table.
An upsert that matches an existing row overwrites it; to refuse (
409 CONFLICT) if it changed since you read it, carry that row’s expectedRevision inside the row object ({ "data": {...}, "expectedRevision": n }). The whole batch is validated before any row is written, and in a workspace the receipt returns the table’s new workspaceRevision.
The key compares the exact stored text: "100" and "100.0" are different keys, the number 1 and the string "1" the same key. Before any row is written, a key repeated within the call, or (without --upsert) a key a stored row already holds, is refused with 409 DUPLICATE_UNIQUE_VALUE, and a key value that is an object or array or longer than 1024 bytes with 400 INVALID_COLUMN_VALUE. Each row in the reply carries action: created or updated.
Example:
rip table rows
List rows in a table with cursor-based pagination. A link or public table reads without signing in.
Filter operators:
eq (default), lt, lte, gt, gte, ne, in (comma-separated), contains, starts. Comparisons use the column’s declared type, so number columns compare numerically and date columns chronologically. A filter key is any column name without [ or ]. A filter, sort or --fields column the table doesn’t have is an error that names the parameter (sort_by, filter or fields) and lists the table’s columns (details.field and details.available in --json).
Examples:
100 rows shown, more remain (--after <id>) for one page of a larger result, 100 of 2,345 rows with --include-total, and 12 rows when no more follow. When --all stops at 10,000 rows it names the row to continue from; send the same filters and sort with --after.
rip table update
Update a single row by its ID; the row names its table.
On a keyed table, setting the key to a value another row holds is refused with
DUPLICATE_UNIQUE_VALUE (409, naming the column, and the value unless the column is sensitive), and a key value that is an object or array, or longer than 1024 bytes, with INVALID_COLUMN_VALUE (400, naming the column). Nothing is written.
Example:
rip table delete
Delete one or more rows of one table, by their IDs.
Example:
deleted): an ID that names no row you can read is skipped and not counted.