# Datasets

## What is a dataset?

A dataset is a table Vistazo read out of a file you uploaded. It might come from a CSV, a sheet of a
spreadsheet, a table in a PDF or a screenshot of a report. A widget can be wired to a dataset, charted
and refreshed like any other source.

Datasets are made when you attach a file in a chat or discussion. See
[Attachments](/docs/chat/attachments). Your agent can upload a file too.
Ask for a chart of the file you just attached and the built-in assistant finds its tables.

> Chart the monthly totals from that CSV

## Where can a dataset be read?

Datasets have no row under **Settings → Connections**, because they are your own files. The tools that
read them are always available, in two places:

- Vistazo's own MCP server, the one your agent connects to, so it can read your tables with no
  second sign-in
- dashboard charts, which can be wired to a dataset and refresh against it

The tools are listed in the [dataset tool reference](/docs/mcp-tools/datasets).

## Who can read a dataset?

Datasets belong to the workspace. The person who uploaded the file can always read its tables. So can
anyone who can read the chat or discussion it was posted in, and anyone who can view a dashboard
wired to one of its tables. A file your agent uploads belongs to no conversation, so its tables stay
yours alone until a dashboard uses them.

Wiring a table from a private chat into a shared dashboard gives that dashboard's viewers the table
and the file behind it.

## How large can a dataset be?

| | Limit |
|---|---|
| Rows in one dataset | 100,000 |
| Size of one dataset | 25 MB |
| Sheets read from one `.xlsx` file | 20, and 100,000 rows across them |

A table over these limits is still read into the file's text, but no dataset is made from it. A
dataset counts against the uploader's storage. When storage runs short, the tables that don't fit
aren't saved as datasets. Free up space and upload the file again to get them.

## What happens when the file is deleted?

Deleting a file stops every read of its tables and gives the space back. Each dataset made from it is
marked deleted.

A chart wired to one of those tables keeps showing the rows it last loaded, so it doesn't go blank
at once. Its next refresh fails, and scheduled refreshes stop trying until the chart is pointed at new
data. In the chart's **Source** view it reads **Source file deleted**, with the name of whoever
deleted the file. Anyone who can edit the chart is offered **Fix with assistant** to point it at new
data.

A widget that shows the file itself, rather than a table from it, reads **Source removed**. See
[Attachments](/docs/chat/attachments).
