Aller au contenu
SurfaceDocs
ENCommencer
DocsRéférence du Model

exactDataWorkspaceForm

Propriétés, variantes, types et limites de exactDataWorkspaceForm.

Cette référence décrit la structure complète de exactDataWorkspaceForm. 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é.
label string; min length 1; max length 4000 Requis. Libellé destiné à l’usager dans l’interface.
actionKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Requis. Référence à une Action déclarée; son affichage ne l’exécute pas.
targetDefinitionPath 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é.
mode "create" | "edit" | "action" Requis. Définit « mode » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
fields Array<closed object; semantic validation>; max length 100 Requis. Définitions ou sélections de valeurs typées dans le contexte parent.
fields[].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é.
fields[].label string; min length 1; max length 4000 Requis. Libellé destiné à l’usager dans l’interface.
fields[].input "text" | "multiline" | "number" | "boolean" | "date" | "datetime" | "choice" | "surface-reference" | "decimal" | "integer" | "real" | "object" | "list" Requis. Contrôle ou entrée sélectionné par la variante; doit rester compatible avec son binding.
fields[].binding closed object OR closed object OR closed object OR closed object OR closed object OR closed object Requis. Origine ou destination déclarée de la valeur; ne contient pas de script libre.
fields[].binding.[kind=field].kind "field" Requis. Sélectionne la variante et les propriétés admises dans cette branche.
fields[].binding.[kind=field].fieldKey string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9]*$/u Requis. Clé d’un Field déclaré sur la définition de Surface référencée.
fields[].binding.[kind=title].kind "title" Requis. Sélectionne la variante et les propriétés admises dans cette branche.
fields[].binding.[kind=content].kind "content" Requis. Sélectionne la variante et les propriétés admises dans cette branche.
fields[].binding.[kind=anchor].kind "anchor" Requis. Sélectionne la variante et les propriétés admises dans cette branche.
fields[].binding.[kind=anchor].prototypeId string; min length 1; max length 4000 Requis. Identité stable du prototype d’Anchor, utilisée pour ses instances.
fields[].binding.[kind=link].kind "link" Requis. Sélectionne la variante et les propriétés admises dans cette branche.
fields[].binding.[kind=link].linkTypePath string; min length 1; max length 4000 Requis. Définit « link Type Path » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
fields[].binding.[kind=link].direction "incoming" | "outgoing" Requis. Sens du parcours ou de présentation; respecter les valeurs fermées de ce contrat.
fields[].binding.[kind=link].appliesTo "single-created" | "each-created"; optional Facultatif. Définit « applies To » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
fields[].binding.[kind=action-input].kind "action-input" Requis. Sélectionne la variante et les propriétés admises dans cette branche.
fields[].binding.[kind=action-input].inputKey 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é.
fields[].required true | false Requis. Indique si cette déclaration exige une valeur.
fields[].ruleKeys Array<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u>; max length 30 Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
fields[].options Array<string; min length 1; max length 4000>; max length 100 Requis. Valeurs proposées et admises pour un choix déclaré.
fields[].selector closed object; optional Facultatif. Définit « selector » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
fields[].selector.queryKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Requis. Référence à une Query déclarée; le moteur de données applique le périmètre et les droits.
fields[].selector.multiple true | false Requis. Définit « multiple » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
fields[].selector.minimum integer; ≥ 0; ≤ 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.
fields[].selector.maximum 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.
fields[].contract "WorkspaceFormControl@2" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
fields[].repeatable true | false Requis. Indique si plusieurs valeurs ou instances sont admises.
ruleKeys Array<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u>; max length 30 Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
contract "WorkspaceForm@2" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.

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.

{
  "key": "revise-chapter-form",
  "label": "Réviser un chapitre",
  "actionKey": "revise-chapter",
  "targetDefinitionPath": "workspace/workshop/surface/work",
  "mode": "action",
  "fields": [
    {
      "key": "name",
      "label": "Nom du travail",
      "input": "text",
      "binding": {
        "kind": "title"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "target",
      "label": "Cible du travail",
      "input": "surface-reference",
      "binding": {
        "kind": "link",
        "linkTypePath": "application/contributes-to",
        "direction": "outgoing",
        "appliesTo": "single-created"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "selector": {
        "queryKey": "chapters",
        "multiple": false,
        "minimum": 1,
        "maximum": 1
      },
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "objective",
      "label": "Objectif",
      "input": "multiline",
      "binding": {
        "kind": "field",
        "fieldKey": "objective"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "expected-result",
      "label": "Résultat attendu",
      "input": "multiline",
      "binding": {
        "kind": "field",
        "fieldKey": "expectedResult"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "completion-criteria",
      "label": "Critères de réussite",
      "input": "multiline",
      "binding": {
        "kind": "field",
        "fieldKey": "completionCriteria"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    }
  ],
  "ruleKeys": [],
  "contract": "WorkspaceForm@2"
}

Références associées

Index complet du Model · Construire un Model

Exemples appliqués : Une création courte, une fiche complète

La création demande Entreprise et État. Les notes facultatives s’enrichissent ensuite dans la Surface.

Configuration

Objet du contrat exactDataWorkspaceForm. Propriétés et valeurs admises.

{
  "key": "revise-chapter-form",
  "label": "Réviser un chapitre",
  "actionKey": "revise-chapter",
  "targetDefinitionPath": "workspace/workshop/surface/work",
  "mode": "action",
  "fields": [
    {
      "key": "name",
      "label": "Nom du travail",
      "input": "text",
      "binding": {
        "kind": "title"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "target",
      "label": "Cible du travail",
      "input": "surface-reference",
      "binding": {
        "kind": "link",
        "linkTypePath": "application/contributes-to",
        "direction": "outgoing",
        "appliesTo": "single-created"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "selector": {
        "queryKey": "chapters",
        "multiple": false,
        "minimum": 1,
        "maximum": 1
      },
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "objective",
      "label": "Objectif",
      "input": "multiline",
      "binding": {
        "kind": "field",
        "fieldKey": "objective"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "expected-result",
      "label": "Résultat attendu",
      "input": "multiline",
      "binding": {
        "kind": "field",
        "fieldKey": "expectedResult"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    },
    {
      "key": "completion-criteria",
      "label": "Critères de réussite",
      "input": "multiline",
      "binding": {
        "kind": "field",
        "fieldKey": "completionCriteria"
      },
      "required": true,
      "ruleKeys": [],
      "options": [],
      "contract": "WorkspaceFormControl@2",
      "repeatable": false
    }
  ],
  "ruleKeys": [],
  "contract": "WorkspaceForm@2"
}

Variante et raccordement

Fragment à placer dans forms[].fields[]. Propriétés et valeurs admises.

{
  "contract": "WorkspaceFormControl@2",
  "repeatable": false,
  "key": "notes",
  "label": "Notes",
  "input": "multiline",
  "binding": {
    "kind": "field",
    "fieldKey": "notes"
  },
  "required": false,
  "ruleKeys": [],
  "options": []
}

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. Entreprise *
  2. État *
  3. Notes
  4. Créer le client
DISPOSITION ILLUSTRATIVEApp Clients / Soumissions
SurfaceClients / Atelier NordExemple
exactDataWorkspaceFormexactDataWorkspaceForm
Clients
CONTEXTE DU MODELAtelier NordConfiguration déclarative
key
revise-chapter-form
label
Réviser un chapitre
actionKey
revise-chapter
targetDefinitionPath
workspace/workshop/surface/work
mode
action

Les valeurs ci-dessus reprennent le fragment de configuration; les références se résolvent dans le Model complet.

Recherchez un concept, un champ ou une action.Esc