---
title: "managedModelAuthorFlow"
url: https://developers.dagio.ai/fr/reference/managed-model-author-flow/
---

# managedModelAuthorFlow

   
                               
                                                                                 
                                           
                  
           
          
   

Cette référence décrit la structure complète de `managedModelAuthorFlow`. 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 |
| --- | --- | --- |
| `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é. |
| `title` | `string; min length 1; max length 4000` | **Requis.** Titre de l’objet ou de la section dans l’interface. |
| `root` | `closed object` | **Requis.** Définit « root » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `root.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é. |
| `root.definitionPath` | `string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u` | **Requis.** Chemin exact d’une définition du Model; il ne désigne pas l’ID d’une fiche. |
| `root.requiredInputs` | `Array<string; min length 1>; max length 100` | **Requis.** Entrées nécessaires avant le travail; elles doivent correspondre à des Fields déclarés. |
| `root.initialFields` | `Record<string, true \| false OR number OR string OR Array<true \| false OR number OR string>>` | **Requis.** Définit « initial Fields » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `stateDefinitionPath` | `string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u` | **Requis.** Chemin exact du type de définition concerné; chaque référence doit exister dans le Model et respecter le périmètre déclaré. |
| `subflowLinkTypePath` | `string; min length 1; max length 600; null` | **Requis.** Type de relation déclaré, avec sources, cibles et direction compatibles avec ce parcours. |
| `inputs` | `Array<closed object>; max length 50` | **Requis.** Entrées nommées et typées nécessaires à la composition ou à l’opération. |
| `inputs[].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é. |
| `inputs[].type` | `"text" \| "number" \| "boolean" \| "surface-reference" \| "result-reference"` | **Requis.** Définit « type » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `inputs[].minimum` | `integer; ≥ 0; ≤ 1000` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `inputs[].maximum` | `integer; ≥ 1; ≤ 1000` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `contexts` | `Array<closed object>; max length 30` | **Requis.** Définit « contexts » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `contexts[].definitionPath` | `string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u` | **Requis.** Chemin exact d’une définition du Model; il ne désigne pas l’ID d’une fiche. |
| `contexts[].source` | `closed object OR closed object OR closed object` | **Requis.** Définit « source » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `contexts[].source.[kind=input].kind` | `"input"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `contexts[].source.[kind=input].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é. |
| `contexts[].source.[kind=step].kind` | `"step"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `contexts[].source.[kind=step].stepKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `contexts[].source.[kind=collection-item].kind` | `"collection-item"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `contexts[].source.[kind=collection-item].stepKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `outputs` | `Array<closed object>; max length 50` | **Requis.** Résultats exposés par la composition selon leurs noms déclarés. |
| `outputs[].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é. |
| `outputs[].from` | `closed object` | **Requis.** État ou source de départ de la transition ou relation. |
| `outputs[].from.stepKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `outputs[].from.outputKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `outputs[].minimum` | `integer; ≥ 0; ≤ 1000` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `outputs[].maximum` | `integer; ≥ 1; ≤ 1000` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `outputs[].reduction` | `"first" \| "ordered-list" \| "distinct-list"` | **Requis.** Définit « reduction » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `steps` | `Array<unknown>; min length 1; max length 199` | **Requis.** Étapes de la composition dans leur organisation déclarée. |
| `budgets` | `closed object` | **Requis.** Définit « budgets » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `budgets.maximumDepth` | `integer; ≥ 1; ≤ 8` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `budgets.maximumOccurrences` | `integer; ≥ 1; ≤ 1000` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `budgets.maximumConcurrency` | `integer; ≥ 1; ≤ 100` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `budgets.maximumIterations` | `integer; ≥ 1; ≤ 100` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `budgets.maximumDurationMilliseconds` | `integer; ≥ 1; ≤ 2592000000` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `budgets.maximumCostUnits` | `integer; ≥ 0; ≤ 1000000` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |
| `budgets.maximumStateBytes` | `integer; ≥ 1024; ≤ 2000000` | **Requis.** Borne de cardinalité ou de budget pour la ressource nommée. Les dépassements sont refusés; null signifie une absence de borne uniquement lorsque le schéma l’admet. |

## 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.

## Exemple de structure

Ce fragment respecte le schéma de cette section. Ses références métier doivent être définies dans le Model qui l’utilise.

```json
{
  "key": "client",
  "title": "client",
  "root": {
    "key": "client",
    "definitionPath": "workspace/clients/surface/client",
    "requiredInputs": [],
    "initialFields": {}
  },
  "stateDefinitionPath": "workspace/clients/surface/client",
  "subflowLinkTypePath": null,
  "inputs": [],
  "contexts": [],
  "outputs": [],
  "steps": [
    {}
  ],
  "budgets": {
    "maximumDepth": 1,
    "maximumOccurrences": 1,
    "maximumConcurrency": 1,
    "maximumIterations": 1,
    "maximumDurationMilliseconds": 1,
    "maximumCostUnits": 0,
    "maximumStateBytes": 1024
  }
}
```

## 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 : Préparer une soumission

Le Flow déclare les entrées Client et Besoin, une étape exécutable et un budget borné.

### Configuration

Objet du contrat `managedModelAuthorFlow`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/reference/managed-model-author-flow/).

```json
{
  "key": "client",
  "title": "client",
  "root": {
    "key": "client",
    "definitionPath": "workspace/clients/surface/client",
    "requiredInputs": [],
    "initialFields": {}
  },
  "stateDefinitionPath": "workspace/clients/surface/client",
  "subflowLinkTypePath": null,
  "inputs": [],
  "contexts": [],
  "outputs": [],
  "steps": [
    {}
  ],
  "budgets": {
    "maximumDepth": 1,
    "maximumOccurrences": 1,
    "maximumConcurrency": 1,
    "maximumIterations": 1,
    "maximumDurationMilliseconds": 1,
    "maximumCostUnits": 0,
    "maximumStateBytes": 1024
  }
}
```

### Variante et raccordement

Fragment à placer dans `flowBlueprints[].composition.inputs`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/reference/flow-composition/).

```json
[
  {
    "key": "client",
    "type": "surface-reference",
    "provenance": "caller",
    "minimum": 1,
    "maximum": 1
  },
  {
    "key": "need",
    "type": "text",
    "provenance": "caller",
    "minimum": 1,
    "maximum": 1
  }
]
```

### 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. Qualifier le besoin
2. Préparer la proposition
3. Attendre la décision
4. Conserver le résultat

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