form key. The same structure can be nested under another form’s form key. Omitted values use the defaults shown below.
Form structure and submission
Use JSON booleans and numbers (
true, false, 10) rather than quoted values ("true", "10") in new setup. This keeps the configuration unambiguous.Scan and relationship behavior
Feature support
featureSupport is an object. The client reads these top-level capability keys:
For example:
hasLocation: true remains available for older configurations. When location is enabled, Dsync adds Location only when a location value is available on the device.
UI options
Use theui object for bottom-sheet presentation:
ui, the client also reads the legacy flat keys isSheetDismissable and disableSheetUploadButton. Prefer the nested ui object for new setup.
Form-level devices
The form can declare device profile IDs once for its device components. The client accepts a single string, a comma-separated string, or a JSON array underdevice, devices, or deviceIds.
deviceIds or deviceOperations. If a form declares multiple device IDs, use deviceOperations to map operations to their device instead of relying on an implicit target.
Formulas
Each formula object usesformulaId as its name and formula as its expression:
defaultValue with ${display_label}. See Write your first formula for expression syntax.
Keys intentionally excluded
childIdColumn and allowNFC are legacy values parsed into the local form model but are not used by the current function UI behavior. Do not add them to new function setup. Runtime values such as parent data, context, generated form IDs, and component state are also not setup keys.