Skip to content
SurfaceDocs
FRGet started
DocsModel reference

workspaceGraphPresentation

Properties, variants, types and bounds for workspaceGraphPresentation.

This reference describes the full structure of workspaceGraphPresentation. 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
contract "WorkspaceGraphPresentation@1" Required. Exact discriminant of this contract variant. Match the literal value shown.
initialProfileKey string; min length 1; max length 120 Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
profiles Array<closed object>; min length 1; max length 20 Required. Defines profiles for this object. Observe the type, variants and bounds in the Options column.
profiles[].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.
profiles[].label string; min length 1; max length 200 Required. Human-readable label displayed in the interface.
profiles[].edgeRouting Managed by Surface; supplied by the Model tools. Required. Defines edge Routing for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object Required. Arrangement algorithm or structure configured by variant properties.
profiles[].layout.[algorithm=box].algorithm "box" Required. Graph layout algorithm; its parameters depend on this value.
profiles[].layout.[algorithm=box].nodeSpacing number; ≥ 1; ≤ 1000 Required. Defines node Spacing for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=box].aspectRatio number; ≥ 0.1; ≤ 10 Required. Defines aspect Ratio for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=disco].algorithm "disco" Required. Graph layout algorithm; its parameters depend on this value.
profiles[].layout.[algorithm=disco].componentSpacing number; ≥ 1; ≤ 1000 Required. Defines component Spacing for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=disco].aspectRatio number; ≥ 0.1; ≤ 10 Required. Defines aspect Ratio for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=disco].componentLayout "force" | "stress" | "layered" Required. Defines component Layout for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=force].algorithm "force" Required. Graph layout algorithm; its parameters depend on this value.
profiles[].layout.[algorithm=force].nodeSpacing number; ≥ 1; ≤ 1000 Required. Defines node Spacing for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=force].aspectRatio number; ≥ 0.1; ≤ 10 Required. Defines aspect Ratio for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=force].seed integer; ≥ 1; ≤ 2147483647 Required. Provisions initial content rather than only declaring an instance type.
profiles[].layout.[algorithm=layered].algorithm "layered" Required. Graph layout algorithm; its parameters depend on this value.
profiles[].layout.[algorithm=layered].nodeSpacing number; ≥ 1; ≤ 1000 Required. Defines node Spacing for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=layered].componentSpacing number; ≥ 1; ≤ 1000 Required. Defines component Spacing for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=layered].layerSpacing number; ≥ 1; ≤ 1000 Required. Defines layer Spacing for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=layered].direction "UP" | "DOWN" | "LEFT" | "RIGHT" Required. Traversal or presentation direction using this contract’s closed values.
profiles[].layout.[algorithm=layered].seed integer; ≥ 1; ≤ 2147483647 Required. Provisions initial content rather than only declaring an instance type.
profiles[].layout.[algorithm=mrtree].algorithm "mrtree" Required. Graph layout algorithm; its parameters depend on this value.
profiles[].layout.[algorithm=mrtree].nodeSpacing number; ≥ 1; ≤ 1000 Required. Defines node Spacing for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=mrtree].direction "UP" | "DOWN" | "LEFT" | "RIGHT" Required. Traversal or presentation direction using this contract’s closed values.
profiles[].layout.[algorithm=mrtree].aspectRatio number; ≥ 0.1; ≤ 10 Required. Defines aspect Ratio for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=random].algorithm "random" Required. Graph layout algorithm; its parameters depend on this value.
profiles[].layout.[algorithm=random].nodeSpacing number; ≥ 1; ≤ 1000 Required. Defines node Spacing for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=random].aspectRatio number; ≥ 0.1; ≤ 10 Required. Defines aspect Ratio for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=random].seed integer; ≥ 1; ≤ 2147483647 Required. Provisions initial content rather than only declaring an instance type.
profiles[].layout.[algorithm=stress].algorithm "stress" Required. Graph layout algorithm; its parameters depend on this value.
profiles[].layout.[algorithm=stress].desiredEdgeLength number; ≥ 1; ≤ 1000 Required. Defines desired Edge Length for this object. Observe the type, variants and bounds in the Options column.
profiles[].layout.[algorithm=stress].iterationLimit integer; ≥ 1; ≤ 1000 Required. Defines iteration Limit for this object. Observe the type, variants and bounds in the Options column.

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.

Surface manages this structure’s implementation parameters. Use Model tools to produce them; they are not values to enter in a record.

Complete Model index · Build a Model

Applied examples : Explore the client and its relations

Two visual arrangements present the same linked objects without changing their data.

Configuration

Value for property initialProfileKey. Properties and accepted values.

"dependencies"

Variation and connection

Fragment placed in graphPresentations[].profiles[].layout. Properties and accepted values.

{
  "algorithm": "mrtree",
  "nodeSpacing": 56,
  "direction": "DOWN",
  "aspectRatio": 1.5
}

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. North Studio
  2. Quote S-1042
  3. Preparation
  4. Sources
ILLUSTRATIVE LAYOUTClients / Quotes app
SurfaceClients / North StudioExample
workspaceGraphPresentationworkspaceGraphPresentation
Clients
MODEL CONTEXTNorth StudioDeclarative configuration
Value
dependencies

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

Search for a concept, field or action.Esc