Skip to content

Dashboards

A dashboard arranges cards on a 24-column grid, split into tabs if needed, and filtered together. Each card runs in Trino under the permissions of the person viewing it: two people with different permissions see different numbers on the same dashboard.

Edit opens a draft: nothing is visible to others until Save, and Cancel discards the changes. In it, you move and resize cards with the mouse, and add tabs, cards and filters.

LimitValue
Cards60
Tabs12
Filters16
CardContent
Questiona saved question, model or metric, with its visualization — or a different one, specific to the card
Titlea section heading
TextMarkdown; {{filter_id}} displays a filter’s value
Embedded pagea page from elsewhere, by its URL

Add a question searches the questions, models and metrics you can read; each one shows its folder. A question can also come from its own screen (Add to a dashboard) or from a suggestion by the copilot.

A card’s title opens its question. Its menu lets you refresh it, expand it to full screen, open the question, duplicate it, remove it — removing a card does not delete the question —, and move it:

  • To tab › sends it to another tab of the same dashboard;
  • To another dashboard… places it on another dashboard, in the chosen tab. Its links to filters stay behind: filters are not the same from one dashboard to another.

The open tab is part of the URL (?tab=…): a link opens the right tab, and the browser’s Back / Forward buttons move from one tab to another.

New question, in Add a question or in the dashboard’s … menu, opens the editor; when you save, the card is placed in the tab you started from and the dashboard reopens. This question belongs to the dashboard:

  • it does not appear in any folder or in search;
  • it takes the dashboard’s permissions (sharing the dashboard shares it too);
  • it is copied with the dashboard and deleted with it; removing its card archives it, putting the card back restores it;
  • Move…, in the editor, files it in a folder (it becomes a question like any other) or sends it to another dashboard.

Filter adds a filter to the dashboard. Five types:

TypeValueConnects to
Perioda predefined period (This month, Last 12 months…) or a specific onea date column
Categoryone or more values, chosen from the list of the column’s valuesa text, number or boolean column
Texta text, searched for in the columna text column
Numberequal to, between, at least, at mosta numeric column
Date granularityday, week, month… among those offereda grouped date column

Each filter has a label, an identifier ({{periode}}) and a default value (use the current value takes the one currently displayed). A category filter may or may not accept multiple values.

Configuring a filter. In edit mode, select a filter: a panel shows its type, its name, whether it accepts multiple values, its default value (use the current value) and how many cards it drives.

Connecting a filter to cards. Each card offers the column the filter restricts — a column of its table or of a related table — or, for a SQL question, one of its variables. Link all cards does it all at once: it lists the columns the cards have in common, with the number of cards that have each one, and suggests the one bearing the filter’s name. Unlink all removes the links. A card that is not connected ignores the filter.

A category filter’s list reads as in Qlik:

ColorWhat it is
Greenthe selected values
Whitethe possible values: the other filters leave them some rows
Gray, belowthe values excluded by the other filters

Each value shows its rows within the scope of the other filters (and its total), with a proportional bar; the filter’s header and chip show the share of rows the selection keeps (“74 %”). The values come from the data, read under your permissions; the colors and icons are the ones defined in Structure.

ActionEffect
Clickselects or deselects the value
Shift + clickselects the range from the last value clicked
Ctrl (⌘) + clickkeeps only this value
↑ ↓, Spacemove, select
Shift + ↑ ↓extend the selection
Ctrl + Aall possible values
Deleteno value
Enterclose

The All, Excluded (the grayed-out values), Invert and Clear buttons do the rest. Selections apply as you go; the list keeps the order it had when opened. Only filters set on the same table restrict the possible values.

Outside edit mode, clicking a bar, a slice or a point applies its value to the filter connected to that column: clicking the “Web” bar filters the whole dashboard on that channel.

  • Shift (or Ctrl, ⌘) + click adds the category to the selection, or removes it;
  • clicking the only selected category removes the filter;
  • on a period, Shift + click extends the period to the one clicked.

The chart the selection starts from is not restricted by it: it keeps all its categories, with the unselected ones faded, so you can add more. The other cards are filtered.

Each card is configured like a question: shape (including radar), palette, colors per series, highlighting, average, sorting, top N… — see Visualizations — and can extend its trend: see Forecasts.

  • Auto-refresh: the timer in the toolbar — never, every minute, every 5 or 15 minutes, or every hour; its gauge fills up until the next refresh.
  • Refresh reruns the cards, bypassing the cache. Cards stay on screen while they are recomputed: their marks slide to the new values, as when you change a filter.
  • Export to PDF: an A4 layout in the dashboard’s theme, with a cover page, applied filters and page numbers.
  • Full screen, for a wall display.
  • Duplicate, Add to favorites, Share (see Sharing).

Trino does not keep results: eodia insights does it for it. A card or question result is kept for a certain time, and the card then displays “result from …”.

The cache key is made of the compiled SQL and a fingerprint of the person’s permissions (their groups and attributes): two people with different permissions never share an entry. SQL editor queries are never cached, and any permission change clears the cache.

The retention time is decided from the most specific to the most general:

  1. the question’s (configurable through the API, field cache_ttl);
  2. the dashboard’s (Settings › Cache: no cache, 5 minutes, 1 hour, 24 hours, or the instance’s);
  3. the one of the sources read (the shortest, if several set one);
  4. the instance’s, in Administration › Settings: a fixed duration, or an adaptive duration, proportional to the time the query took (a 10-second query is kept about 17 minutes, between 1 minute and 24 hours);
  5. failing that, CACHE_TTL (300 seconds).

Results are kept in the PostgreSQL catalog, shared by all replicas, with a small in-memory cache in front. Clear cache, in Administration › Settings, forces the next queries to hit the sources again.

A dashboard marked Preloaded (in its Settings) is kept warm by the worker: every 15 minutes, it runs its cards with the filters’ default values, under its author’s permissions. People who have the same permissions as the author then find their results already ready; the others trigger their own queries, as usual.

eodia insights is free software by Eodia.