Catalogue des filtres
◆ Ingénieur IALes filtres permettent à l’utilisateur de restreindre les données affichées dans
un dashboard. Huit types existent. Tous partagent un socle de champs communs et
un même principe : une valeur neutre (« All » / « Tous ») ne doit appliquer
aucune condition — le front envoie [] et l’API remplace par 1=1.
Champs communs
Requis pour tous les types :
Champ |
Rôle |
|---|---|
|
Identifiant unique (chaîne de chiffres). |
|
Colonne ciblée par la condition. |
|
Libellé affiché. |
|
Un des huit types ci-dessous. |
|
Dictionnaire des valeurs / requête d’options. |
|
Table source des options. |
Optionnels (valeurs par défaut indiquées) :
Champ |
Défaut |
Rôle |
|---|---|---|
|
|
Base de données (postgre / mongo). |
|
— |
Requête personnalisée de chargement des options (sinon construite depuis table/field/<FILTER>). |
|
|
Si true, condition |
|
|
Bloque les requêtes des charts si ce filtre est vide. |
|
— |
Champs multiples de la condition et connecteur (AND / OR). |
|
— |
Dépendances hiérarchiques entre filtres (parent → enfant). |
|
— |
Le chargement des options tient compte des autres filtres actifs. |
|
— |
Texte d’aide en Markdown affiché via une icône info (assaini côté front). |
Note
Le champ helpMarkdown est un contrat de configuration/UI, pas un paramètre
SQL. Absent, null ou vide → aucune icône d’aide. Le type hidden
n’affiche jamais d’icône.
Les huit types
select
Liste déroulante à sélection unique. Côté API : field = 'value' ou 1=1 si
valeur neutre. Marketplace récent : pas d’entrée « Tous » dans la liste ; une
première option peut être appliquée par défaut.
Rendu du filtre select.
selectWithSearch
Liste déroulante à sélection unique avec champ de recherche (debounce 150 ms,
filtrage côté client, pagination « + N autres… »). Comportement SQL identique à
select.
Rendu du filtre selectWithSearch.
multi
Sélection multiple au niveau du schéma et de l’API (plusieurs valeurs →
IN (...)). Le Marketplace ne rend pas de bloc dédié pour multi : l’UI
multiple est en pratique gérée par multi-basic.
Rendu du filtre multi.
multi-basic
Sélection multiple avec interface dédiée : chips, option « All » / « Tous »,
recherche avec support du ; pour ajouter plusieurs tokens, bouton clear. API :
plusieurs valeurs → IN (...) ; aucune ou « All » → 1=1. Le champ
values.value (array) peut définir des valeurs par défaut.
Rendu du filtre multi-basic.
date
Plage de dates (start / end). API : field >= 'start' AND field <= 'end'.
Marketplace : mat-date-range-input avec reset et picker. Les options ne sont
pas rechargées par l’API.
Rendu du filtre date.
embeddings-search
Type défini au schéma pour une recherche par embeddings. Aucune branche dédiée
dans generate_condition : traité comme un filtre valeur classique (égalité /
IN). Aucun template Marketplace ne le rend explicitement.
Rendu du filtre embeddings-search.
llmdocuments
Recherche sémantique / RAG : le texte saisi est transformé en vecteur, et la
condition générée est un ORDER BY par similarité (field <=> 'vector'), pas
une clause WHERE. Marketplace : barre de recherche (input + Enter) ; valeur vide →
pas de filtre.
Rendu du filtre llmdocuments.
Exemple complet
- filterId: "71"
field: metier
label: Métiers
type: selectWithSearch
table: table_result
values:
query: "SELECT DISTINCT metier AS value FROM <project_id> WHERE <FILTER>"
helpMarkdown: |
**Définition :**
Liste des métiers rattachés au périmètre sélectionné.
Dépendances hiérarchiques
Un filtre enfant peut dépendre d’un ou plusieurs parents via filterParents et
requiredParents : tant que les parents requis ne sont pas renseignés, l’enfant
reste inactif. Le chargement des options de l’enfant injecte alors les valeurs des
parents dans son <FILTER>.
- filterId: "4"
field: brandref
label: Marque
type: multi-basic
table: products
- filterId: "5"
field: nameref
label: Produit
type: multi-basic
table: products
filterParents: ["4"]
requiredParents: ["4"]