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:
microappdata for reading row collections
microappdata/row for reading one row
insertmicroapprow for creating rows
updatemicroapprow for updating rows
Common API Examples for end-to-end examples across REST, Async API, and Node.js
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/jsonGet 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, orpricesystem-managed metadata such as
_id,userID,submitted, andembeddingRowID
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:
_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
embeddingRowIDembeddingRowID is the canonical way Buzzy represents a parent-child relationship for sub-tables.
Typical pattern:
Parent table:
InvoicesChild table:
Invoice LinesEach 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.
embeddingRowIDrepresents a parent-child sub-table relationshiplinked-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 datatablevalue.label: field label used for displayvalue.value: displayed valueadditionalValues: 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
rowIDUse
optViewFilterswithembeddingRowIDto fetch child rows for one parent
Example child-row query:
Notes
Buzzy docs still contain historical
Microappnaming in endpoint names such asmicroappdataandinsertmicroapprowIn product UI and newer docs, prefer
Datatablewhen describing the conceptsubmittedandclientSubmittedmay differ because one is server-generated and the other is client-generated
See Also
Last updated