WorkspaceModelFoundation · types
Interfaces, valeurs et contrats nommés de WorkspaceModelFoundation.
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.
SurfaceContextPolicyV4
Only a certified Task birth can supply these captured reference addresses at runtime.
export type SurfaceContextPolicyV4 = z.infer<typeof surfaceContextPolicyV4Schema>;
SurfaceFlowReferenceContextSource
No Task, Result or reference identity is fabricated by this passive declaration.
export type SurfaceFlowReferenceContextSource = z.infer<
typeof surfaceFlowReferenceContextSourceSchema
>;
ExactDataWorkspaceForm
Parsed Form metadata produced by the shared complete Foundation grammar.
export type ExactDataWorkspaceForm = z.infer<typeof exactDataWorkspaceFormSchema>;
WorkspaceModelFoundation
The only admitted Foundation contains the complete current application program.
export type WorkspaceModelFoundation = z.infer<typeof workspaceModelFoundationSchema>;
SurfaceTriggerEvidenceDeclaration
Trigger evidence remains separated by actual revision/deadline provenance.
export type SurfaceTriggerEvidenceDeclaration =
| NonNullable<WorkspaceModelFoundation['triggers'][number]['attention']>
| NonNullable<WorkspaceModelFoundation['triggers'][number]['deadlineAttention']>;
type SurfaceTriggerEvidenceDeclaration = { contract: "SurfaceTriggerAttention@1"; policyKey: string; spaceKey: string; manifestDefinitionPath: string; attentionDefinitionPath: string; proposalDefinitionPath: string; consolidationProfileKey: string; querySourceParameterKey: string; sourceLinkTypePath: string; freshnessFieldKey: string; metadataFields: { policyKey: string; triggerKey: string; targetId: string; targetRevisionId: string; sourceId: string; sourceRevisionId: string; eventSequence: string; }; title: string; maximumPages: number; maximumOutputBytes: number; } | { maximumOutputBytes: number; title: string; spaceKey: string; policyKey: string; manifestDefinitionPath: string; attentionDefinitionPath: string; proposalDefinitionPath: string; consolidationProfileKey: string; sourceLinkTypePath: string; freshnessFieldKey: string; contract: "SurfaceTriggerDeadlineAttention@2"; target: "source"; metadataFields: { policyKey: string; triggerKey: string; targetId: string; targetRevisionId: string; sourceId: string; sourceRevisionId: string; deadlineAt: string; occurrenceId: string; }; };
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.
- Clients · Data
- Références · Knowledge
- Préparation · Work
- Soumissions · Product
Fiches et informations de référence
Tarifs, procédure et sources
Étapes, décisions et résultats
Livrable durable et ses révisions