workspaceNavigationMetrics
Propriétés, variantes, types et limites de workspaceNavigationMetrics.
Cette référence décrit la structure complète de workspaceNavigationMetrics. Chaque chemin représente une propriété, y compris les objets imbriqués, les éléments de listes et les branches conditionnelles. Une branche identifiée par kind, contract ou mode n’admet que ses propres propriétés.
Structure et valeurs
| Champ | Options / valeurs attendues | Description |
|---|---|---|
contract |
"WorkspaceNavigationMetrics@1" |
Requis. Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée. |
items |
Array<closed object>; max length 40 |
Requis. Définit « items » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
items[].destinationKey |
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é. |
items[].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. |
items[].kind |
"query-total" |
Requis. Sélectionne la variante et les propriétés admises dans cette branche. |
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.
{
"contract": "WorkspaceNavigationMetrics@1",
"items": [
{
"destinationKey": "manuscript",
"queryKey": "chapters",
"kind": "query-total"
},
{
"destinationKey": "characters",
"queryKey": "characters",
"kind": "query-total"
},
{
"destinationKey": "places",
"queryKey": "record-place-roots",
"kind": "query-total"
},
{
"destinationKey": "knowledge",
"queryKey": "knowledge",
"kind": "query-total"
},
{
"destinationKey": "workshop",
"queryKey": "workshop",
"kind": "query-total"
}
]
}
Références associées
Index complet du Model · Construire un Model
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
Objet du contrat workspaceNavigationMetrics. Propriétés et valeurs admises.
{
"contract": "WorkspaceNavigationMetrics@1",
"items": [
{
"destinationKey": "manuscript",
"queryKey": "chapters",
"kind": "query-total"
},
{
"destinationKey": "characters",
"queryKey": "characters",
"kind": "query-total"
},
{
"destinationKey": "places",
"queryKey": "record-place-roots",
"kind": "query-total"
},
{
"destinationKey": "knowledge",
"queryKey": "knowledge",
"kind": "query-total"
},
{
"destinationKey": "workshop",
"queryKey": "workshop",
"kind": "query-total"
}
]
}
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.
- Clients · Data
- Références · Knowledge
- Préparation · Work
- Soumissions · Product
items- 5 éléments
Les valeurs ci-dessus reprennent le fragment de configuration; les références se résolvent dans le Model complet.