PT EN
Back to site

DATTABI — User Guide

Preview — feature under development. Behavior, screens and contracts may change without notice between releases.

With DATTABI you build professional dashboards directly on top of the sources already connected to DATTA — graph, search indexes, relational databases, warehouses, files and streams — without exporting data and without depending on an external BI tool. Building a panel used to mean scattered data copies, a separate license and hours of rework every time a source changed. Here you assemble workspaces, dashboards, visuals and data preparation pipelines with Copilot speeding up every step, and share the result through a secure link or by publishing it to a workspace's panels. The whole interface and all messages are in Portuguese.

Open it from the DATTA BIDashboards menu.


When to use DATTABI

  • Operational or analytical dashboards with scheduled refresh.
  • Visual exploration of heterogeneous data (graph + warehouse + search indexes + files + streams) in a single panel.
  • Data transformation without writing SQL or DATTAX (through the visual preparation wizards) — or with advanced DATTAX, for complex logic.
  • AI-generated executive narrative, in PDF.
  • Live panels over Kafka, CDC, Neo4j CDC and OpenSearch polling.

DATTABI does not replace the operational flow chat, nor DATTA Extract for massive ELT loads — for that, use Extract with MATERIALIZE. DATTABI is the visualization and analysis layer.


Workspaces

A workspace groups dashboards, saved DATTAX queries and prepared datasets for a team or a project — each with its own access control.

  1. In the DATTABI sidebar, click + Workspace.
  2. Provide a name and a description in pt-BR.
  3. Done: dashboards created from then on are organized in that space.

Sharing a workspace

The workspace owner (or a platform administrator) controls who gets in:

  1. Hover over the workspace in the sidebar and click the share icon (user +).
  2. In the Compartilhamento dialog, enter the user's email, choose the role and click Compartilhar.
  3. To change the role of someone who already has access, use the Pode visualizar / Pode editar selector; to remove access, use the trash icon (with confirmation).

Whoever gets the Pode visualizar role sees the content but changes nothing in the workspace: dashboards, visuals, filters, bookmarks, themes, models, datasets and data refresh are write-blocked, and the platform answers with a friendly message ("Você não tem permissão…") to any attempt. Legacy shares, created before the role existed, still count as Pode editar.

Role changes take effect immediately on the screen itself, which invalidates the authorization cache right away; within up to 60 seconds on other open sessions. Whoever received the workspace through sharing — even with edit permission — does not manage the shares: only the owner or an administrator does.

Connection visibility inside the workspace follows the PRIVATE / WORKSPACE / PUBLIC model described in the connections guide.


Dashboards

Create

  1. With the workspace selected, click + Dashboard.
  2. Provide title, description and tags.
  3. The dashboard starts as a draft (DRAFT) — it does not appear to the workspace users until it is published — and already comes with the platform theme applied, including automatic light/dark mode.

Life cycle

A dashboard goes through three states: draft (DRAFT) → published (PUBLISHED) → archived (ARCHIVED).

  • Publishing makes the dashboard visible to the workspace and to whoever received a share.
  • Archiving hides it from the listings while preserving history. A nightly routine permanently deletes dashboards archived for more than 90 days.
  • Restoring a version: every save produces a version; the Histórico tab lists them all and lets you go back to any point.

Every transition generates an audit event (DASHBOARD.PUBLISH, DASHBOARD.ARCHIVE, DASHBOARD.RESTORE).

Visual types

VisualWhen to use it
Bar (bar)Comparison between categories
Line (line)Time series / trend
Area (area)Time series with emphasis on volume
Pie (pie)Distribution over few categories (up to 8)
Scatter (scatter)Correlation between two measures
Bubble (bubble)Scatter with a third dimension (size)
Heatmap (heatmap)Density matrix
Graph (graph)Result of a graph query (Neo4j/GDS)
Map (map)Georeferenced data (lat/lon)
KPI (big-number)A single highlighted number
Table (table)Tabular data with sorting and filtering

The complete catalog, with a live example of each visual, is in the visual gallery.

Each visual has its own source (a DATTAX script or a data preparation wizard), its own refresh policy, and reacts to the dashboard's global filters — which are injected as parameters into the DATTAX.

Editing and saving the layout

In edit mode, you arrange the canvas by dragging and resizing the cards. The arrangement (position and size of each card) is saved automatically on every drag, in the background, with a small 350 ms delay that groups successive movements — only the last arrangement is sent.

To write it right away and leave safely, click Salvar in the topbar (the button only appears in edit mode, with a dashboard open). The current arrangement is persisted immediately, without waiting for the delay: the button shows "Salvando..." while writing and, on completion, the green notice "Dashboard salvo." confirms it. On failure, the red notice "Não foi possível salvar o dashboard. Tente novamente." prompts a retry — and nothing is lost, the arrangement stays on the canvas. If no dashboard is open, the click just warns "Abra ou crie um dashboard antes de salvar.".

In phone mode, the same button writes the mobile layout, independently of the desktop one (see Mobile layout).

What the button saves. Only the layout arrangement (positions and sizes). Edits to DATTAX scripts, filters and visual configuration are saved by their own flows — which also produce a version. The manual save and the automatic one write the same field, with no conflict: the last one to arrive wins.

Permission. Saving a layout requires DATTABI_EDIT, checked on the server: without it, the operation is denied with 403 and an audit event. The button only appearing in edit mode is a visual hint — the real barrier is the backend.

Traceability. Every write (manual or automatic) captures a version with the reason "Atualizacao", so every save is traceable and restorable through the Histórico tab.

Step by step

  1. Open the dashboard and enter edit mode.
  2. Drag and resize the cards until you get the arrangement you want — the automatic save is already writing in the background.
  3. Click Salvar to write immediately and see the confirmation.
  4. To adjust the phone layout, enable Ver > Layout mobile (360x640) and save again.

Manual arrangement and Auto-arrange

Manual arrangement. When you drag or resize a card, the neighbors are never pushed — the moving card simply cannot be dropped on top of another. This makes it trivial to align two charts side by side on the same row.

Auto-arrange. In edit mode, the Auto-organizar button re-packs the cards into shelves, in reading order (top to bottom, left to right), with three usability guarantees:

  1. Minimum size per visual type — no card ends up smaller than its type's default (bar and line 6x4, table 8x5, KPI 3x3). Accidental shrinks are undone; enlargements you made are preserved.
  2. Filled rows — each shelf is expanded (round-robin, capped at 2x the width per card) until it occupies the 12 columns: no leftover space on the right, no lone KPI turning into a full-screen banner.
  3. Aligned heights — the cards on the same shelf receive the same height (the tallest in the row), aligning the bottom edges.

The result is persisted through the same path as dragging.


Preparing data

The preparation panel turns any source into a dataset ready to visualize — without depending on a data engineer for every adjustment. There are two modes.

Visual wizard

Triggered by the Preparar dados button on each visual. The wizard detects the source type of the selected connection and adapts the steps:

  • Relational table (JDBC) — schema picker → table → columns → steps (FILTER, SELECT, MUTATE, GROUP BY, JOIN LOOKUP).
  • Graph (Neo4j) — label picker → traversals → GDS algorithms (PageRank, Louvain and others).
  • Index (OpenSearch) — index picker → fields → filters, including vector search (KNN) and highlighting.
  • File (CSV/Parquet/JSON/TSV) — the schema is detected automatically; drop or rename columns at will.

Each step joins the Applied Steps list (Power Query style), which you can reorder, edit or remove. On every change the preview reloads — with a two-tier cache, the results appear in seconds.

Advanced mode (DATTAX)

The Modo avançado toggle at the top of the preparation panel shows the DATTAX generated by the steps — which you can edit freely. The script is saved as a preparation dataset and can feed any visual. See the DATTAX language reference.

Ask in Portuguese

The NL Prep field takes a natural-language request and generates the suggested DATTAX. Example:

"pegue a tabela vendas do warehouse, filtre ano 2025, agrupe por região e ordene decrescente pelo total"

Copilot uses the catalog context (available connections and schemas discovered automatically by cataloging) to generate the script — and you see the diff before applying it.

Data profile

The Perfil button generates a per-column statistical X-ray over a sample of up to 2,000 rows of the current pipeline:

  • Inferred type (numeric or text), null count and percentage, and distincts.
  • Numeric columns: minimum, maximum, mean, median and a 10-bucket histogram.
  • Text columns: most frequent values, with count and percentage.

The statistics are computed inside the platform, with no external service dependency. Requires the DATTABI_VIEW permission.

Import or query live

Each dataset has a load mode, switchable in the preparation panel's toolbar:

ModeBehaviorWhen to use it
Importar (IMPORT, default)The result is cached normallyStable sources; instant response in the visuals
Consulta direta (DIRECT_QUERY)The visuals re-query the source live, with a render cache of just 15 secondsSources (Trino, JDBC, OpenSearch) that change all the time and must always be fresh

The mode is persisted on the dataset itself (loadMode field).


Copilot

In the visual editor

While editing a visual, the Copilot bar accepts pt-BR requests such as "adiciona uma série que mostra a diferença percentual vs ano anterior" — and Copilot edits the visual's DATTAX inline.

On the published dashboard ("Perguntar ao dashboard")

In the topbar of a published dashboard, Copilot answers natural-language questions about the data already rendered. The context is assembled from the cached results and sent to the model, which can resolve additional computations by running DATTAX when needed.

Applied guards:

  • Access — on every request, before assembling the context, the platform checks whether you own the dashboard, received a share or presented a valid link token.
  • Usage limit — 20 requests per minute and 200 per hour, per user.
  • Privacy — the prompt instructs the model to refuse answers that would expose fields flagged as sensitive (pii=true) by cataloging.

Automatic refresh of the visuals

Define when each visual — or the whole dashboard — refreshes, through the Agendar refresh dialog:

ModeBehavior
ON_OPENRefreshes whenever the dashboard is opened
MANUALOnly refreshes when you click the refresh button
EVERY <duration>Refreshes every N (e.g. EVERY "5m")
CRON <expression>Quartz-style cron (e.g. CRON "0 0 8 * * *")
AFTER_MATERIALIZATIONFires when the materialized dataset updates

The scheduler uses virtual threads and a distributed coordination so that, even with several platform instances running, each execution happens exactly once. Render results are kept in a two-tier cache (memory + shared cache with TTL).

For refreshing materialized datasets (full or incremental, with history and rollback), see the refresh scheduler.


The sharing dialog creates access links to the dashboard:

  • Visibilityworkspace members only (the link works only for people who already have access through the sharing relationship) or password protected (an open link that requires the password you define, stored securely and never readable). By security decision, DATTABI dashboards do not offer an anonymous public link, even though the link model supports a signed token.
  • Expiration — optional, up to 90 days in the future.
  • Open limit — optional; the link stops working after N views.
  • Revocation — an administrator can revoke a link instantly, and the revocation is checked on every access.

The link opens a dedicated read-only page, with no topbar. Every access through a link generates an audit event (SHARE.VIEW).

Publishing to a workspace's panels

Under Compartilhar > Publicar no workspace, the dashboard becomes a panel of the chosen workspace. From then on it appears in SistemaWorkspacesPainéis and becomes automatically accessible to everyone with access to that workspace. In the workspace manager, published panels display the Dashboard BI seal and the Abrir dashboard button. See the panels guide.


Exporting

The export dialog generates reports ready to distribute:

  • PDF — with the option of an executive narrative generated by Copilot at the beginning of the document, in three styles (executiva, tecnica, storytelling), and a footer with page number and timestamp. The limit is 20 pages per export; beyond that the PDF comes out truncated, with a clear warning.
  • PNG — the image is rasterized in the browser itself and sent to the platform, which packages it.
  • CSV — a compressed file with one CSV per visual, correctly escaping line breaks and quotes. Limit of 100,000 rows per visual.

There is a limit of 5 exports per minute per user.


Versioning

Every change to a layout, DATTAX script or visual configuration creates a dashboard version:

  • The Histórico tab lists the versions with author, timestamp and the change delta.
  • Restoring applies the version to the current draft — it does not publish automatically.
  • Versions live in the graph, linked to the dashboard through the TEM_VERSAO relationship.

Live panels (streaming)

Panels fed by streaming DATTAX refresh themselves, without reloading the page.

Creating a stream panel

  1. Add a visual of type Stream.
  2. Write the DATTAX starting with FROM STREAM <KIND> "<connectionName>".
  3. End with |> STREAM OUTPUT.
  4. The panel opens a WebSocket channel with the platform (with SSE as a fallback) and shows the events arriving live, with pause and resume.

Supported sources

Before subscribing, the platform validates whether the source supports native streaming:

SituationSources
SupportedKAFKA, PULSAR, NEO4J_CDC, CDC (via Debezium), OPENSEARCH_POLL
Not supportedTRINO, IMPALA, BIGQUERY, SNOWFLAKE — the pt-BR message guides you to use MATERIALIZE ... AS ICEBERG periodically

Current limitations

  • JOIN between two streams — rejected. Only JOIN ... AS LOOKUP is available (enrichment through a reference query).
  • Replay buffer — the last 100 events are replayed on reconnection. For a full replay, consume with STARTING FROM EARLIEST when creating the subscription.
  • State — up to 10,000 open keys per subscription; beyond that, the state spills to the platform's cache (latency impact of about 5 ms).
  • Usage limit — 10 events per second per user (configurable).

Details in DATTAX — streaming and in the streaming runbook.

To cross sources by key (JOIN) in real time or in batch, use the custom DATTAX query in Quick creation, which accepts |> JOIN (...) ON ....


Quick creation

DATTA BI offers two paths for building a dashboard:

  1. Full modeling (preparation → data model → dataset → visual) — to treat the data before visualizing. Still available as always.
  2. Quick creation — to show data from a source already present on the platform, without the modeling step.

The Criação rápida button, on the dashboard bar, opens a dialog with two tabs. In a single step it creates a dataset (with the query already derived — it renders immediately), an automatic data model linked to that dataset (which stays first-class and refinable later in preparation) and a dashboard in your space, with a list visual (table).

"Fontes de dados" tab (multi-source)

Lists the platform's cataloged sources (Neo4j, OpenSearch, Trino, JDBC agents) and lets you merge several sources into a single panel. For each source you choose:

  • the type — Neo4j, OpenSearch, Trino, JDBC or Kafka (real time);
  • the resource — graph label, index, Trino catalog, JDBC agent or Kafka topic — and, when applicable, the table and the database/schema;
  • which fields to project (multi-selection), useful for aligning columns across sources with different schemas.

Use + Adicionar fonte to stack as many sources as you like. The merge is done by UNION by column name: the records from all sources are stacked, and columns missing in one source come out null.

When you pick a Kafka topic, the dialog warns that the source is real-time: in Quick creation, Kafka enters as a batch snapshot (the topic's latest messages), not as continuous live updates — for live, see Live panels. If the broker or the topic is unavailable, the panel shows an empty table instead of breaking.

"Consulta personalizada" tab

A text field for writing full DATTAX — joins, aggregations and filters that the multi-source interface does not model. The Validar button checks the syntax before creating. This is the route for crossing sources by key (JOIN) or aggregating; the sources tab only does UNION (stacks records).

Precedence and validation

Quick creation requires the DATTABI_EDIT permission. When more than one option is provided, the precedence is: custom query (up to 20,000 characters) > multi-source (UNION) > single source (the legacy path, kept for older clients). All source, table and field identifiers are validated before composing the query — names outside the safe pattern are rejected; and in Kafka's case the broker never comes from the request: the connection is resolved on the server.

Where the dashboard lives

The dashboard is born in your space (you are the owner). To distribute it, use sharing by link or publish it to a workspace's panels.


Advanced features

Statistical analysis with R

In Edit mode, the Análise R tab of the right panel runs an R script over a sample of the selected dataset:

  • The input data.frame arrives as .dattax_in; the final result must be .dattax_out (or the last expression, a data.frame).
  • The Pedir em pt-BR button generates the script through Copilot.
  • Executar runs the script in an isolated environment and returns the resulting data.frame.

Requires the DATTABI_R_EXECUTE permission. See the statistical analysis with R guide.

Generating a dashboard with AI

The Gerar com IA button, in the topbar, opens a dialog where you describe the panel in Portuguese and, optionally, select datasets from the workspace. Copilot proposes the charts as a preview and, on confirmation, creates and opens the finished dashboard — returning the dashboard identifier, the workspace, the opening address and a summary. Requires the DASHBOARD_WRITE permission.

Visual themes

In DATTA BITemas, the editor offers:

  • Visual tab — color pickers for the palette (primary, secondary, accent, background, text), chart series colors (with add and remove), fonts and live preview.
  • Advanced tab (JSON) — editing and importing the theme JSON (legacy path).

Existing themes can be edited through the Editar button on the card and set as the workspace default.

Mobile layout

Under the Ver > Layout mobile (360x640) menu, the canvas switches to a phone frame with a 4-column grid. The mobile layout is independent of the desktop one. The Copiar layout do desktop action seeds the mobile layout by stacking the visuals in a single column, in reading order — a starting point for adjustments. Save normally; the phone layout does not interfere with the desktop one.

Data lineage

The lineage graph includes Dashboard and Chart nodes, in addition to Dataset, Process and Column. The edges are written idempotently:

  • when saving a visual: (Dashboard)-[CONTAINS]->(Chart) and (Dataset)-[FEEDS]->(Chart);
  • when materializing in preparation: (materialized dataset)-[DERIVES_FROM]->(source).

The instrumentation is best-effort (fire-and-forget) and never breaks the save or materialize flow — you always know where each number came from, with no risk to the operation.


For consumption (rather than authoring), DATTABI offers two screens designed for people who just want to see the finished panels, with no risk of editing.

The Galeria entry, in the side menu inside the DATTA BI group, shows a grid of roughly 3.5-inch thumbnails of all BI dashboards, aggregating the workspaces in parallel.

Each card prioritizes the real screenshot of the dashboard: the browser itself rasterizes the already-rendered DOM — cards, tables, slicers, SVGs, conditional formatting and canvases come out exactly as on screen, no object is lost — after all objects have finished rendering (charts completed, fonts loaded, images decoded and some slack for the animations). The image is then downscaled with high quality to 3.4 inches of width (653 px at 192 dpi, with the physical density recorded in the PNG itself) and published. The synthetic rendering produced on the server is only the fallback while no screenshot has been published.

When the gallery receives a card that is still synthetic, it regenerates the screenshot in the background: a hidden frame loads the real dashboard, waits for the full rendering, photographs it, publishes it — and the card updates itself. To avoid overload, regeneration happens one dashboard at a time. Any change to a dashboard or a visual invalidates every variant of the thumbnail, and the next visit to the gallery triggers the recapture.

  • A search field by dashboard name or workspace name.
  • Loading, empty and error states in pt-BR, with a Tentar novamente button on error, without reloading the page.
  • Clicking a card opens the dashboard locked in view-only mode, without leaving the shell.

View-only mode

The dashboard accepts the ?mode=view (or ?viewer=1) parameters in the URL. In this mode:

  • The dashboard starts locked: the edit button gives way to the static Visualização pill; the action bar (Exportar, Salvar, Gerar com IA, Editar interações), the context menu and the model chip are hidden.
  • The left sidebar (dashboard list and fields) and the right panel (Properties, Preparation, Copilot) are hidden; the canvas takes the full width.
  • You keep interacting with the panel: top filters, cross-filter (clicking a visual filters the others) and drill-down and drill-up.

This is the mode used both by the Gallery and by the workspace's Painéis gallery (see workspaces) when opening a BI dashboard.

Viewing canvas panels without the builder

Canvas panels (assembled in the panel builder) have an embed mode (?embed=1) that renders the panel without any construction bar — used to open the panel in a clean view, without exposing the builder.

In the workspace's Painéis gallery, canvas panels do not appear (only BI, native and linked dashboards — see workspaces). There is currently no "publish canvas to the gallery" step.


Troubleshooting

SymptomWhat to do
Visual shows "Não foi possível carregar os dados"Click Tentar novamente; if it persists, check the source connection in the connections guide
Empty dashboard right after creating a connectionAutomatic cataloging is still running — the datasets appear in real time as soon as it finishes
Copilot answers that the usage limit was exceededWait a minute or ask the administrator for a higher limit
Truncated PDFReduce the number of visuals or export by pages
Live panel stays "no events"Check whether the source is publishing and consult the stream subscription's lag metrics — see the API reference

Every failure shows a clear message in Portuguese with a Tentar novamente option, and long operations keep running in the background, without freezing the screen. User actions are recorded in the platform's audit trail.


The endpoints used by this screen — workspaces and shares, dashboards and versions, export, share links, Copilot, Quick creation, datasets, thumbnails, data profiling, R execution, DATTAX validation, stream subscription and lineage — are cataloged in the API reference.