---
title: "ManagedModelSource · types"
url: https://developers.dagio.ai/fr/reference/types-managed-model-source/
---

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

## ManagedSurfaceVisibility

Closed visibility values authored by managed Surface Models.

```typescript
export type ManagedSurfaceVisibility = 'normal' | 'knowledge' | 'operational' | 'system';
```

```typescript
type ManagedSurfaceVisibility = "knowledge" | "normal" | "operational" | "system";
```

## ManagedAnchorPolicy

Closed Anchor protection values compiled into every Surface definition.

```typescript
export type ManagedAnchorPolicy = 'none' | 'structure' | 'section';
```

```typescript
type ManagedAnchorPolicy = "none" | "section" | "structure";
```

## ManagedSurfaceFieldType

Scalar storage types supported by Model-declared Surface Fields.

```typescript
export type ManagedSurfaceFieldType = 'boolean' | 'date' | 'datetime' | 'number' | 'text';
```

```typescript
type ManagedSurfaceFieldType = "number" | "boolean" | "text" | "date" | "datetime";
```

## ManagedScalarFieldDefinition

One closed Field definition owned by a Surface definition in a Model Revision.

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `key` | `string` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `type` | `ManagedSurfaceFieldType` | **Requis.** Définit « type » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `required` | `boolean` | **Requis.** Indique si cette déclaration exige une valeur. |
| `repeatable` | `boolean` | **Requis.** Indique si plusieurs valeurs ou instances sont admises. |
| `default` | `string \| number \| boolean \| readonly (string \| number \| boolean)[] \| undefined` | Facultatif. Valeur initiale conforme au type déclaré; ne remplace pas une valeur déjà enregistrée. |
| `options` | `readonly string[] \| undefined` | Facultatif. Valeurs proposées et admises pour un choix déclaré. |

```typescript
export interface ManagedScalarFieldDefinition {
  key: string;
  type: ManagedSurfaceFieldType;
  required: boolean;
  repeatable: boolean;
  default?: boolean | number | string | readonly (boolean | number | string)[];
  options?: readonly string[];
}
```

## ManagedAnchorPrototype

One stable Anchor prototype and its exact structural/cardinality policy.

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `prototypeId` | `string` | **Requis.** Identité stable du prototype d’Anchor, utilisée pour ses instances. |
| `parentPrototypeId` | `string \| null` | **Requis.** Prototype parent ou null pour une racine admise. |
| `level` | `1 \| 3 \| 4 \| 2` | **Requis.** Profondeur structurelle de l’Anchor dans la hiérarchie admise. |
| `title` | `string` | **Requis.** Titre de l’objet ou de la section dans l’interface. |
| `protection` | `ManagedAnchorPolicy` | **Requis.** Protection du contenu ou de la structure; elle est contrôlée lors des opérations. |
| `repeatable` | `boolean` | **Requis.** Indique si plusieurs valeurs ou instances sont admises. |
| `minimumInstances` | `number` | **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. |
| `maximumInstances` | `number \| null` | **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. |
| `tagPaths` | `readonly string[]` | **Requis.** Définit « tag Paths » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |

```typescript
export interface ManagedAnchorPrototype {
  prototypeId: string;
  parentPrototypeId: string | null;
  level: 1 | 2 | 3 | 4;
  title: string;
  protection: ManagedAnchorPolicy;
  repeatable: boolean;
  minimumInstances: number;
  maximumInstances: number | null;
  tagPaths: readonly string[];
}
```

## ManagedSurfaceFieldDefinition

Current Fields preserve scalar, exact-decimal and typed-value storage semantics.

```typescript
export type ManagedSurfaceFieldDefinition =
  ManagedScalarFieldDefinition | ManagedNumericFieldV2 | ManagedTypedFieldV2;
```

```typescript
type ManagedSurfaceFieldDefinition = ManagedScalarFieldDefinition | { contract: "ManagedNumericField@2"; key: string; type: "decimal"; required: boolean; repeatable: boolean; precision: number; scale: number; unit: { kind: "dimensionless"; } | { kind: "unit"; key: string; } | { kind: "currency"; key: string; }; default?: string | string[] | undefined; minimum?: string | undefined; maximum?: string | undefined; } | ManagedTypedFieldV2;
```

## ManagedSurfaceSource

Complete Surface declaration; Canvas content and policy use their sole current native owner.

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `key` | `string` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `tagPath` | `string` | **Requis.** Chemin du tag structurel qui identifie un type; distinct des tags libres d’une fiche. |
| `title` | `string` | **Requis.** Titre de l’objet ou de la section dans l’interface. |
| `description` | `string` | **Requis.** Explication du rôle, du contenu ou de l’effet de cet élément. |
| `seed` | `boolean` | **Requis.** Provisionne un contenu initial plutôt que déclarer uniquement un type d’instance. |
| `role` | `string \| undefined` | Facultatif. Rôle sémantique reconnu dans ce contrat; ce rôle n’est pas un grant d’accès. |
| `visibility` | `ManagedSurfaceVisibility` | **Requis.** Détermine la catégorie ou visibilité de présentation selon les valeurs de cette variante. |
| `contentKind` | `"document" \| "canvas" \| "asset" \| "markdown"` | **Requis.** Sélectionne le moteur de contenu natif et le format associé. |
| `content` | `unknown` | **Requis.** Contenu natif conforme au type et au profil sélectionnés; ce n’est pas une composition UI. |
| `canvasPolicy` | `CanvasPolicy \| undefined` | Facultatif. Politique des opérations et capacités admises pour un contenu Canvas. |
| `assetPolicy` | `SurfaceAssetPolicy \| undefined` | Facultatif. Politique des formats, sources, dimensions et budgets des Assets. |
| `anchorPolicy` | `ManagedAnchorPolicy` | **Requis.** Protection structurelle appliquée à l’Anchor racine de la Surface. |
| `fields` | `readonly ManagedSurfaceFieldDefinition[]` | **Requis.** Définitions ou sélections de valeurs typées dans le contexte parent. |
| `anchors` | `readonly ManagedAnchorPrototype[]` | **Requis.** Prototypes de sections documentaires avec identité, protection et cardinalité. |
| `children` | `readonly ManagedSurfaceSource[]` | **Requis.** Éléments enfants dans l’ordre; respecter le type et les références admis. |

```typescript
export interface ManagedSurfaceSource {
  key: string;
  tagPath: string;
  title: string;
  description: string;
  seed: boolean;
  role?: string;
  visibility: ManagedSurfaceVisibility;
  contentKind: 'document' | 'markdown' | 'canvas' | 'asset';
  content: unknown;
  canvasPolicy?: CanvasPolicy;
  assetPolicy?: SurfaceAssetPolicy;
  anchorPolicy: ManagedAnchorPolicy;
  fields: readonly ManagedSurfaceFieldDefinition[];
  anchors: readonly ManagedAnchorPrototype[];
  children: readonly ManagedSurfaceSource[];
}
```

## ManagedWorkspaceSource

One Workspace definition whose Surface hierarchy uses the v3 structural contract.

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `key` | `string` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `tagPath` | `string` | **Requis.** Chemin du tag structurel qui identifie un type; distinct des tags libres d’une fiche. |
| `title` | `string` | **Requis.** Titre de l’objet ou de la section dans l’interface. |
| `description` | `string` | **Requis.** Explication du rôle, du contenu ou de l’effet de cet élément. |
| `provision` | `"per-principal" \| "per-tenant" \| "on-demand"` | **Requis.** Détermine si le conteneur est créé par principal, par tenant ou à la demande. |
| `role` | `"account-home" \| "system-knowledge" \| "knowledge-workspace" \| "work-workspace" \| undefined` | Facultatif. Rôle sémantique reconnu dans ce contrat; ce rôle n’est pas un grant d’accès. |
| `visibility` | `ManagedSurfaceVisibility` | **Requis.** Détermine la catégorie ou visibilité de présentation selon les valeurs de cette variante. |
| `surfaces` | `readonly ManagedSurfaceSource[]` | **Requis.** Définitions des types de Surfaces racines du conteneur. |

```typescript
export interface ManagedWorkspaceSource {
  key: string;
  tagPath: string;
  title: string;
  description: string;
  provision: 'per-principal' | 'per-tenant' | 'on-demand';
  role?: 'account-home' | 'system-knowledge' | 'knowledge-workspace' | 'work-workspace';
  visibility: ManagedSurfaceVisibility;
  surfaces: readonly ManagedSurfaceSource[];
}
```

## ManagedModelSource

The only source grammar; an admitted Foundation supplies the application capability.

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `contract` | `"ManagedModelSource@1"` | **Requis.** Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée. |
| `id` | `string` | **Requis.** Identité stable de l’objet; ne pas utiliser son titre comme identifiant. |
| `version` | `string` | **Requis.** Version déclarée du contenu ou de la publication; elle identifie l’interprétation applicable. |
| `name` | `string` | **Requis.** Nom lisible de l’élément dans le contexte qui le présente. |
| `description` | `string` | **Requis.** Explication du rôle, du contenu ou de l’effet de cet élément. |
| `managed` | `true` | **Requis.** Indique une source gérée par le lifecycle de Model; ne confère aucun droit à l’usager. |
| `capabilities` | `readonly string[]` | **Requis.** Capacités déclarées nécessaires aux usages du Model; leur disponibilité effective est contrôlée séparément. |
| `presentationRoles` | `Readonly<Record<string, string>>` | **Requis.** Associe les clés de présentation aux rôles de rendu reconnus. |
| `linkTypes` | `readonly { path: string; label: string; }[]` | **Requis.** Catalogue des relations que les déclarations peuvent référencer. |
| `workspaces` | `readonly ManagedWorkspaceSource[]` | **Requis.** Définitions des conteneurs applicatifs et de leurs types de Surfaces. |
| `appProfiles` | `readonly ModelAppProfile[]` | **Requis.** Profils qui assemblent les sections et destinations de l’expérience applicative. |
| `flowBlueprints` | `readonly FlowBlueprint[]` | **Requis.** Définitions réutilisables des parcours de travail et de leurs dépendances. |
| `taskActions` | `readonly TaskActionDefinition[]` | **Requis.** Définitions des instructions, entrées et résultats des Tasks. |
| `views` | `readonly ViewDefinition[]` | **Requis.** Vues déclarées pour présenter les contenus du périmètre concerné. |
| `searchProjections` | `readonly SearchProjectionDefinition[]` | **Requis.** Projections de recherche qui déterminent les objets et valeurs recherchables. |
| `commentProfiles` | `readonly (CommentProfile & { containsLinkTypePath: string; })[]` | **Requis.** Profils des commentaires, fils et relations de réponse. |
| `documentProfiles` | `readonly DocumentProfile[]` | **Requis.** Profils de composition, de collection et d’export documentaire. |
| `workspaceProjections` | `readonly WorkspaceProjectionDefinitionV2[]` | **Requis.** Projections des Workspaces utilisées pour organiser le Portfolio. |
| `semanticCommands` | `readonly SemanticCommandDefinition[]` | **Requis.** Opérations canoniques nommées; leurs paramètres et permissions restent contrôlés par leur propriétaire. |
| `surfaceViews` | `readonly WorkExperienceSurfaceViewDefinition[]` | **Requis.** Déclarations des vues utilisables pour une Surface et son contenu. |
| `surfaceViewProfiles` | `readonly SurfaceViewProfile[]` | **Requis.** Associe un type de Surface à ses vues et à sa vue par défaut. |
| `actionGroups` | `readonly ActionGroupDefinition[]` | **Requis.** Regroupe des variantes d’Actions présentées ensemble dans l’interface. |
| `dataProtectionProfiles` | `readonly DataProtectionProfile[]` | **Requis.** Classifications et politiques de recherche, divulgation AI et export des contenus. |
| `vocabulary` | `ProductVocabulary` | **Requis.** Libellés métier partagés par les vues et opérations de l’app. |
| `marketplace` | `MarketplaceListingDefinition` | **Requis.** Informations publiques utilisées pour présenter l’app dans le catalogue. |
| `foundation` | `Géré par Surface; fourni par les outils du Model.` | Facultatif. Fondation applicative reliant composition, Forms, Queries, Actions et politiques. |

```typescript
export interface ManagedModelSource {
  contract: 'ManagedModelSource@1';
  id: string;
  version: string;
  name: string;
  description: string;
  managed: true;
  capabilities: readonly string[];
  presentationRoles: Readonly<Record<string, string>>;
  linkTypes: readonly { path: string; label: string }[];
  workspaces: readonly ManagedWorkspaceSource[];
  appProfiles: readonly ModelAppProfile[];
  flowBlueprints: readonly FlowBlueprint[];
  taskActions: readonly TaskActionDefinition[];
  views: readonly ViewDefinition[];
  searchProjections: readonly SearchProjectionDefinition[];
  commentProfiles: readonly (CommentProfile & { containsLinkTypePath: string })[];
  documentProfiles: readonly DocumentProfile[];
  workspaceProjections: readonly WorkspaceProjectionDefinitionV2[];
  semanticCommands: readonly SemanticCommandDefinition[];
  surfaceViews: readonly WorkExperienceSurfaceViewDefinition[];
  surfaceViewProfiles: readonly SurfaceViewProfile[];
  actionGroups: readonly ActionGroupDefinition[];
  dataProtectionProfiles: readonly DataProtectionProfile[];
  vocabulary: ProductVocabulary;
  marketplace: MarketplaceListingDefinition;
  foundation?: WorkspaceModelFoundation;
}
```

## ManagedApplicationModel

Application capability is present only after the full Foundation was admitted.

```typescript
export type ManagedApplicationModel = ManagedModelSource & {
  readonly foundation: WorkspaceModelFoundation;
};
```

```typescript
type ManagedApplicationModel = ManagedModelSource & { readonly foundation: WorkspaceModelFoundation; };
```

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

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

## Exemples appliqués : Assembler une définition cohérente

La Form et le profil de fiche référencent les mêmes Fields company, status et notes.

### Configuration

Fragment à placer dans `forms[]`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/reference/workspace-model-foundation/).

```json
{
  "contract": "WorkspaceForm@2",
  "key": "new-client",
  "label": "Nouveau client",
  "actionKey": "create-client",
  "targetDefinitionPath": "workspace/clients/surface/client",
  "mode": "create",
  "fields": [
    {
      "contract": "WorkspaceFormControl@2",
      "repeatable": false,
      "key": "company",
      "label": "Entreprise",
      "input": "text",
      "binding": {
        "kind": "field",
        "fieldKey": "company"
      },
      "required": true,
      "ruleKeys": [],
      "options": []
    },
    {
      "contract": "WorkspaceFormControl@2",
      "repeatable": false,
      "key": "status",
      "label": "État",
      "input": "choice",
      "binding": {
        "kind": "field",
        "fieldKey": "status"
      },
      "required": true,
      "ruleKeys": [],
      "options": [
        "prospect",
        "active"
      ]
    }
  ],
  "ruleKeys": []
}
```

### Variante et raccordement

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

```json
{
  "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": "Actif"
        }
      ]
    }
  ],
  "card": {
    "summary": {
      "kind": "field",
      "fieldPath": "fields/notes"
    },
    "tags": {
      "namespace": "user",
      "maximumVisible": 3
    },
    "metricKeys": [],
    "openLabel": "Ouvrir le client"
  },
  "queryBindings": [],
  "metrics": [],
  "detail": {
    "primaryActionKey": null,
    "creationActionKeys": [],
    "actionKeys": [],
    "sections": [
      {
        "kind": "fields",
        "key": "follow-up",
        "label": "Suivi du client",
        "fieldPaths": [
          "fields/notes",
          "fields/status"
        ]
      }
    ],
    "settings": {
      "fieldPaths": [
        "fields/email"
      ]
    },
    "tags": {
      "namespace": "user",
      "maximumVisible": 3
    },
    "relatedGroups": [],
    "primaryActionLabel": 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. Clients · Data
2. Références · Knowledge
3. Préparation · Work
4. Soumissions · Product

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