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.
Modes single et search
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' }
Un filtre $currentUser rend la page authentifiée. Le résoudre sans session renvoie 401 Unauthorized — ce qui est distinct de la barrière access de la page, laquelle redirige ou renvoie 404. Une section de layout.sidebar rencontrant la même condition est abandonnée silencieusement plutôt que de faire échouer la page.
Pages connexes
- Présentation des pages — le tableau complet des propriétés de page.
- Composants de données — les composants qui consomment une source.
- Sources système — se lier à des points de terminaison plateforme par nom.
- Vues — filtres et tris enregistrés.
- Mises en page, barres latérales et accès — la barrière
access.
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.