---
title: "surfaceWorkBinding"
url: https://developers.dagio.ai/reference/surface-work-binding/
---

# surfaceWorkBinding

   
                           
                                                                             
                                      
                  
           
          
   

This reference describes the full structure of `surfaceWorkBinding`. 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 |
| --- | --- | --- |
| `[kind=query-view].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. |
| `[kind=query-view].kind` | `"query-view"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `[kind=query-view].scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `[kind=query-view].queryBindingKey` | `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. |
| `[kind=query-view].viewKey` | `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. |
| `[kind=native-document].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. |
| `[kind=native-document].kind` | `"native-document"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `[kind=native-document].scope` | `"retainedTarget"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `[kind=sources].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. |
| `[kind=sources].kind` | `"sources"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `[kind=sources].scope` | `"retainedTarget"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `[kind=sources].viewKey` | `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. |
| `[kind=flow-inspection].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. |
| `[kind=flow-inspection].kind` | `"flow-inspection"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `[kind=flow-inspection].scope` | `"rootWork"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `[kind=consolidation].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. |
| `[kind=consolidation].kind` | `"consolidation"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `[kind=consolidation].scope` | `"selectedStage"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `[kind=consolidation].profileKey` | `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. |
| `[kind=action].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. |
| `[kind=action].kind` | `"action"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `[kind=action].scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `[kind=action].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. |
| `[kind=criteria].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. |
| `[kind=criteria].kind` | `"criteria"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `[kind=criteria].scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `[kind=criteria].queryBindingKey` | `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. |
| `[kind=criteria].lifecycleKey` | `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. |
| `[kind=criteria].stateValue` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Required.** Defines state Value 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.

## Structural example

This fragment passes the schema for this section. Its business references must be defined in the enclosing Model.

```json
{
  "key": "criteria",
  "kind": "criteria",
  "scope": "rootWork",
  "queryBindingKey": "criteria",
  "lifecycleKey": "work-criterion",
  "stateValue": "accepted"
}
```

## Related references

[Complete Model index](https://developers.dagio.ai/reference/) · [Build a Model](https://developers.dagio.ai/models/)

<!-- surface-examples:start -->

## 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 `surfaceWorkBinding`. [Properties and accepted values](https://developers.dagio.ai/reference/surface-work-binding/).

```json
{
  "key": "criteria",
  "kind": "criteria",
  "scope": "rootWork",
  "queryBindingKey": "criteria",
  "lifecycleKey": "work-criterion",
  "stateValue": "accepted"
}
```

### Variation and connection

Component properties `RecordLayout.props`. [Properties and accepted values](https://developers.dagio.ai/surface-components/#recordlayout).

```json
{
  "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

<!-- surface-examples:end -->
