---
title: "SurfaceRelationPolicy · types"
url: https://developers.dagio.ai/fr/reference/types-surface-relation-policy/
---

# SurfaceRelationPolicy · types

   
                                      
                                                                               
                                               
                  
           
          
   

Les types ci-dessous définissent les objets nommés et leurs relations. Les propriétés héritées sont incluses dans les tableaux. Les types dérivés d’un schéma renvoient à sa structure; une déclaration TypeScript ne remplace pas les contrôles sémantiques du compilateur.

## SurfaceRelationPolicy

One versioned relation declaration shared by compiler admission and native mutation.

```typescript
export type SurfaceRelationPolicy = z.infer<typeof surfaceRelationPolicySchema>;
```

[Toutes les références](https://developers.dagio.ai/fr/reference/)

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

## Exemples appliqués : Un client, plusieurs soumissions

La contrainte porte sur les liens; le groupe de présentation affiche quatre résultats et l’accès à la liste complète.

### Configuration

Fragment à placer dans `relationPolicies[]`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/reference/surface-relation-policy/).

```json
{
  "contract": "SurfaceRelationPolicy@1",
  "key": "quote-client",
  "linkTypePath": "application/client",
  "source": {
    "definitionPaths": [
      "workspace/quotes/surface/quote"
    ],
    "fields": []
  },
  "target": {
    "definitionPaths": [
      "workspace/clients/surface/client"
    ],
    "fields": []
  },
  "maximumOutgoing": 1,
  "maximumIncoming": null,
  "acyclic": false,
  "deletion": "forbid",
  "maximumTraversalNodes": 1000
}
```

### Variante et raccordement

Fragment à placer dans `presentation.recordProfiles[].detail.relatedGroups[]`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/reference/workspace-record-profile/).

```json
{
  "key": "quotes",
  "label": "Soumissions",
  "queryBindingKey": "client-quotes",
  "maximumVisible": 4,
  "openAllLabel": "Voir toutes les soumissions",
  "rowIcon": null
}
```

### Exemple de disposition UI

La disposition illustrative ci-dessous situe cette configuration dans l’app Clients/Soumissions. Chaque fragment s’insère à l’emplacement indiqué; ses références aux Fields, Queries et Actions correspondent aux déclarations du Model.

1. Client sélectionné
2. Recherche
3. Soumissions
4. Voir toutes les soumissions

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