Vues
Les vues sont des configurations enregistrées et nommées décrivant comment les enregistrements d'une table sont filtrés, triés, regroupés et projetés. Ajoutez-les sous le tableau views d'une table. Une vue fonctionne dans l'un de deux modes : mode config JSON (filtres/tris/champs/regroupement déclaratifs) ou mode SQL (une query PostgreSQL brute).
Propriétés des vues
| Propriété | Description |
|---|---|
id |
Identifiant unique de la vue. |
name |
Nom lisible de la vue. |
isDefault |
Booléen. Lorsqu'il vaut true, la configuration de cette vue s'applique lorsqu'aucune vue spécifique n'est demandée. |
filters |
Conditions de filtre (mode config JSON). Voir ci-dessous. |
sorts |
Tableau de règles de tri { field, direction } (mode config JSON). direction vaut asc ou desc. |
fields |
Tableau de noms de champs à inclure, dans l'ordre d'affichage (mode config JSON). |
groupBy |
Configuration de regroupement { field, direction? } (mode config JSON). |
query |
SQL brut pour une VIEW PostgreSQL (mode SQL). Lorsqu'elle est définie, les propriétés de config JSON ne sont pas utilisées. |
materialized |
Booléen. Avec query, crée une MATERIALIZED VIEW qui met les résultats en cache. Mode SQL uniquement. |
refreshOnMigration |
Booléen. Avec materialized, rafraîchit la vue matérialisée lors des migrations. |
Mode config JSON
Déclaratif — filtrez, triez, regroupez et choisissez des colonnes sans écrire de SQL.
views:
- id: active_high_priority
name: Active — High Priority
isDefault: true
filters:
and:
- { field: status, operator: equals, value: active }
- { field: priority, operator: equals, value: high }
sorts:
- { field: created_at, direction: desc }
fields: [title, status, priority, assigned_to]
groupBy: { field: status, direction: asc }
Filtres
Un filtre est soit une condition unique { field, operator, value }, soit un groupe booléen combinant des conditions avec and / or (pouvant s'imbriquer) :
filters:
or:
- { field: priority, operator: equals, value: high }
- { field: priority, operator: equals, value: urgent }
Les opérateurs courants incluent equals, greaterThan, lessThan et des opérateurs de comparaison similaires. Voir Validation pour la façon dont les champs de filtre sont vérifiés par rapport à la table.
Mode SQL
Pour les rapports avancés, fournissez une query brute. Définissez materialized: true pour mettre les résultats en cache, et refreshOnMigration: true pour maintenir le cache à jour à travers les migrations de schéma.
views:
- id: monthly_revenue
name: Monthly Revenue
query: >
SELECT date_trunc('month', created_at) AS month, SUM(amount) AS revenue
FROM orders GROUP BY 1 ORDER BY 1
materialized: true
refreshOnMigration: true
Vue par défaut. Marquez exactement une vue par table avec isDefault: true pour contrôler quels enregistrements apparaissent lorsqu'un consommateur demande la table sans nommer de vue. Les identifiants de vue et la règle de vue par défaut unique sont validés au moment de la configuration.