Skip to content
SurfaceDocs
FRGet started
DocsModel reference

workspaceNavigationMetrics

Properties, variants, types and bounds for workspaceNavigationMetrics.

This reference describes the full structure of workspaceNavigationMetrics. 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 "WorkspaceNavigationMetrics@1" Required. Exact discriminant of this contract variant. Match the literal value shown.
items Array<closed object>; max length 40 Required. Defines items for this object. Observe the type, variants and bounds in the Options column.
items[].destinationKey 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.
items[].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.
items[].kind "query-total" Required. Selects the variant and the properties admitted in this branch.

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.

{
  "contract": "WorkspaceNavigationMetrics@1",
  "items": [
    {
      "destinationKey": "manuscript",
      "queryKey": "chapters",
      "kind": "query-total"
    },
    {
      "destinationKey": "characters",
      "queryKey": "characters",
      "kind": "query-total"
    },
    {
      "destinationKey": "places",
      "queryKey": "record-place-roots",
      "kind": "query-total"
    },
    {
      "destinationKey": "knowledge",
      "queryKey": "knowledge",
      "kind": "query-total"
    },
    {
      "destinationKey": "workshop",
      "queryKey": "workshop",
      "kind": "query-total"
    }
  ]
}

Complete Model index · Build a Model

Applied examples : Assemble a coherent definition

The Form and record profile reference the same company, status and notes Fields.

Configuration

Contract object workspaceNavigationMetrics. Properties and accepted values.

{
  "contract": "WorkspaceNavigationMetrics@1",
  "items": [
    {
      "destinationKey": "manuscript",
      "queryKey": "chapters",
      "kind": "query-total"
    },
    {
      "destinationKey": "characters",
      "queryKey": "characters",
      "kind": "query-total"
    },
    {
      "destinationKey": "places",
      "queryKey": "record-place-roots",
      "kind": "query-total"
    },
    {
      "destinationKey": "knowledge",
      "queryKey": "knowledge",
      "kind": "query-total"
    },
    {
      "destinationKey": "workshop",
      "queryKey": "workshop",
      "kind": "query-total"
    }
  ]
}

Variation and connection

Fragment placed in presentation.recordProfiles[]. Properties and accepted values.

{
  "key": "client",
  "definitionPaths": [
    "workspace/clients/surface/client"
  ],
  "editActionKey": "edit-client",
  "identity": {
    "title": {
      "kind": "field",
      "fieldPath": "fields/company"
    },
    "avatar": {
      "kind": "initials",
      "maximumLetters": 2
    },
    "subtitle": {
      "kind": "field",
      "fieldPath": "fields/status"
    }
  },
  "valueLabels": [
    {
      "fieldPath": "fields/status",
      "values": [
        {
          "value": "prospect",
          "label": "Prospect"
        },
        {
          "value": "active",
          "label": "Active"
        }
      ]
    }
  ],
  "card": {
    "summary": {
      "kind": "field",
      "fieldPath": "fields/notes"
    },
    "tags": {
      "namespace": "user",
      "maximumVisible": 3
    },
    "metricKeys": [],
    "openLabel": "Open client"
  },
  "queryBindings": [],
  "metrics": [],
  "detail": {
    "primaryActionKey": null,
    "creationActionKeys": [],
    "actionKeys": [],
    "sections": [
      {
        "kind": "fields",
        "key": "follow-up",
        "label": "Client follow-up",
        "fieldPaths": [
          "fields/notes",
          "fields/status"
        ]
      }
    ],
    "settings": {
      "fieldPaths": [
        "fields/email"
      ]
    },
    "tags": {
      "namespace": "user",
      "maximumVisible": 3
    },
    "relatedGroups": [],
    "primaryActionLabel": null
  }
}

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. Clients · Data
  2. References · Knowledge
  3. Preparation · Work
  4. Quotes · Product
ILLUSTRATIVE LAYOUTClients / Quotes app
SurfaceClients / North StudioExample
workspaceNavigationMetricsworkspaceNavigationMetrics
Clients
MODEL CONTEXTNorth StudioDeclarative configuration
items
5 items

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

Search for a concept, field or action.Esc