For the complete documentation index, see llms.txt. This page is also available as Markdown.

Row Metadata and Relationships

This page is the canonical reference for how Buzzy represents row metadata, parent-child relationships, and linked-table values in the REST API.

Use this page together with:

Authentication

All authenticated row operations use the same request headers:

X-Auth-Token: <authToken from /api/login>
X-User-Id: <userId from /api/login>
Content-Type: application/json

Get these values by calling login.

Row Data vs Metadata

When Buzzy returns a row, the response usually contains two kinds of fields:

  • user-defined row data such as name, status, email, or price

  • system-managed metadata such as _id, userID, submitted, and embeddingRowID

In practice, both appear in the same JSON object. Treat the user-defined fields as your business data and the metadata fields as platform-managed context.

Canonical Metadata Fields

The following system fields may appear on a row or be available in Buzzy row semantics:

Field
Meaning

_id

Unique ID of the current row

_currentUrl

Current browser URL in insert/capture contexts

_contextRow

Parent or surrounding context row when one exists

userID

User ID of the row creator

_currentUserID

Currently logged-in user ID

viewers

Additional user IDs allowed to view the row

isLocked

Whether the row is locked

submitted

Server-side created timestamp, typically as Epoch milliseconds

clientSubmitted

Client-side submitted timestamp

deviceID

Device identifier captured for debugging

appVersion

App version captured when the row was created

hasConflict

Conflict information for sync/debug workflows

clientCounter

Client-side sync/debug counter

embeddingRowID

ID of the parent row for sub-table / embedded relationships

Parent-Child Relationships with embeddingRowID

embeddingRowID is the canonical way Buzzy represents a parent-child relationship for sub-tables.

Typical pattern:

  • Parent table: Invoices

  • Child table: Invoice Lines

  • Each invoice line row stores the parent invoice row ID in embeddingRowID

Example child row:

Use embeddingRowID when:

  • creating child rows under a parent

  • fetching only the child rows for one parent

  • reasoning about sub-table data returned by API calls

Linked-Table (Cross-App) Values

Linked-table fields are different from embeddingRowID.

  • embeddingRowID represents a parent-child sub-table relationship

  • linked-table fields represent an explicit reference to a row in another datatable

Linked-table fields are stored as structured objects such as:

Key fields:

  • crossAppRowID: ID of the linked row in the other datatable

  • value.label: field label used for display

  • value.value: displayed value

  • additionalValues: optional extra linked values returned by Buzzy

See microappdata/row, insertmicroapprow, and updatemicroapprow.

Common Payload Shapes

Read many rows

Read one row

Insert a row

Insert a child row under a parent

Update a row

Delete a row

Canonical Read Patterns

  • Use microappdata to list rows, paginate, filter, sort, and query child rows

  • Use microappdata/row when you already know a specific rowID

  • Use optViewFilters with embeddingRowID to fetch child rows for one parent

Example child-row query:

Notes

  • Buzzy docs still contain historical Microapp naming in endpoint names such as microappdata and insertmicroapprow

  • In product UI and newer docs, prefer Datatable when describing the concept

  • submitted and clientSubmitted may differ because one is server-generated and the other is client-generated

See Also

Last updated