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

ModelApplicationProfiles · types

Interfaces, valeurs et contrats nommés de ModelApplicationProfiles.

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.

ModelPresentationRole

Registered presentation role understood by the shared Surface renderer.

export type ModelPresentationRole = (typeof MODEL_PRESENTATION_ROLES)[number];
type ModelPresentationRole = "workmap.view" | "worknode.card" | "workmap.status" | "knowledge.explorer" | "account.dashboard" | "workspace.model-app" | "workspace.explorer" | "document.studio" | "knowledge.entry" | "surface.document" | "surface.canvas" | "surface.comments" | "workmap.editor" | "execution.status" | "flow.selector" | "action.confirmation";

ModelVisualTokens

Closed visual tokens selected by a Model without supplying CSS.

Champ Options / valeurs attendues Description
accent "blue" | "cyan" | "green" | "orange" | "purple" | "rose" Requis. Définit « accent » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
density "compact" | "comfortable" Requis. Définit « density » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
emphasis "normal" | "subtle" | "strong" Requis. Définit « emphasis » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface ModelVisualTokens {
  accent: 'blue' | 'cyan' | 'green' | 'orange' | 'purple' | 'rose';
  density: 'compact' | 'comfortable';
  emphasis: 'subtle' | 'normal' | 'strong';
}

ModelAppSection

One bounded section in an Account Home or Workspace application composition.

Champ Options / valeurs attendues Description
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
role "workmap.view" | "worknode.card" | "workmap.status" | "knowledge.explorer" | "account.dashboard" | "workspace.model-app" | "workspace.explorer" | "document.studio" | "knowledge.entry" | "surface.document" | "surface.canvas" | "surface.comments" | "workmap.editor" | "execution.status" | "flow.selector" | "action.confirmation" Requis. Rôle sémantique reconnu dans ce contrat; ce rôle n’est pas un grant d’accès.
projection "summary" | "editor" | "detail" | "list" Requis. Définit « projection » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
limit number Requis. Définit « limit » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface ModelAppSection {
  key: string;
  role: ModelPresentationRole;
  projection: 'summary' | 'list' | 'detail' | 'editor';
  limit: number;
}

ModelAppProfile

Declarative composition resolved by the shared Model App renderer.

Champ Options / valeurs attendues Description
contract "ModelAppProfile@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
workspaceRole "account-home" | "knowledge-workspace" | "work-workspace" Requis. Définit « workspace Role » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
presentationRole "knowledge.explorer" | "account.dashboard" | "workspace.model-app" Requis. Définit « presentation Role » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
sections readonly ModelAppSection[] Requis. Sections déclarées dans l’ordre de lecture ou de rendu.
viewKeys readonly string[] Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
flowBlueprintKeys readonly string[] Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
taskActionKeys readonly string[] Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
searchProjectionKeys readonly string[] Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
commentProfileKey string | undefined Facultatif. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
documentProfileKey string | undefined Facultatif. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
tokens ModelVisualTokens Requis. Définit « tokens » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface ModelAppProfile {
  contract: 'ModelAppProfile@1';
  key: string;
  workspaceRole: 'account-home' | 'knowledge-workspace' | 'work-workspace';
  presentationRole: 'account.dashboard' | 'knowledge.explorer' | 'workspace.model-app';
  sections: readonly ModelAppSection[];
  viewKeys: readonly string[];
  flowBlueprintKeys: readonly string[];
  taskActionKeys: readonly string[];
  searchProjectionKeys: readonly string[];
  commentProfileKey?: string;
  documentProfileKey?: string;
  tokens: ModelVisualTokens;
}

FlowWorkNodeDefinition

One WorkNode in a declarative, acyclic flow blueprint.

Champ Options / valeurs attendues Description
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
surfaceDefinitionPath string 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é.
title string Requis. Titre de l’objet ou de la section dans l’interface.
dependsOn readonly string[] Requis. Clés des étapes préalables; les références doivent exister et ne pas créer de cycle.
requiredInputs readonly string[] Requis. Exact Field keys read from this WorkNode Surface definition.
resultSurfaceDefinitionPath string 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é.
completionCriteria readonly string[] Requis. Conditions qui permettent de considérer le travail terminé.
initialFields Readonly<Record<string, string | number | boolean | readonly (string | number | boolean)[]>> Requis. Définit « initial Fields » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface FlowWorkNodeDefinition {
  key: string;
  surfaceDefinitionPath: string;
  title: string;
  dependsOn: readonly string[];
  /** Exact Field keys read from this WorkNode Surface definition. */
  requiredInputs: readonly string[];
  resultSurfaceDefinitionPath: string;
  completionCriteria: readonly string[];
  initialFields: Readonly<
    Record<string, boolean | number | string | readonly (boolean | number | string)[]>
  >;
}

FlowHierarchyNode

Explicit hierarchy nodes distinguish structural containers from executable WorkNodes.

export type FlowHierarchyNode =
  | (FlowWorkNodeDefinition & { kind: 'worknode'; parentWorkNodeKey: string | null })
  | (Omit<FlowWorkNodeDefinition, 'resultSurfaceDefinitionPath'> & {
      kind: 'container';
      parentWorkNodeKey: string | null;
      resultSurfaceDefinitionPath: null;
    });
type FlowHierarchyNode = (FlowWorkNodeDefinition & { kind: "worknode"; parentWorkNodeKey: string | null; }) | (Omit<FlowWorkNodeDefinition, "resultSurfaceDefinitionPath"> & { kind: "container"; parentWorkNodeKey: string | null; resultSurfaceDefinitionPath: null; });

FlowBlueprint

One current declaration preserves explicit Work hierarchy and optional composed execution.

Champ Options / valeurs attendues Description
contract "FlowBlueprint@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
workspaceRole "work-workspace" Requis. Définit « workspace Role » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
title string Requis. Titre de l’objet ou de la section dans l’interface.
workNodes readonly FlowHierarchyNode[] Requis. Unités de travail du blueprint avec leurs entrées, dépendances et résultats.
composition { contract: "FlowComposition@1"; rootWorkNodeKey: string; stateSurfaceDefinitionPath: string; subflowLinkTypePath: string | null; entryStepKey: string; inputs: { key: string; type: "number" | "boolean" | "text" | "surface-reference" | "result-reference"; provenance: "caller" | "canonical" | "derived"; minimum: number; maximum: number; }[]; contexts: { definitionPath: string; source: { kind: "input"; key: string; } | { kind: "step"; stepKey: string; } | { kind: "collection-item"; stepKey: string; }; }[]; outputs: { key: string; type: "number" | "boolean" | "text" | "surface-reference" | "result-reference"; provenance: "caller" | "canonical" | "derived"; minimum: number; maximum: number; source: { kind: "input"; key: string; } | { kind: "input-node-id"; key: string; } | { kind: "field"; definitionPath: string; fieldKey: string; } | { kind: "literal"; value: string | number | boolean | null; } | { kind: "collection-item"; } | { kind: "collection-node-id"; } | { kind: "iteration-number"; } | { kind: "step-output"; stepKey: string; outputKey: string; }; reduction: "first" | "ordered-list" | "distinct-list"; }[]; steps: ({ key: string; kind: "task"; workNodeKey: string; actionKey: string; inputs: Record<string, { kind: "input"; key: string; } | { kind: "input-node-id"; key: string; } | { kind: "field"; definitionPath: string; fieldKey: string; } | { kind: "literal"; value: string | number | boolean | null; } | { kind: "collection-item"; } | { kind: "collection-node-id"; } | { kind: "iteration-number"; } | { kind: "step-output"; stepKey: string; outputKey: string; }>; outputs: { key: string; type: "number" | "boolean" | "text" | "surface-reference" | "result-reference"; provenance: "caller" | "canonical" | "derived"; minimum: number; maximum: number; result: "outputs" | "reference" | "summary" | "decisions" | "nextSteps" | "blockers"; }[]; reservedCostUnits: number; maximumAttempts: number; } | { key: string; kind: "sequence"; steps: string[]; } | { key: string; kind: "choice"; mode: "exclusive" | "multiple"; branches: { key: string; stepKey: string; ruleKey: string; }[]; minimum: number; maximum: number; selection: "all-eligible" | "explicit"; confirmation: "required" | "not-required"; freshness: "captured" | "require-current"; join: { mode: "all"; remaining: "wait"; } | { mode: "quorum"; successes: number; remaining: "wait" | "request-cancel"; }; } | { key: string; kind: "parallel"; branches: { key: string; stepKey: string; }[]; maximumConcurrency: number; join: { mode: "all"; remaining: "wait"; } | { mode: "quorum"; successes: number; remaining: "wait" | "request-cancel"; }; } | { key: string; kind: "subflow"; blueprintKey: string; inputs: Record<string, { kind: "input"; key: string; } | { kind: "input-node-id"; key: string; } | { kind: "field"; definitionPath: string; fieldKey: string; } | { kind: "literal"; value: string | number | boolean | null; } | { kind: "collection-item"; } | { kind: "collection-node-id"; } | { kind: "iteration-number"; } | { kind: "step-output"; stepKey: string; outputKey: string; }>; } | { key: string; kind: "collection"; queryKey: string; parameters: Record<string, { kind: "input"; key: string; } | { kind: "input-node-id"; key: string; } | { kind: "field"; definitionPath: string; fieldKey: string; } | { kind: "literal"; value: string | number | boolean | null; } | { kind: "collection-item"; } | { kind: "collection-node-id"; } | { kind: "iteration-number"; } | { kind: "step-output"; stepKey: string; outputKey: string; }>; stepKey: string; maximumItems: number; maximumPages: number; maximumOutputBytes: number; maximumConcurrency: number; freshness: "captured" | "require-current"; join: { mode: "all"; remaining: "wait"; } | { mode: "quorum"; successes: number; remaining: "wait" | "request-cancel"; }; } | { key: string; kind: "iterate"; stepKey: string; stopRuleKey: string; maximumIterations: number; inputs: Record<string, { kind: "input"; key: string; } | { kind: "input-node-id"; key: string; } | { kind: "field"; definitionPath: string; fieldKey: string; } | { kind: "literal"; value: string | number | boolean | null; } | { kind: "collection-item"; } | { kind: "collection-node-id"; } | { kind: "iteration-number"; } | { kind: "step-output"; stepKey: string; outputKey: string; }>; } | { key: string; kind: "wait"; inputs: ({ key: string; minimum: number; maximum: number; type: "number" | "boolean" | "text"; provenance: "caller"; } | { key: string; minimum: number; maximum: number; type: "surface-reference" | "result-reference"; provenance: "canonical"; selector: { contract: "SurfaceFlowReferenceSelector@1"; queryKey: string; parameters: Record<string, { kind: "input"; key: string; } | { kind: "input-node-id"; key: string; } | { kind: "field"; definitionPath: string; fieldKey: string; } | { kind: "literal"; value: string | number | boolean | null; } | { kind: "collection-item"; } | { kind: "collection-node-id"; } | { kind: "iteration-number"; } | { kind: "step-output"; stepKey: string; outputKey: string; }>; }; })[]; arrival: "active-only"; ordering: "first-committed"; eventKey: string; recipient: "initiator"; timeoutMilliseconds: number; onExpiration: "fail" | "cancel"; } | { key: string; kind: "delay"; resume: { kind: "duration"; milliseconds: number; } | { kind: "instant"; at: number; }; })[]; budgets: { maximumDepth: number; maximumOccurrences: number; maximumConcurrency: number; maximumIterations: number; maximumDurationMilliseconds: number; maximumCostUnits: number; maximumStateBytes: number; }; } | null Requis. Non-composed dependencies are functional declarations, not an older technical format.
export interface FlowBlueprint {
  contract: 'FlowBlueprint@1';
  key: string;
  workspaceRole: 'work-workspace';
  title: string;
  workNodes: readonly FlowHierarchyNode[];
  /** Non-composed dependencies are functional declarations, not an older technical format. */
  composition: FlowComposition | null;
}

TaskActionDefinition

Declarative Task launch contract for one compatible WorkNode definition.

Champ Options / valeurs attendues Description
contract "TaskActionDefinition@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
label string Requis. Libellé destiné à l’usager dans l’interface.
parentSurfaceDefinitionPath string 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é.
taskSurfaceDefinitionPath string 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é.
instructionSurfaceDefinitionPath string 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é.
requiredInputs readonly string[] Requis. Exact Field keys read from the parent Surface definition.
resultSurfaceDefinitionPath string 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é.
repeatability "once" | "repeatable" Requis. Définit « repeatability » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
idempotency "per-parent" | "per-input-set" Requis. Politique d’identification d’une même intention pour ne pas répéter ses effets.
containsLinkTypePath string | undefined Facultatif. Type de relation déclaré, avec sources, cibles et direction compatibles avec ce parcours.
taskStateFieldKey string | undefined Facultatif. Clé de Field déclaré sur le type concerné; le type de valeur doit être compatible avec cet usage.
activeTaskStates readonly string[] | undefined Facultatif. Définit « active Task States » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
assigneeFieldKey string | undefined Facultatif. Clé de Field déclaré sur le type concerné; le type de valeur doit être compatible avec cet usage.
dependencyLinkTypePath string | undefined Facultatif. Type de relation déclaré, avec sources, cibles et direction compatibles avec ce parcours.
dependencyDirection "incoming" | "outgoing" | undefined Facultatif. Définit « dependency Direction » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
dependencyStateFieldKey string | undefined Facultatif. Clé de Field déclaré sur le type concerné; le type de valeur doit être compatible avec cet usage.
dependencyCompleteStates readonly string[] | undefined Facultatif. Définit « dependency Complete States » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
taskInputHashFieldKey string | undefined Facultatif. Clé de Field déclaré sur le type concerné; le type de valeur doit être compatible avec cet usage.
export interface TaskActionDefinition {
  contract: 'TaskActionDefinition@1';
  key: string;
  label: string;
  parentSurfaceDefinitionPath: string;
  taskSurfaceDefinitionPath: string;
  instructionSurfaceDefinitionPath: string;
  /** Exact Field keys read from the parent Surface definition. */
  requiredInputs: readonly string[];
  resultSurfaceDefinitionPath: string;
  repeatability: 'once' | 'repeatable';
  idempotency: 'per-parent' | 'per-input-set';
  containsLinkTypePath?: string;
  taskStateFieldKey?: string;
  activeTaskStates?: readonly string[];
  assigneeFieldKey?: string;
  dependencyLinkTypePath?: string;
  dependencyDirection?: 'incoming' | 'outgoing';
  dependencyStateFieldKey?: string;
  dependencyCompleteStates?: readonly string[];
  taskInputHashFieldKey?: string;
}

ModelViewKind

Registered rich view kinds rendered by the shared Surface UI engine.

export type ModelViewKind =
  'cards' | 'kanban' | 'table' | 'gantt' | 'timeline' | 'calendar' | 'graph' | 'portfolio';
type ModelViewKind = "calendar" | "cards" | "gantt" | "graph" | "kanban" | "table" | "timeline" | "portfolio";

ViewFieldMapping

One semantic field mapping consumed by a registered rich view.

Champ Options / valeurs attendues Description
semantic string Requis. Définit « semantic » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
fieldKey string Requis. Clé d’un Field déclaré sur la définition de Surface référencée.
export interface ViewFieldMapping {
  semantic: string;
  fieldKey: string;
}

ViewDefinition

Declarative registered view over canonical Surfaces and Links.

Champ Options / valeurs attendues Description
contract "ViewDefinition@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
kind ModelViewKind Requis. Sélectionne la variante et les propriétés admises dans cette branche.
workspaceRole "account-home" | "knowledge-workspace" | "work-workspace" Requis. Définit « workspace Role » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
nodeSurfaceDefinitionPaths readonly string[] 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é.
fieldMappings readonly ViewFieldMapping[] Requis. Définit « field Mappings » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
linkTypePaths readonly string[] Requis. Définit « link Type Paths » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
schedule { durationUnit: "millisecond" | "hour" | "day"; progressScale: "ratio" | "percent"; dependencies: { linkTypePath: string; predecessor: "source" | "target"; }[]; } | undefined Facultatif. Définit « schedule » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
presentationRole "workmap.view" | "worknode.card" | "workmap.status" | "knowledge.explorer" | "account.dashboard" | "workspace.model-app" | "workspace.explorer" | "document.studio" | "knowledge.entry" | "surface.document" | "surface.canvas" | "surface.comments" | "workmap.editor" | "execution.status" | "flow.selector" | "action.confirmation" Requis. Définit « presentation Role » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface ViewDefinition {
  contract: 'ViewDefinition@1';
  key: string;
  kind: ModelViewKind;
  workspaceRole: 'account-home' | 'knowledge-workspace' | 'work-workspace';
  nodeSurfaceDefinitionPaths: readonly string[];
  fieldMappings: readonly ViewFieldMapping[];
  linkTypePaths: readonly string[];
  schedule?: ModelGanttSchedule;
  presentationRole: ModelPresentationRole;
}

SearchFieldDefinition

One closed searchable Field declaration and its permitted query operations.

Champ Options / valeurs attendues Description
fieldKey string Requis. Clé d’un Field déclaré sur la définition de Surface référencée.
operators readonly ("equals" | "contains" | "before" | "after" | "less-than" | "greater-than")[] Requis. Définit « operators » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
filterable boolean Requis. Autorise un filtre sur cette propriété dans le périmètre déclaré.
sortable boolean Requis. Autorise le tri de cette colonne lorsque la Query le permet.
facetable boolean Requis. Définit « facetable » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface SearchFieldDefinition {
  fieldKey: string;
  operators: readonly ('equals' | 'contains' | 'before' | 'after' | 'less-than' | 'greater-than')[];
  filterable: boolean;
  sortable: boolean;
  facetable: boolean;
}

SearchProjectionDefinition

Current-state search projection compiled into reconstructible indexes.

Champ Options / valeurs attendues Description
contract "SearchProjectionDefinition@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
workspaceRole "account-home" | "knowledge-workspace" | "work-workspace" Requis. Définit « workspace Role » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
surfaceDefinitionPaths readonly string[] 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é.
textTargets readonly ("title" | "content" | "description")[] Requis. Définit « text Targets » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
fields readonly SearchFieldDefinition[] Requis. Définitions ou sélections de valeurs typées dans le contexte parent.
defaultSort readonly { target: string; direction: "ascending" | "descending"; }[] Requis. Définit « default Sort » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface SearchProjectionDefinition {
  contract: 'SearchProjectionDefinition@1';
  key: string;
  workspaceRole: 'account-home' | 'knowledge-workspace' | 'work-workspace';
  surfaceDefinitionPaths: readonly string[];
  textTargets: readonly ('title' | 'description' | 'content')[];
  fields: readonly SearchFieldDefinition[];
  defaultSort: readonly {
    target: string;
    direction: 'ascending' | 'descending';
  }[];
}

CommentProfile

Comment graph declaration referencing Model-owned Surface and Link definitions.

Champ Options / valeurs attendues Description
contract "CommentProfile@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
threadSurfaceDefinitionPath string 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é.
commentSurfaceDefinitionPath string 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é.
targetLinkTypePath string Requis. Type de relation déclaré, avec sources, cibles et direction compatibles avec ce parcours.
replyLinkTypePath string Requis. Type de relation déclaré, avec sources, cibles et direction compatibles avec ce parcours.
mentionLinkTypePath string Requis. Type de relation déclaré, avec sources, cibles et direction compatibles avec ce parcours.
containsLinkTypePath string | undefined Facultatif. Type de relation déclaré, avec sources, cibles et direction compatibles avec ce parcours.
states readonly ("open" | "resolved")[] Requis. États reconnus par ce cycle de vie, référencés par leurs clés stables.
targets readonly ("selection" | "anchor" | "surface")[] Requis. Définit « targets » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface CommentProfile {
  contract: 'CommentProfile@1';
  key: string;
  threadSurfaceDefinitionPath: string;
  commentSurfaceDefinitionPath: string;
  targetLinkTypePath: string;
  replyLinkTypePath: string;
  mentionLinkTypePath: string;
  containsLinkTypePath?: string;
  states: readonly ('open' | 'resolved')[];
  targets: readonly ('surface' | 'anchor' | 'selection')[];
}

WorkspaceProjectionTextSource

One declared text source folded into a reconstructible Workspace Portfolio projection.

export type WorkspaceProjectionTextSource =
  | { kind: 'workspace'; target: 'title' | 'description' }
  | {
      kind: 'surface';
      definitionPath: string;
      target: 'title' | 'description' | 'content';
    };
type WorkspaceProjectionTextSource = { kind: "workspace"; target: "title" | "description"; } | { kind: "surface"; definitionPath: string; target: "title" | "description" | "content"; };

WorkspaceProjectionDimension

One typed dimension materialized from canonical Workspace or Surface state.

Champ Options / valeurs attendues Description
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
type "number" | "boolean" | "text" | "date" | "datetime" Requis. Définit « type » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
source { kind: "workspace"; field: "createdAt" | "lifecycleState" | "modelId" | "modelRevisionId" | "title" | "updatedAt"; } | { kind: "surface-field"; definitionPath: string; fieldKey: string; aggregate: "count" | "exists" | "first" | "maximum" | "minimum"; } | { kind: "link-exists"; linkTypePath: string; direction: "incoming" | "outgoing"; } Requis. Définit « source » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
operators readonly ("in" | "eq" | "lt" | "lte" | "gt" | "gte" | "exists" | "between")[] Requis. Définit « operators » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
filterable boolean Requis. Autorise un filtre sur cette propriété dans le périmètre déclaré.
sortable boolean Requis. Autorise le tri de cette colonne lorsque la Query le permet.
facetable boolean Requis. Définit « facetable » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
groupable boolean Requis. Définit « groupable » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
maximumFacetValues 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.
export interface WorkspaceProjectionDimension {
  key: string;
  type: 'boolean' | 'date' | 'datetime' | 'number' | 'text';
  source:
    | {
        kind: 'workspace';
        field:
          'createdAt' | 'lifecycleState' | 'modelId' | 'modelRevisionId' | 'title' | 'updatedAt';
      }
    | {
        kind: 'surface-field';
        definitionPath: string;
        fieldKey: string;
        aggregate: 'count' | 'exists' | 'first' | 'maximum' | 'minimum';
      }
    | {
        kind: 'link-exists';
        linkTypePath: string;
        direction: 'incoming' | 'outgoing';
      };
  operators: readonly ('eq' | 'in' | 'exists' | 'lt' | 'lte' | 'gt' | 'gte' | 'between')[];
  filterable: boolean;
  sortable: boolean;
  facetable: boolean;
  groupable: boolean;
  maximumFacetValues: number;
}

WorkspaceProjectionDefinition

Model-owned Workspace rollup projection used by Account Home Portfolio queries.

Champ Options / valeurs attendues Description
contract "WorkspaceProjectionDefinition@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
workspaceRole "knowledge-workspace" | "work-workspace" Requis. Définit « workspace Role » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
textSources readonly WorkspaceProjectionTextSource[] Requis. Définit « text Sources » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
dimensions readonly WorkspaceProjectionDimension[] Requis. Définit « dimensions » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
defaultSort readonly { dimension: string; direction: "ascending" | "descending"; }[] Requis. Définit « default Sort » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface WorkspaceProjectionDefinition {
  contract: 'WorkspaceProjectionDefinition@1';
  key: string;
  workspaceRole: 'knowledge-workspace' | 'work-workspace';
  textSources: readonly WorkspaceProjectionTextSource[];
  dimensions: readonly WorkspaceProjectionDimension[];
  defaultSort: readonly { dimension: string; direction: 'ascending' | 'descending' }[];
}

WorkspaceProjectionDimensionV2

Decimal dimensions retain authored format/unit and only source-defined first/minimum/maximum reductions.

export type WorkspaceProjectionDimensionV2 =
  | (WorkspaceProjectionDimensionV2Base & Pick<WorkspaceProjectionDimension, 'type' | 'source'>)
  | (WorkspaceProjectionDimensionV2Base & {
      readonly type: 'decimal';
      readonly numeric: {
        readonly precision: number;
        readonly scale: number;
        readonly unit: ManagedExactDataUnit;
      };
      readonly source: Omit<
        Extract<WorkspaceProjectionDimension['source'], { kind: 'surface-field' }>,
        'aggregate'
      > & {
        readonly aggregate: 'first' | 'maximum' | 'minimum';
      };
    });
type WorkspaceProjectionDimensionV2 = (WorkspaceProjectionDimensionV2Base & Pick<WorkspaceProjectionDimension, "type" | "source">) | (WorkspaceProjectionDimensionV2Base & { readonly type: "decimal"; readonly numeric: { readonly precision: number; readonly scale: number; readonly unit: ManagedExactDataUnit; }; readonly source: Omit<Extract<WorkspaceProjectionDimension["source"], { kind: "surface-field"; }>, "aggregate"> & { readonly aggregate: "first" | "maximum" | "minimum"; }; });

WorkspaceProjectionDefinitionV2

The new projection family keeps its original operators, capabilities and exact source coordinates.

Champ Options / valeurs attendues Description
contract "WorkspaceProjectionDefinition@2" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
dimensions readonly WorkspaceProjectionDimensionV2[] Requis. Définit « dimensions » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
defaultSort readonly { dimension: string; direction: "ascending" | "descending"; }[] Requis. Définit « default Sort » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
workspaceRole "knowledge-workspace" | "work-workspace" Requis. Définit « workspace Role » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
textSources readonly WorkspaceProjectionTextSource[] Requis. Définit « text Sources » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface WorkspaceProjectionDefinitionV2 extends Omit<
  WorkspaceProjectionDefinition,
  'contract' | 'dimensions'
> {
  readonly contract: 'WorkspaceProjectionDefinition@2';
  readonly dimensions: readonly WorkspaceProjectionDimensionV2[];
}

SemanticCommandOperation

Closed canonical operation selected by one Model semantic command.

export type SemanticCommandOperation =
  | { kind: 'surface.create'; surfaceDefinitionPath: string; parent: 'surface' | 'workspace' }
  | { kind: 'surface.move'; surfaceDefinitionPath: string }
  | { kind: 'link.create'; linkTypePath: string }
  | { kind: 'task.start'; taskActionKey: string };
type SemanticCommandOperation = { kind: "surface.create"; surfaceDefinitionPath: string; parent: "surface" | "workspace"; } | { kind: "surface.move"; surfaceDefinitionPath: string; } | { kind: "link.create"; linkTypePath: string; } | { kind: "task.start"; taskActionKey: string; };

SemanticCommandDefinition

Host-neutral command declaration compiled into canonical Change Set primitives.

Champ Options / valeurs attendues Description
contract "SemanticCommandDefinition@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
label string Requis. Libellé destiné à l’usager dans l’interface.
entityLabel string Requis. Définit « entity Label » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
icon "record" | "link" | "add" | "move" | "play" Requis. Icône du catalogue admis pour cette variante de présentation.
presentationRole "workmap.view" | "worknode.card" | "workmap.status" | "knowledge.explorer" | "account.dashboard" | "workspace.model-app" | "workspace.explorer" | "document.studio" | "knowledge.entry" | "surface.document" | "surface.canvas" | "surface.comments" | "workmap.editor" | "execution.status" | "flow.selector" | "action.confirmation" Requis. Définit « presentation Role » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
contexts readonly ("account-home" | "worknode" | "surface" | "workspace")[] Requis. Définit « contexts » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
requiredCapabilities readonly string[] Requis. Définit « required Capabilities » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
confirmation "never" | "required" Requis. Exige ou configure la revue de l’intention avant l’opération; ne remplace pas les droits.
operation SemanticCommandOperation Requis. Opération canonique exécutée après validation du contexte, des paramètres et des droits.
export interface SemanticCommandDefinition {
  contract: 'SemanticCommandDefinition@1';
  key: string;
  label: string;
  entityLabel: string;
  icon: 'add' | 'link' | 'move' | 'play' | 'record';
  presentationRole: ModelPresentationRole;
  contexts: readonly ('account-home' | 'surface' | 'worknode' | 'workspace')[];
  requiredCapabilities: readonly string[];
  confirmation: 'never' | 'required';
  operation: SemanticCommandOperation;
}

DocumentProfileV1

Document assembly and export policy consumed by the registered Document Studio.

Champ Options / valeurs attendues Description
contract "DocumentProfile@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
sourceSurfaceDefinitionPaths readonly string[] 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é.
template "article" | "report" | "manuscript" | "project-brief" Requis. Définit « template » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
sectionPolicy "ordered" | "grouped" Requis. Définit « section Policy » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
exportFormats readonly ("markdown" | "docx" | "pdf")[] Requis. Définit « export Formats » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface DocumentProfileV1 {
  contract: 'DocumentProfile@1';
  key: string;
  sourceSurfaceDefinitionPaths: readonly string[];
  template: 'article' | 'report' | 'manuscript' | 'project-brief';
  sectionPolicy: 'ordered' | 'grouped';
  exportFormats: readonly ('docx' | 'markdown' | 'pdf')[];
}

DocumentCompositionSection

One exact named-Query section with optional native historical proof coordinates.

Champ Options / valeurs attendues Description
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
parentSectionKey string | null Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
queryKey string Requis. Référence à une Query déclarée; le moteur de données applique le périmètre et les droits.
sourceParameterKey string Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
headingLevel number Requis. Définit « heading Level » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
orderBy readonly { fieldKey: string; direction: "ascending" | "descending"; }[] Requis. Ordre de tri déclaré; les clés doivent appartenir au périmètre autorisé.
historicalTraversal { pathIndex: number; stepIndex: number; } | null Requis. Définit « historical Traversal » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface DocumentCompositionSection {
  key: string;
  parentSectionKey: string | null;
  queryKey: string;
  sourceParameterKey: string;
  headingLevel: number;
  orderBy: readonly { fieldKey: string; direction: 'ascending' | 'descending' }[];
  historicalTraversal: { pathIndex: number; stepIndex: number } | null;
}

DocumentProfileV2

V6-only composition; published mono-Surface profiles remain byte-stable.

Champ Options / valeurs attendues Description
contract "DocumentProfile@2" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
composition { contract: "SurfaceDocumentComposition@1"; maximumSources: number; maximumEntries: number; maximumOutputBytes: number; historicalCapturePolicyKey: string | null; sections: readonly DocumentCompositionSection[]; } Requis. Organisation déclarative des composants, sources ou Spaces dans la variante indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
sourceSurfaceDefinitionPaths readonly string[] 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é.
template "article" | "report" | "manuscript" | "project-brief" Requis. Définit « template » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
sectionPolicy "ordered" | "grouped" Requis. Définit « section Policy » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
exportFormats readonly ("markdown" | "docx" | "pdf")[] Requis. Définit « export Formats » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface DocumentProfileV2 extends Omit<DocumentProfileV1, 'contract'> {
  contract: 'DocumentProfile@2';
  composition: {
    contract: 'SurfaceDocumentComposition@1';
    maximumSources: number;
    maximumEntries: number;
    maximumOutputBytes: number;
    historicalCapturePolicyKey: string | null;
    sections: readonly DocumentCompositionSection[];
  };
}

DocumentProfileV3

Collection format policy has its own origin and never invents a Surface subject.

Champ Options / valeurs attendues Description
contract "DocumentProfile@3" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
source { kind: "collection"; destinationKey: string; queryKey: string; viewKey: string; } | { kind: "home-section"; sectionKey: string; queryKey: string; viewKey: string; } | { kind: "record-query"; recordProfileKey: string; queryBindingKey: string; viewKey: string; } | { kind: "work-query"; experienceKey: string; sectionKey: string; bindingKey: string; viewKey: string; } Requis. Définit « source » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
exportFormats readonly ("markdown" | "pdf")[] Requis. Définit « export Formats » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
budget { maximumRows: number; maximumPages: number; maximumOutputBytes: number; } Requis. Définit « budget » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface DocumentProfileV3 {
  contract: 'DocumentProfile@3';
  key: string;
  source:
    | { kind: 'collection'; destinationKey: string; queryKey: string; viewKey: string }
    | { kind: 'home-section'; sectionKey: string; queryKey: string; viewKey: string }
    | { kind: 'record-query'; recordProfileKey: string; queryBindingKey: string; viewKey: string }
    | {
        kind: 'work-query';
        experienceKey: string;
        sectionKey: string;
        bindingKey: string;
        viewKey: string;
      };
  exportFormats: readonly ('markdown' | 'pdf')[];
  budget: { maximumRows: number; maximumPages: number; maximumOutputBytes: number };
}

DocumentProfile

Closed authoring versions of document format and composition policy.

export type DocumentProfile = DocumentProfileV1 | DocumentProfileV2 | DocumentProfileV3;

SurfaceViewKind

Closed Surface-level view kinds rendered only by application-owned renderers.

export type SurfaceViewKind =
  | 'cockpit'
  | 'editor'
  | 'structure'
  | 'flow-context'
  | 'board'
  | 'review'
  | 'history-compare'
  | 'relations'
  | 'evidence'
  | 'tasks-runs'
  | 'preview-export'
  | 'activity'
  | 'work-children';
type SurfaceViewKind = "relations" | "editor" | "review" | "activity" | "structure" | "cockpit" | "flow-context" | "board" | "history-compare" | "evidence" | "tasks-runs" | "preview-export" | "work-children";

SurfaceViewSourceDefinition

One bounded source set consumed by a registered Surface view renderer.

Champ Options / valeurs attendues Description
surfaceDefinitionPaths readonly string[] 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é.
linkTypePaths readonly string[] Requis. Définit « link Type Paths » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
maximumItems 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.
maximumDepth 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.
export interface SurfaceViewSourceDefinition {
  surfaceDefinitionPaths: readonly string[];
  linkTypePaths: readonly string[];
  maximumItems: number;
  maximumDepth: number;
}

SurfaceViewDefinition

Child collections are named by the Model and resolved by the existing parent-scoped query.

export type SurfaceViewDefinition =
  | LegacySurfaceViewDefinition
  | (Omit<LegacySurfaceViewDefinition, 'contract' | 'kind'> & {
      contract: 'SurfaceViewDefinition@2';
      kind: 'work-children';
      childViews: readonly { key: string; label: string }[];
      defaultChildViewKey: string;
    })
  | (Omit<LegacySurfaceViewDefinition, 'contract' | 'kind' | 'commandKeys'> & {
      contract: 'SurfaceViewDefinition@3';
      kind: 'evidence';
      commandKeys: readonly [];
      evidenceSources: {
        contract: 'SurfaceConsolidationSources@1';
        profileKeys: readonly string[];
      };
    });
type SurfaceViewDefinition = LegacySurfaceViewDefinition | (Omit<LegacySurfaceViewDefinition, "contract" | "kind"> & { contract: "SurfaceViewDefinition@2"; kind: "work-children"; childViews: readonly { key: string; label: string; }[]; defaultChildViewKey: string; }) | (Omit<LegacySurfaceViewDefinition, "contract" | "kind" | "commandKeys"> & { contract: "SurfaceViewDefinition@3"; kind: "evidence"; commandKeys: readonly []; evidenceSources: { contract: "SurfaceConsolidationSources@1"; profileKeys: readonly string[]; }; });

SurfaceViewDefinitionV4

Work experience views are admitted only by Source10, never by the historical view union.

export type SurfaceViewDefinitionV4 = Omit<
  LegacySurfaceViewDefinition,
  'contract' | 'kind' | 'commandKeys'
> & {
  contract: 'SurfaceViewDefinition@4';
  kind: 'work-experience';
  experienceKey: string;
  commandKeys: readonly [];
};
type SurfaceViewDefinitionV4 = Omit<LegacySurfaceViewDefinition, "contract" | "kind" | "commandKeys"> & { contract: "SurfaceViewDefinition@4"; kind: "work-experience"; experienceKey: string; commandKeys: readonly []; };

WorkExperienceSurfaceViewDefinition

New source family selects this union explicitly; Source5–9 still use views1–3.

export type WorkExperienceSurfaceViewDefinition = SurfaceViewDefinition | SurfaceViewDefinitionV4;

SurfaceViewProfile

Ordered Surface view composition attached to exact Model Surface definitions.

Champ Options / valeurs attendues Description
contract "SurfaceViewProfile@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
surfaceDefinitionPaths readonly string[] 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é.
defaultViewKey string Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
viewKeys readonly string[] Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
export interface SurfaceViewProfile {
  contract: 'SurfaceViewProfile@1';
  key: string;
  surfaceDefinitionPaths: readonly string[];
  defaultViewKey: string;
  viewKeys: readonly string[];
}

ActionVariantDefinition

One user-facing action variant backed by an existing canonical semantic command.

Champ Options / valeurs attendues Description
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
label string Requis. Libellé destiné à l’usager dans l’interface.
commandKey string Requis. Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité.
export interface ActionVariantDefinition {
  key: string;
  label: string;
  commandKey: string;
}

ActionGroupDefinition

Ordered business action group rendered consistently by MCP and the Surface UX.

Champ Options / valeurs attendues Description
contract "ActionGroupDefinition@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
label string Requis. Libellé destiné à l’usager dans l’interface.
target "worknode" | "surface" | "workspace" Requis. Définit « target » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
variants readonly ActionVariantDefinition[] Requis. Définit « variants » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface ActionGroupDefinition {
  contract: 'ActionGroupDefinition@1';
  key: string;
  label: string;
  target: 'surface' | 'worknode' | 'workspace';
  variants: readonly ActionVariantDefinition[];
}

DataProtectionProfile

Explicit protection and disclosure policy for Model-declared Surface definitions.

Champ Options / valeurs attendues Description
contract "DataProtectionProfile@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
key string Requis. Identifiant sémantique stable utilisé par les références; le modifier change l’identité.
surfaceDefinitionPaths readonly string[] 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é.
classification "confidential" | "internal" | "public" Requis. Classe de sensibilité utilisée pour appliquer les politiques de divulgation.
search "allowed" | "denied" Requis. Politique ou configuration de recherche selon le contexte parent.
aiDisclosure "allowed" | "denied" Requis. Politique d’exposition du contenu au contexte AI.
export "allowed" | "denied" Requis. Politique d’export des contenus concernés.
export interface DataProtectionProfile {
  contract: 'DataProtectionProfile@1';
  key: string;
  surfaceDefinitionPaths: readonly string[];
  classification: 'confidential' | 'internal' | 'public';
  search: 'allowed' | 'denied';
  aiDisclosure: 'allowed' | 'denied';
  export: 'allowed' | 'denied';
}

ProductVocabulary

Product terms shared verbatim by the UX, MCP tools, and System Knowledge.

Champ Options / valeurs attendues Description
contract "ProductVocabulary@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
controlCenter string Requis. Définit « control Center » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
overview string Requis. Définit « overview » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
actionRequired string Requis. Définit « action Required » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
portfolio string Requis. Définit « portfolio » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
inbox string Requis. Définit « inbox » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
activity string Requis. Définit « activity » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
settings string Requis. Fields présentés dans le formulaire de paramètres de la fiche.
marketplace string Requis. Informations publiques utilisées pour présenter l’app dans le catalogue.
workspace string Requis. Définit « workspace » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
surface string Requis. Définit « surface » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
export interface ProductVocabulary {
  contract: 'ProductVocabulary@1';
  controlCenter: string;
  overview: string;
  actionRequired: string;
  portfolio: string;
  inbox: string;
  activity: string;
  settings: string;
  marketplace: string;
  workspace: string;
  surface: string;
}

MarketplaceListingDefinition

Public catalogue metadata published with an immutable Model Revision.

Champ Options / valeurs attendues Description
contract "MarketplaceListingDefinition@1" Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée.
slug string Requis. Définit « slug » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
title string Requis. Titre de l’objet ou de la section dans l’interface.
summary string Requis. Définit « summary » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
publisher string Requis. Définit « publisher » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
category "knowledge" | "project" | "writing" | "universal" Requis. Définit « category » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options.
tags readonly string[] Requis. Classification ou configuration de présentation des tags autorisés.
visibility "public" | "included" Requis. Détermine la catégorie ou visibilité de présentation selon les valeurs de cette variante.
export interface MarketplaceListingDefinition {
  contract: 'MarketplaceListingDefinition@1';
  slug: string;
  title: string;
  summary: string;
  publisher: string;
  category: 'knowledge' | 'project' | 'writing' | 'universal';
  tags: readonly string[];
  visibility: 'included' | 'public';
}

Toutes les références

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.

{
  "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.

{
  "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
DISPOSITION ILLUSTRATIVEApp Clients / Soumissions
SurfaceClients / Atelier NordExemple
ModelApplicationProfiles · typesAssembler une définition cohérente
Clients
01Clients · Data

Fiches et informations de référence

02Références · Knowledge

Tarifs, procédure et sources

03Préparation · Work

Étapes, décisions et résultats

04Soumissions · Product

Livrable durable et ses révisions

Recherchez un concept, un champ ou une action.Esc