exactDataWorkspaceFormControl
Properties, variants, types and bounds for exactDataWorkspaceFormControl.
This reference describes the full structure of exactDataWorkspaceFormControl. Paths include nested objects, list items and conditional branches. A branch selected by kind, contract or mode only admits its own properties.
Structure and values
| Field | Options / expected values | Description |
|---|---|---|
key |
string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u |
Required. Stable semantic identifier used by references; changing it changes identity. |
label |
string; min length 1; max length 4000 |
Required. Human-readable label displayed in the interface. |
input |
"text" | "multiline" | "number" | "boolean" | "date" | "datetime" | "choice" | "surface-reference" | "decimal" | "integer" | "real" | "object" | "list" |
Required. Control or input selected by the variant; must remain compatible with its binding. |
binding |
closed object OR closed object OR closed object OR closed object OR closed object OR closed object |
Required. Declared value source or destination; does not contain arbitrary scripts. |
binding.[kind=field].kind |
"field" |
Required. Selects the variant and the properties admitted in this branch. |
binding.[kind=field].fieldKey |
string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9]*$/u |
Required. Key of a Field declared on the referenced Surface definition. |
binding.[kind=title].kind |
"title" |
Required. Selects the variant and the properties admitted in this branch. |
binding.[kind=content].kind |
"content" |
Required. Selects the variant and the properties admitted in this branch. |
binding.[kind=anchor].kind |
"anchor" |
Required. Selects the variant and the properties admitted in this branch. |
binding.[kind=anchor].prototypeId |
string; min length 1; max length 4000 |
Required. Stable Anchor prototype identity used by its instances. |
binding.[kind=link].kind |
"link" |
Required. Selects the variant and the properties admitted in this branch. |
binding.[kind=link].linkTypePath |
string; min length 1; max length 4000 |
Required. Defines link Type Path for this object. Observe the type, variants and bounds in the Options column. |
binding.[kind=link].direction |
"incoming" | "outgoing" |
Required. Traversal or presentation direction using this contract’s closed values. |
binding.[kind=link].appliesTo |
"single-created" | "each-created"; optional |
Optional. Defines applies To for this object. Observe the type, variants and bounds in the Options column. |
binding.[kind=action-input].kind |
"action-input" |
Required. Selects the variant and the properties admitted in this branch. |
binding.[kind=action-input].inputKey |
string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u |
Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility. |
required |
true | false |
Required. Whether a value is required by this declaration. |
ruleKeys |
Array<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u>; max length 30 |
Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility. |
options |
Array<string; min length 1; max length 4000>; max length 100 |
Required. Suggested and admitted values for a declared choice. |
selector |
closed object; optional |
Optional. Defines selector for this object. Observe the type, variants and bounds in the Options column. |
selector.queryKey |
string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u |
Required. Reference to a declared Query; scope and authorization remain enforced by the data engine. |
selector.multiple |
true | false |
Required. Defines multiple for this object. Observe the type, variants and bounds in the Options column. |
selector.minimum |
integer; ≥ 0; ≤ 100 |
Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema. |
selector.maximum |
integer; ≥ 1; ≤ 100 |
Required. Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema. |
contract |
"WorkspaceFormControl@2" |
Required. Exact discriminant of this contract variant. Match the literal value shown. |
repeatable |
true | false |
Required. Whether multiple values or instances are admitted. |
Reading the contract
A path ending in [] describes each list item; {key} describes each dictionary value. The ↻ marker refers to the same recursive expression. Closed objects reject additional properties. Semantic validation denotes an additional check: matching a type does not make a reference, permission or transition valid. References must resolve in the Model and the current user context.
An older variant cannot accept properties belonging to a newer variant. The compiler checks the version and consistency of the complete Model.
Structural example
This fragment passes the schema for this section. Its business references must be defined in the enclosing Model.
{
"key": "name",
"label": "Nom du travail",
"input": "text",
"binding": {
"kind": "title"
},
"required": true,
"ruleKeys": [],
"options": [],
"contract": "WorkspaceFormControl@2",
"repeatable": false
}
Related references
Complete Model index · Build a Model
Applied examples : Short creation, complete record
Creation asks for Company and Status. Optional notes are expanded later on the Surface.
Configuration
Contract object exactDataWorkspaceFormControl. Properties and accepted values.
{
"key": "name",
"label": "Nom du travail",
"input": "text",
"binding": {
"kind": "title"
},
"required": true,
"ruleKeys": [],
"options": [],
"contract": "WorkspaceFormControl@2",
"repeatable": false
}
Variation and connection
Fragment placed in forms[].fields[]. Properties and accepted values.
{
"contract": "WorkspaceFormControl@2",
"repeatable": false,
"key": "notes",
"label": "Notes",
"input": "multiline",
"binding": {
"kind": "field",
"fieldKey": "notes"
},
"required": false,
"ruleKeys": [],
"options": []
}
UI layout example
The illustrative layout below places this configuration in the Clients/Quotes app. Insert each fragment at the stated location, with Field, Query and Action references matching the Model declarations.
- Company *
- Status *
- Notes
- Create client
key- name
label- Nom du travail
input- text
binding- Declared object
required- true
Values above follow the configuration fragment; references resolve in the complete Model.