Skip to main content
Voir en Markdown

Liaison de données

dataSource lie une page ou un composant à une table. Les enregistrements résolus deviennent accessibles à tous les descendants via des références $record.<field>.

- type: data-table
  dataSource:
    table: tasks
    filter:
      - { field: status, operator: neq, value: archived }
    sort:
      - { field: created_at, direction: desc }
    pagination: { pageSize: 25, style: numbered }

Propriétés de dataSource

Propriété Description
table Obligatoire. Table à lier, validée contre app.tables.
fields Champs spécifiques à récupérer. Omettre pour tout récupérer.
mode list (défaut), single ou search.
filter Conditions { field, operator, value }, combinées par ET.
sort Règles { field, direction } appliquées dans l'ordre — primaire, puis secondaire.
pagination { pageSize, style }. pageSize est obligatoire dès que le bloc est présent.
param Paramètre de route d'où résoudre l'enregistrement, en mode single.
searchFields Champs interrogés en mode search. Au moins un.
searchEngine client, fts, trigram ou hybrid.
debounceMs Délai avant le déclenchement d'une requête de recherche.
limit Plafond du nombre d'enregistrements renvoyés.
targetId Nomme cette source afin qu'un autre composant puisse s'y lier.
bindTo Lit une source nommée par le targetId d'un autre composant au lieu de faire sa propre requête.
sharedFilter Filtre apporté à la source partagée référencée par bindTo.
refreshMode none (défaut), poll ou realtime.
pollIntervalMs Intervalle d'interrogation en millisecondes quand refreshMode: poll — entre 1000 et 300000.

Un composant peut se lier à un point de terminaison plateforme plutôt qu'à une table avec dataSource: { system: { endpoint: … } }, ou à une entrée nommée du catalogue de sources système.

Opérateurs de filtre

Opérateur Correspond à
eq / neq Égal / différent.
gt / gte Supérieur / supérieur ou égal.
lt / lte Inférieur / inférieur ou égal.
contains Correspondance de sous-chaîne.
in La valeur figure dans un tableau — utilisé avec les listes $currentUser.

Les conditions se combinent par ET. Il n'y a pas de OU à ce niveau ; exprimez les alternatives via une vue enregistrée ou un composant distinct.

mode: single résout exactement un enregistrement, lu depuis le paramètre de route nommé par param — le mécanisme derrière les routes de détail.

mode: search filtre sur searchFields au fil de la saisie, limité par debounceMs et plafonné par limit :

- type: list
  dataSource:
    table: articles
    mode: search
    searchFields: [title, summary]
    searchEngine: fts
    debounceMs: 250
    limit: 20

Pagination

style Rend
numbered Une navigation numérotée par pages.
loadMore Un bouton Charger plus ajoutant la page suivante.
infinite Un chargement automatique au défilement.

Familles de références

Les valeurs de content et de props résolvent quatre familles de références au moment du rendu :

Référence Se résout en
$record.<field> Un champ de l'enregistrement courant de la source de données.
$vars.<key> Une variable à portée de page déclarée dans les vars de la page.
$currentUser.<path> Le contexte de session — voir ci-dessous.
$t:<key> Une clé de traduction, avec repli sur la clé elle-même en l'absence de traduction.

Une page rendue depuis markdown expose en plus $frontmatter.*.

Cadrage par utilisateur courant

$currentUser se résout à chaque requête durant le SSR et n'est jamais mis en cache entre utilisateurs.

Chemin Valeur
$currentUser.id L'identifiant de l'utilisateur connecté.
$currentUser.email Son adresse e-mail.
$currentUser.role Son nom de rôle.
$currentUser.isUnrestricted true pour un administrateur global, qui contourne le cadrage par affectation.
$currentUser.assignments.<table> Les identifiants d'enregistrements auxquels l'utilisateur est affecté. À associer à in.
$currentUser.activeAssignment Le cadre actif du sélecteur de tenant, ou null.
- type: data-table
  dataSource:
    table: projects
    filter:
      - { field: id, operator: in, value: '$currentUser.assignments.projects' }

Pages connexes

Dernière mise à jour 27 juillet 2026

Cette documentation a été rédigée avec de l'IA : des erreurs ou du contenu obsolète sont donc possibles. Sovrium est en bêta — les contributions et corrections sont les bienvenues.

Construit avec Sovrium