Skip to content
SurfaceDocs
FRGet started
DocsModel reference

exactDataWorkspaceForm

Properties, variants, types and bounds for exactDataWorkspaceForm.

This reference describes the full structure of exactDataWorkspaceForm. 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.
actionKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Reference to a declared Action; rendering does not execute it.
targetDefinitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of the relevant definition type; each reference must exist in the Model and respect declared scope.
mode "create" | "edit" | "action" Required. Defines mode for this object. Observe the type, variants and bounds in the Options column.
fields Array<closed object; semantic validation>; max length 100 Required. Typed value definitions or selections within the enclosing context.
fields[].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.
fields[].label string; min length 1; max length 4000 Required. Human-readable label displayed in the interface.
fields[].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.
fields[].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.
fields[].binding.[kind=field].kind "field" Required. Selects the variant and the properties admitted in this branch.
fields[].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.
fields[].binding.[kind=title].kind "title" Required. Selects the variant and the properties admitted in this branch.
fields[].binding.[kind=content].kind "content" Required. Selects the variant and the properties admitted in this branch.
fields[].binding.[kind=anchor].kind "anchor" Required. Selects the variant and the properties admitted in this branch.
fields[].binding.[kind=anchor].prototypeId string; min length 1; max length 4000 Required. Stable Anchor prototype identity used by its instances.
fields[].binding.[kind=link].kind "link" Required. Selects the variant and the properties admitted in this branch.
fields[].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.
fields[].binding.[kind=link].direction "incoming" | "outgoing" Required. Traversal or presentation direction using this contract’s closed values.
fields[].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.
fields[].binding.[kind=action-input].kind "action-input" Required. Selects the variant and the properties admitted in this branch.
fields[].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.
fields[].required true | false Required. Whether a value is required by this declaration.
fields[].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.
fields[].options Array<string; min length 1; max length 4000>; max length 100 Required. Suggested and admitted values for a declared choice.
fields[].selector closed object; optional Optional. Defines selector for this object. Observe the type, variants and bounds in the Options column.
fields[].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.
fields[].selector.multiple true | false Required. Defines multiple for this object. Observe the type, variants and bounds in the Options column.
fields[].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.
fields[].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.
fields[].contract "WorkspaceFormControl@2" Required. Exact discriminant of this contract variant. Match the literal value shown.
fields[].repeatable true | false Required. Whether multiple values or instances are admitted.
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.
contract "WorkspaceForm@2" Required. Exact discriminant of this contract variant. Match the literal value shown.

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": "revise-chapter-form",
  "label": "Réviser un chapitre",
  "actionKey": "revise-chapter",
  "targetDefinitionPath": "workspace/workshop/surface/work",
  "mode": "action",
  "fields": [
    {
      "key": "name",
      "label": "Nom du travail",
      "input": "text",
      "binding": {
        "kind": "title"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "target",
      "label": "Cible du travail",
      "input": "surface-reference",
      "binding": {
        "kind": "link",
        "linkTypePath": "application/contributes-to",
        "direction": "outgoing",
        "appliesTo": "single-created"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "selector": {
        "queryKey": "chapters",
        "multiple": false,
        "minimum": 1,
        "maximum": 1
      },
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "objective",
      "label": "Objectif",
      "input": "multiline",
      "binding": {
        "kind": "field",
        "fieldKey": "objective"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "expected-result",
      "label": "Résultat attendu",
      "input": "multiline",
      "binding": {
        "kind": "field",
        "fieldKey": "expectedResult"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "completion-criteria",
      "label": "Critères de réussite",
      "input": "multiline",
      "binding": {
        "kind": "field",
        "fieldKey": "completionCriteria"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    }
  ],
  "ruleKeys": [],
  "contract": "WorkspaceForm@2"
}

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 exactDataWorkspaceForm. Properties and accepted values.

{
  "key": "revise-chapter-form",
  "label": "Réviser un chapitre",
  "actionKey": "revise-chapter",
  "targetDefinitionPath": "workspace/workshop/surface/work",
  "mode": "action",
  "fields": [
    {
      "key": "name",
      "label": "Nom du travail",
      "input": "text",
      "binding": {
        "kind": "title"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "target",
      "label": "Cible du travail",
      "input": "surface-reference",
      "binding": {
        "kind": "link",
        "linkTypePath": "application/contributes-to",
        "direction": "outgoing",
        "appliesTo": "single-created"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "selector": {
        "queryKey": "chapters",
        "multiple": false,
        "minimum": 1,
        "maximum": 1
      },
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "objective",
      "label": "Objectif",
      "input": "multiline",
      "binding": {
        "kind": "field",
        "fieldKey": "objective"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "expected-result",
      "label": "Résultat attendu",
      "input": "multiline",
      "binding": {
        "kind": "field",
        "fieldKey": "expectedResult"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "completion-criteria",
      "label": "Critères de réussite",
      "input": "multiline",
      "binding": {
        "kind": "field",
        "fieldKey": "completionCriteria"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    }
  ],
  "ruleKeys": [],
  "contract": "WorkspaceForm@2"
}

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.

  1. Company *
  2. Status *
  3. Notes
  4. Create client
ILLUSTRATIVE LAYOUTClients / Quotes app
SurfaceClients / North StudioExample
exactDataWorkspaceFormexactDataWorkspaceForm
Clients
MODEL CONTEXTNorth StudioDeclarative configuration
key
revise-chapter-form
label
Réviser un chapitre
actionKey
revise-chapter
targetDefinitionPath
workspace/workshop/surface/work
mode
action

Values above follow the configuration fragment; references resolve in the complete Model.

Search for a concept, field or action.Esc