client.table(name) accessor gives you row-level access to a custom table from any JavaScript environment. For an overview of the feature — the custom_ naming model, managed columns, and soft-delete — see Custom Tables.
The JS SDK is row-only. Creating tables and columns (DDL) is service-key
work, and the browser SDK holds no service key — so there is no
table-management surface here. Manage schema from the
@sublay/node SDK or the
dashboard.client.table(name) is a callable accessor — it closes over the table name and returns the row-operation object. Type the rows with a generic:
name you pass is the logical table name — Sublay applies the custom_ prefix for you. As with the rest of the JS SDK, these operations act as the user behind the token — you never pass an actor userId.
find
Fetches a filtered, sorted, paginated page of rows. Returns the shared{ data, pagination } envelope.
Page number (1-indexed).
Rows per page.
Column to sort by. Defaults to
createdAt (descending) on a table with
timestamps, otherwise id.Sort direction.
An array of
{ column, operator, value } clauses, AND-combined. Operators:
eq, ne, gt, gte, lt, lte, in, contains, like, isNull.On a paranoid table, set
true to include soft-deleted rows. Defaults to
false.Promise<PaginatedResponse<T>>
findOne
Fetches a single row by itsid. Throws (axios 404) if the row doesn’t exist or has been soft-deleted.
The row’s
id (UUID).Promise<T>
create
Inserts a single row. Managed columns (id, createdAt, updatedAt, deletedAt) are rejected from the body.
The column values for the new row.
Promise<T>
bulkCreate
Inserts many rows in one call. Capped at 100 rows per request.The rows to insert (max 100).
Promise<T[]>
update
Updates a row byid. On a table with timestamps, updatedAt is bumped automatically. Managed columns are rejected from the body.
The row’s
id.The column values to change.
Promise<T>
delete
Deletes a row byid. On a paranoid table this is a soft delete; pass force: true to hard-delete. On a non-paranoid table it is always a hard delete.
The row’s
id.When
true, hard-deletes a paranoid row instead of soft-deleting it.Promise<{ deleted: boolean; soft: boolean }>
bulkDelete
Deletes many rows by an id list and/or afilters predicate (at least one required). Paranoid-aware and capped.
Rows to delete by
id.A predicate selecting rows to delete.
When
true, hard-deletes matched paranoid rows.Promise<{ deletedCount: number; soft: boolean }>
restore
ClearsdeletedAt on a soft-deleted row. Only valid on a paranoid table.
The soft-deleted row’s
id.Promise<T>

