Data tables

Download all docs

Persist structured workflow data, choose global or project scope, query SQLite, and expose authenticated APIs.

Data tables hold durable runtime data. They are different from TypeScript Values and class fields: source values are recreated with code, while table rows survive process and worker restarts. Local table state lives outside Git; hosted table state belongs to the selected workspace. Do not expect a repository clone alone to contain table rows.

Choose global or project scope

Open Data Tables in the left rail and select a scope before creating a table:

  • Global tables belong to the active workspace and can be attached to more than one project.
  • Project tables belong to one project and are isolated from other project scopes.

The selected scope applies to table creation, the SQL editor, the schema diagram, relationships, and saved views. Switching scope clears open forms and query results. Inside a project's Data tables tab, create project-owned tables or attach existing global tables. Detaching a global table removes the project reference; it does not delete the workspace table or its rows.

Define and edit a table

Create a name and columns, then choose the storage mode. SQLite is recommended when you need typed columns, SQL, relationships, or saved views. KV stores opaque JSON records. Storage mode cannot be changed after creation.

Every row includes an immutable ID, a version, and created/updated timestamps. Inserts validate the declared columns. Updates use the row version so a stale editor receives a conflict instead of overwriting newer data. Deleting a table permanently deletes its rows; detaching and deleting are different actions.

Query and relate SQLite tables

The SQL Editor runs read-only SQL against an isolated snapshot of the selected scope. It cannot read workspace internals, Variables, or tables from another project scope.

The Database view can connect a text column to another SQLite row ID in the same scope. Choose whether deleting the referenced row is blocked or clears the reference. SQLite validates the relationship on every insert and update. Saved views store a reusable, read-only query over a base table, allowed relationships, filters, and sorting. Edit rows in their source table.

Relationships and saved views require hosted SQLite tables. A local/offline backend reports them as unavailable instead of pretending they were saved.

Use the HTTP API

Open a table and select API to copy its current URLs and example requests. Cloud URLs identify the workspace and table; a table keeps its global or project scope as server-owned metadata. Local Studio uses its local project routes. Available operations cover schema reads, row listing and insertion, versioned row updates, deletion, bulk mutation, and read-only SQL.

Use a workspace service token on a trusted backend for private data. A public browser token is limited to data:read and exact HTTPS origins, but it still grants read access to the table to anyone who obtains it. Use one only for data intended for public consumption. An API tab does not make a table public by itself, and Variables or credentials never belong in table rows.

Project-restricted credentials cannot escape their project by changing a URL or query parameter. Reading requires data:read, row changes require data:write, and table/schema management requires tables:manage.