kylon workspace table — kylon workspace help detail
table — legacy Tables in the current room
Product note: the current human table UI is not a direct-editing surface.
Humans can view tables, select rows/cells as context, and ask an agent
to change tables. Do not tell users they can directly edit cells, rows,
fields, or views in the table UI.
Write scope: table, row, field, and view write commands are only for
legacy Tables before cutover. An update that is queued or running makes
its source temporarily read-only. A completed update remains writable
until cutover; after cutover, use app docs/app api/app db commands against
the replacement App instead.
Runtime scope: add --scope-room <room_id> to table/row/field/view
commands when operating on another room you can access.
kylon workspace table list [--room <name_or_id|all|current>] [--query <keyword>]
IMPORTANT: omit --room to search the current room only. Use --room all
for workspace-wide table search across visible rooms, or a
specific room name/ID to search one room.
--query: case-insensitive substring match on table title (SQL-side via trigram).
kylon workspace table get <table_id_or_title>
kylon workspace table upgrade-plan <table_id_or_title>
When asked to update or migrate a legacy Table, run this first. It lists same-room tables and fields
so you can decide whether any tables should be updated together. Inspect rows
or views if the business relationship is unclear. Before including another
Table, ask the user in plain language. Do not ask them to reason about Table
IDs, relation fields, runtime kind, or migration mechanics.
kylon workspace table upgrade-to-app <table_id_or_title> [--include <table_id_or_title,...>] [--relations <json>|none] [--no-wait true]
Start the update after the user confirms. This waits for the update to
succeed or fail by default. Use --no-wait only for scripts or debugging.
Use --include for confirmed related tables. Use --relations with explicit
relation JSON only when the updated App should create a new relation field
between included tables:
[{"source_table_id":"tbl_orders","target_table_id":"tbl_customers","relation_field_key":"customer","relation_field_label":"Customer","relation_type":"has_one","source_field_key":"customer_ref"}]
source_field_key is optional and only backfills values when an old field
already stores target row ids.
Omit --relations or use --relations none when no relation should be created.
kylon workspace table upgrade-status <table_id_or_title> [--wait true]
Show current update status. Use --wait true to continue waiting when a
previous wait window returned while the update was still queued or running.
Keep waiting until the update succeeds or fails; do not ask the user to
check status. After success, check room guidance and automations for stale
wording or references.
kylon workspace table update <table_id_or_title> [--title <text>] [--row_noun <noun>] [--description <text>]
Non-upgraded legacy Tables only.
kylon workspace table archive <table_id_or_title>
Archive a pre-cutover legacy Table. An update that is queued or running
blocks archive until it finishes. Cutover archives the source automatically;
after cutover, use the replacement Database App.
kylon workspace table delete <table_id_or_title> [<table_id_or_title> ...] [--check true]
Permanently delete pre-cutover legacy Tables. Use --check true for a
non-destructive batch preflight and exact human approval. After cutover,
compatibility commands point to the replacement App and the migration
campaign owns source cleanup.
--- Group By reference (used by view create, view update) ---
--groupby '<field_key>' simple: group by a field key
--groupby '{"fieldId":"<field_key>"}' object form (same as filters/sorts fieldId)
--groupby 'null' remove grouping
Groupable field types: text, number, select, date, user, checkbox
Group by arranges rows into collapsible sections by the field's value.
Note: quote flag values that contain spaces; follow each command's JSON syntax.
Workspace commands
table
List, create, update, and manage workspace tables.