---
title: "workspaceGraphPresentation"
url: https://developers.dagio.ai/fr/reference/workspace-graph-presentation/
---

# workspaceGraphPresentation

   
                                   
                                                                                     
                                              
                  
           
          
   

Cette référence décrit la structure complète de `workspaceGraphPresentation`. Chaque chemin représente une propriété, y compris les objets imbriqués, les éléments de listes et les branches conditionnelles. Une branche identifiée par `kind`, `contract` ou `mode` n’admet que ses propres propriétés.

## Structure et valeurs

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `contract` | `"WorkspaceGraphPresentation@1"` | **Requis.** Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée. |
| `initialProfileKey` | `string; min length 1; max length 120` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `profiles` | `Array<closed object>; min length 1; max length 20` | **Requis.** Définit « profiles » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].key` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `profiles[].label` | `string; min length 1; max length 200` | **Requis.** Libellé destiné à l’usager dans l’interface. |
| `profiles[].edgeRouting` | `Géré par Surface; fourni par les outils du Model.` | **Requis.** Définit « edge Routing » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout` | `closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object` | **Requis.** Algorithme ou structure d’agencement, configuré par les propriétés de la variante. |
| `profiles[].layout.[algorithm=box].algorithm` | `"box"` | **Requis.** Algorithme d’organisation du graphe; ses paramètres dépendent de cette valeur. |
| `profiles[].layout.[algorithm=box].nodeSpacing` | `number; ≥ 1; ≤ 1000` | **Requis.** Définit « node Spacing » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=box].aspectRatio` | `number; ≥ 0.1; ≤ 10` | **Requis.** Définit « aspect Ratio » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=disco].algorithm` | `"disco"` | **Requis.** Algorithme d’organisation du graphe; ses paramètres dépendent de cette valeur. |
| `profiles[].layout.[algorithm=disco].componentSpacing` | `number; ≥ 1; ≤ 1000` | **Requis.** Définit « component Spacing » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=disco].aspectRatio` | `number; ≥ 0.1; ≤ 10` | **Requis.** Définit « aspect Ratio » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=disco].componentLayout` | `"force" \| "stress" \| "layered"` | **Requis.** Définit « component Layout » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=force].algorithm` | `"force"` | **Requis.** Algorithme d’organisation du graphe; ses paramètres dépendent de cette valeur. |
| `profiles[].layout.[algorithm=force].nodeSpacing` | `number; ≥ 1; ≤ 1000` | **Requis.** Définit « node Spacing » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=force].aspectRatio` | `number; ≥ 0.1; ≤ 10` | **Requis.** Définit « aspect Ratio » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=force].seed` | `integer; ≥ 1; ≤ 2147483647` | **Requis.** Provisionne un contenu initial plutôt que déclarer uniquement un type d’instance. |
| `profiles[].layout.[algorithm=layered].algorithm` | `"layered"` | **Requis.** Algorithme d’organisation du graphe; ses paramètres dépendent de cette valeur. |
| `profiles[].layout.[algorithm=layered].nodeSpacing` | `number; ≥ 1; ≤ 1000` | **Requis.** Définit « node Spacing » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=layered].componentSpacing` | `number; ≥ 1; ≤ 1000` | **Requis.** Définit « component Spacing » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=layered].layerSpacing` | `number; ≥ 1; ≤ 1000` | **Requis.** Définit « layer Spacing » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=layered].direction` | `"UP" \| "DOWN" \| "LEFT" \| "RIGHT"` | **Requis.** Sens du parcours ou de présentation; respecter les valeurs fermées de ce contrat. |
| `profiles[].layout.[algorithm=layered].seed` | `integer; ≥ 1; ≤ 2147483647` | **Requis.** Provisionne un contenu initial plutôt que déclarer uniquement un type d’instance. |
| `profiles[].layout.[algorithm=mrtree].algorithm` | `"mrtree"` | **Requis.** Algorithme d’organisation du graphe; ses paramètres dépendent de cette valeur. |
| `profiles[].layout.[algorithm=mrtree].nodeSpacing` | `number; ≥ 1; ≤ 1000` | **Requis.** Définit « node Spacing » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=mrtree].direction` | `"UP" \| "DOWN" \| "LEFT" \| "RIGHT"` | **Requis.** Sens du parcours ou de présentation; respecter les valeurs fermées de ce contrat. |
| `profiles[].layout.[algorithm=mrtree].aspectRatio` | `number; ≥ 0.1; ≤ 10` | **Requis.** Définit « aspect Ratio » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=random].algorithm` | `"random"` | **Requis.** Algorithme d’organisation du graphe; ses paramètres dépendent de cette valeur. |
| `profiles[].layout.[algorithm=random].nodeSpacing` | `number; ≥ 1; ≤ 1000` | **Requis.** Définit « node Spacing » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=random].aspectRatio` | `number; ≥ 0.1; ≤ 10` | **Requis.** Définit « aspect Ratio » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=random].seed` | `integer; ≥ 1; ≤ 2147483647` | **Requis.** Provisionne un contenu initial plutôt que déclarer uniquement un type d’instance. |
| `profiles[].layout.[algorithm=stress].algorithm` | `"stress"` | **Requis.** Algorithme d’organisation du graphe; ses paramètres dépendent de cette valeur. |
| `profiles[].layout.[algorithm=stress].desiredEdgeLength` | `number; ≥ 1; ≤ 1000` | **Requis.** Définit « desired Edge Length » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `profiles[].layout.[algorithm=stress].iterationLimit` | `integer; ≥ 1; ≤ 1000` | **Requis.** Définit « iteration Limit » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |

## Règles de lecture

Les chemins suffixés par `[]` décrivent chaque élément d’une liste; `{key}` décrit chaque valeur d’un dictionnaire. Le symbole `↻` renvoie à la même expression récursive. Un objet fermé refuse les propriétés supplémentaires. Les mentions de validation sémantique signalent un contrôle complémentaire : la conformité des types ne suffit pas à rendre une référence, une permission ou une transition valide. Les références doivent être résolues dans le Model et le contexte de l’usager.

La présence d’une ancienne variante ne permet pas d’y ajouter une propriété d’une variante plus récente. Le compilateur contrôle la version et la cohérence du Model complet.

Les paramètres d’implémentation de cette structure sont gérés par Surface. Utilisez les outils du Model pour les produire; ils ne sont pas des valeurs à saisir dans une fiche.

## Références associées

[Index complet du Model](https://developers.dagio.ai/fr/reference/) · [Construire un Model](https://developers.dagio.ai/fr/models/)

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

## Exemples appliqués : Explorer le client et ses relations

Deux organisations visuelles présentent les mêmes objets liés, sans modifier leurs données.

### Configuration

Valeur de la propriété `initialProfileKey`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/reference/workspace-graph-presentation/).

```json
"dependencies"
```

### Variante et raccordement

Fragment à placer dans `graphPresentations[].profiles[].layout`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/reference/workspace-graph-layout/).

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

### 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. Atelier Nord
2. Soumission S-1042
3. Préparation
4. Sources

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