---
title: "WorkspaceRule · types"
url: https://developers.dagio.ai/fr/reference/types-workspace-rule/
---

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

## WorkspaceRule

Admitted complete Rule declaration using the shared scalar and typed expression grammar.

```typescript
export type WorkspaceRule = z.infer<typeof workspaceRuleSchema>;
```

## ModelRuleExpression

Expression syntax accepted by the complete Model Rule declaration.

```typescript
export type ModelRuleExpression = WorkspaceRule['expression'];
```

```typescript
type ModelRuleExpression = import("./WorkspaceModelFoundationDeclarations.js").ScalarModelRuleExpression | { kind: "exact-compare"; operator: "eq" | "ne" | "lt" | "lte" | "gt" | "gte"; left: import("./WorkspaceExactData.js").ManagedExactDataExpression; right: import("./WorkspaceExactData.js").ManagedExactDataExpression; } | { kind: "integer-compare"; schema: { kind: "integer"; minimum: string; maximum: string; unit: { kind: "dimensionless"; } | { kind: "unit"; key: string; } | { kind: "currency"; key: string; }; }; operator: "eq" | "ne" | "lt" | "lte" | "gt" | "gte"; left: { kind: "field"; field: { definitionPath: string; fieldKey: string; }; } | { kind: "literal"; value: string; }; right: { kind: "field"; field: { definitionPath: string; fieldKey: string; }; } | { kind: "literal"; value: string; }; } | { kind: "real-compare"; schema: { kind: "real"; representation: "binary64"; precisionBits: 53; minimum: number; maximum: number; tolerance: { absolute: number; relative: number; }; unit: { kind: "dimensionless"; } | { kind: "unit"; key: string; }; }; operator: "approximately-equal" | "not-approximately-equal"; left: { kind: "field"; field: { definitionPath: string; fieldKey: string; }; } | { kind: "literal"; value: number; }; right: { kind: "field"; field: { definitionPath: string; fieldKey: string; }; } | { kind: "literal"; value: number; }; };
```

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

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

## Exemples appliqués : Vérifier avant de confirmer

Une règle exige une entreprise; une autre interdit un montant négatif ou nul.

### Configuration

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

```json
{
  "contract": "WorkspaceRule@1",
  "key": "company-required",
  "label": "Entreprise renseignée",
  "expression": {
    "kind": "present",
    "field": {
      "definitionPath": "workspace/clients/surface/client",
      "fieldKey": "company"
    }
  }
}
```

### Variante et raccordement

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

```json
{
  "contract": "WorkspaceRule@1",
  "key": "positive-amount",
  "label": "Montant positif",
  "expression": {
    "kind": "compare",
    "field": {
      "definitionPath": "workspace/quotes/surface/quote",
      "fieldKey": "amount"
    },
    "operator": "gt",
    "value": 0
  }
}
```

### 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

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