Skip to content
SurfaceDocs
FRGet started
DocsModel reference

surfaceWorkHeader

Properties, variants, types and bounds for surfaceWorkHeader.

This reference describes the full structure of surfaceWorkHeader. 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
purpose closed object; null Required. Defines purpose for this object. Observe the type, variants and bounds in the Options column.
purpose.scope "rootWork" | "selectedStage" | "retainedTarget" Required. Defines scope for this object. Observe the type, variants and bounds in the Options column.
purpose.source closed object OR closed object Required. Defines source for this object. Observe the type, variants and bounds in the Options column.
purpose.source.[kind=native].kind "native" Required. Selects the variant and the properties admitted in this branch.
purpose.source.[kind=native].property "title" | "description" | "createdAt" | "updatedAt" Required. Recognized native property name; this selector does not allow arbitrary access.
purpose.source.[kind=field].kind "field" Required. Selects the variant and the properties admitted in this branch.
purpose.source.[kind=field].fieldPath string; min length 8; max length 127; /^fields\/[a-zA-Z][a-zA-Z0-9]*$/u Required. Semantic Field selector, using the fields/ prefix.
purpose.valueLabels Array<closed object>; max length 100 Required. Mappings from stable values to user-facing labels.
purpose.valueLabels[].value string; max length 4000 OR number OR true | false Required. Effective value interpreted according to the enclosing type and discriminant.
purpose.valueLabels[].label string; min length 1; max length 4000 Required. Human-readable label displayed in the interface.
status closed object; null Required. Defines status for this object. Observe the type, variants and bounds in the Options column.
status.scope "rootWork" | "selectedStage" | "retainedTarget" Required. Defines scope for this object. Observe the type, variants and bounds in the Options column.
status.source closed object OR closed object Required. Defines source for this object. Observe the type, variants and bounds in the Options column.
status.source.[kind=native].kind "native" Required. Selects the variant and the properties admitted in this branch.
status.source.[kind=native].property "title" | "description" | "createdAt" | "updatedAt" Required. Recognized native property name; this selector does not allow arbitrary access.
status.source.[kind=field].kind "field" Required. Selects the variant and the properties admitted in this branch.
status.source.[kind=field].fieldPath string; min length 8; max length 127; /^fields\/[a-zA-Z][a-zA-Z0-9]*$/u Required. Semantic Field selector, using the fields/ prefix.
status.valueLabels Array<closed object>; max length 100 Required. Mappings from stable values to user-facing labels.
status.valueLabels[].value string; max length 4000 OR number OR true | false Required. Effective value interpreted according to the enclosing type and discriminant.
status.valueLabels[].label string; min length 1; max length 4000 Required. Human-readable label displayed in the interface.
facts Array<closed object>; max length 20 Required. Defines facts for this object. Observe the type, variants and bounds in the Options column.
facts[].scope "rootWork" | "selectedStage" | "retainedTarget" Required. Defines scope for this object. Observe the type, variants and bounds in the Options column.
facts[].source closed object OR closed object Required. Defines source for this object. Observe the type, variants and bounds in the Options column.
facts[].source.[kind=native].kind "native" Required. Selects the variant and the properties admitted in this branch.
facts[].source.[kind=native].property "title" | "description" | "createdAt" | "updatedAt" Required. Recognized native property name; this selector does not allow arbitrary access.
facts[].source.[kind=field].kind "field" Required. Selects the variant and the properties admitted in this branch.
facts[].source.[kind=field].fieldPath string; min length 8; max length 127; /^fields\/[a-zA-Z][a-zA-Z0-9]*$/u Required. Semantic Field selector, using the fields/ prefix.
facts[].valueLabels Array<closed object>; max length 100 Required. Mappings from stable values to user-facing labels.
facts[].valueLabels[].value string; max length 4000 OR number OR true | false Required. Effective value interpreted according to the enclosing type and discriminant.
facts[].valueLabels[].label string; min length 1; max length 4000 Required. Human-readable label displayed in the interface.
facts[].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.
facts[].label string; min length 1; max length 4000 Required. Human-readable label displayed in the interface.
criteria closed object; null Required. Defines criteria for this object. Observe the type, variants and bounds in the Options column.
criteria.sectionKey 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.
criteria.bindingKey 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.

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.

{
  "purpose": {
    "scope": "rootWork",
    "source": {
      "kind": "field",
      "fieldPath": "fields/objective"
    },
    "valueLabels": []
  },
  "status": {
    "scope": "rootWork",
    "source": {
      "kind": "field",
      "fieldPath": "fields/status"
    },
    "valueLabels": []
  },
  "facts": [
    {
      "scope": "rootWork",
      "source": {
        "kind": "field",
        "fieldPath": "fields/expectedResult"
      },
      "valueLabels": [],
      "key": "expected-result",
      "label": "Résultat attendu"
    },
    {
      "scope": "retainedTarget",
      "source": {
        "kind": "native",
        "property": "title"
      },
      "valueLabels": [],
      "key": "destination",
      "label": "Cible"
    }
  ],
  "criteria": {
    "sectionKey": "requests",
    "bindingKey": "criteria"
  }
}

Complete Model index · Build a Model

Applied examples : Compose a record and its relations

Two declared Stacks hold main content then relations without extra frames. The preset selects the right panel’s width.

Configuration

Contract object surfaceWorkHeader. Properties and accepted values.

{
  "purpose": {
    "scope": "rootWork",
    "source": {
      "kind": "field",
      "fieldPath": "fields/objective"
    },
    "valueLabels": []
  },
  "status": {
    "scope": "rootWork",
    "source": {
      "kind": "field",
      "fieldPath": "fields/status"
    },
    "valueLabels": []
  },
  "facts": [
    {
      "scope": "rootWork",
      "source": {
        "kind": "field",
        "fieldPath": "fields/expectedResult"
      },
      "valueLabels": [],
      "key": "expected-result",
      "label": "Résultat attendu"
    },
    {
      "scope": "retainedTarget",
      "source": {
        "kind": "native",
        "property": "title"
      },
      "valueLabels": [],
      "key": "destination",
      "label": "Cible"
    }
  ],
  "criteria": {
    "sectionKey": "requests",
    "bindingKey": "criteria"
  }
}

Variation and connection

Component properties RecordLayout.props. Properties and accepted values.

{
  "asideWidth": "compact"
}

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. Client identity
  2. Notes and follow-up
  3. Settings
  4. Linked quotes
ILLUSTRATIVE LAYOUTClients / Quotes app
SurfaceClients / North StudioExample
surfaceWorkHeadersurfaceWorkHeader
Clients
MODEL CONTEXTNorth StudioDeclarative configuration
purpose
Declared object
status
Declared object
facts
2 items
criteria
Declared object

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

Search for a concept, field or action.Esc