Security overview — written to be forwarded

Built so your IT team says yes.

The short version, for the business reader DataAssist-IO lets your team ask questions of your company data from Claude, ChatGPT, or any MCP client. Your data arrives one of three ways — you send it to us, we read your storage, or we query your warehouse or database directly — and it can read, never write. Anything you send us is stored encrypted in your organization's isolated workspace. Anything we read from your systems is read in place — read-only, never copied. Every question is logged for your admins. The rest of this page shows exactly how — no badges, no hand-waving. Forward it as-is to whoever needs to approve it.

read-only encrypted credentials every query logged org isolated

How your data is handled

Three ways in, three honest promises

Data you send us is stored — encrypted, in your organization's isolated workspace. Your own storage and your warehouse or database are never copied — read in place, read-only. We never blur those claims into one.

How DataAssist-IO handles the three ways your data arrives Three lanes. Top lane: files you send — uploads and scheduled file drops — travel once into your organization's isolated workspace, where they are stored encrypted behind a padlocked shield. Middle lane: your own cloud storage stays in your account — DataAssist-IO reads it in place, read-only, and only the answer travels back. Bottom lane: your warehouse or database stays where it is — a read-only query travels out and only the answer comes back, so nothing is ever copied. ① you send it — once stored encrypted Files you send uploads · scheduled drops Isolated workspace stored encrypted ② read from your storage stays in your account · read-only Your cloud storage buckets · catalogs ③ queried in place never copied · read-only Your warehouse or operational database DataAssist-IO reads in place — read-only never copied read-only encrypted credentials every query logged org isolated
① Files you send — uploads & scheduled drops — are stored encrypted in your organization's isolated workspace, deletable whenever you like. ② Your cloud storage and ③ your warehouse or database are read in place — read-only, never copied. See every way in →

Architecture

Every question passes a gate before it touches your data

This is the whole path, end to end. Every SQL statement is parsed and validated before execution — single SELECT-only statements, nothing else. Writes are rejected at the gate; they never reach your data.

The path from question to answer through the validation gate Four nodes left to right: your AI client sends a question over TLS to the DataAssist-IO MCP endpoint, which generates SQL and passes it to a validation gate. The gate allows SELECT statements through and rejects UPDATE, DELETE and DROP. The allowed query runs read-only against your data, and a dashed return line shows that only the answer travels back to your AI client. TLS question SQL SELECT only Your AI client Claude · ChatGPT · MCP DataAssist-IO app.dataassist.io/mcp turns questions into SQL Validation gate ✓ SELECT … ✗ UPDATE · DELETE · DROP checked before anything runs — writes never reach your data Your data read-only · in place only the answer travels back — never credentials, never a write
Credentials encrypted at rest (authenticated encryption) TLS + certificate checks on by default Read-only session at the engine itself where supported Document stores: read-only pipelines — write stages rejected

The blunt version

What we do. What we never do.

Screenshot this table for the approval thread — every line is a property of how the product is built.

What we do

  • Validate every query before it runs — SELECT-only; anything else is rejected at the gate.
  • Encrypt your connection credentials at rest (authenticated encryption), and use TLS with certificate checks by default for new connections.
  • Log every question — who asked, what they asked, and when — visible to your admins.
  • Isolate every organization, hard — storage, metadata, and credentials are scoped to your org, and deleting a table deletes its stored data.
  • Scope tables per team when you want it — each team sees exactly the tables you grant, nothing more.

What we never do

  • Never copy what we connect to — your cloud storage and your warehouse or database are read in place, every time.
  • Never take write access — read-only by construction, from the validation gate down to a read-only session at the engine itself, where supported.
  • Never train AI models on your data — it is used only to answer your organization's own questions.
  • Never share or sell your data — to anyone, for any reason.
  • Never claim a certification we don't hold — see the honest note further down.

Access control

Who can see what — and who decides

Access is enforced on the server for every request — the same rules apply whether someone asks from Claude, ChatGPT, or the app itself.

Table-level exposure in DataAssist-IO: you choose exactly what the AI sees An admin's table list in DataAssist-IO on the left shows four org tables — customers, orders, invoices and payroll — each with an exposure toggle. One by one the toggles for customers, orders and invoices slide on and fill green, and as each one flips, the matching table chip pops in on the right-hand panel labelled what your AI can see. The payroll toggle stays off and payroll never appears on the AI side — its slot on the right stays a dashed outline marked not exposed. Between the two panels sit the DataAssist-IO mark and an MCP badge. A note below reads: unexposed tables do not exist to the AI. DataAssist-IO MCP only what you expose your tables — you choose customers orders invoices payroll what your ai can see customers orders invoices payroll — not exposed Claude · ChatGPT · any MCP client unexposed tables don't exist to the AI
Nothing is visible to the AI until you expose it — table by table.

Two roles, clean split

Admins connect sources, choose which tables to expose, and manage people. Viewers ask questions. Role checks run server-side on every call.

Team-scoped tables

Put a viewer in a team and they see only the tables that team is granted — in their AI client and in the app. Sales sees sales data; finance sees finance data.

Email verification first

Nobody signs in until their address is verified — including users an admin adds by hand. An unverified account can't reach any data.

Login lockout

Five wrong passwords lock the account for 15 minutes — and emailed one-time sign-in codes are attempt-capped and rate-limited too. Brute force doesn't get a run-up.

AI clients connect through standard OAuth — each person signs in as themselves, tokens expire and rotate, and disabling a user cuts their access everywhere at once. No shared API keys to leak.

Audit

Every question logged — who, what, when

Every tool call an AI client makes is written to a structured audit trail with user attribution — who asked, what ran, when, and whether it succeeded — readable by your admins in the app, including the attempts that were rejected at the gate.

Every question asked through DataAssist-IO is logged automatically A teammate asks a question from an AI chat tool on the left. The question passes through DataAssist-IO in the centre, and a new entry slides into the Tool Calls log on the right — recording who asked, what, when, and a green check for success. New rows keep arriving as more questions are asked, and org admins can review them all. question logged automatically ? Your team asks via Claude · ChatGPT DataAssist-IO records every question Tool Calls who · what · when
One tool call, one row — logged automatically with user attribution. The specimen below shows what your admins actually read.
DataAssist-IO — Tool Calls (admin view)
WhenWhoQuestionToolStatus
09:14asha@yourco.com “Which invoices are overdue right now?” query_data✓ answered
09:16asha@yourco.com “Top 10 accounts by pipeline this quarter?” query_data✓ answered
09:23rohan@yourco.com UPDATE orders SET … — attempted write query_data✗ rejected
09:31marco@yourco.com “What tables can I query?” list_tables✓ answered

Rows above are illustrative — the real page shows your organization's actual calls, filterable by user. An org-level switch controls whether full question-and-answer payloads are also captured, for teams with stricter data-handling rules.

No compliance badges — on purpose.

We don't yet hold formal certifications, and we won't pretend otherwise with a row of borrowed badge icons.

Here is exactly what we do instead — everything on this page: SELECT-only validation, read-only connections, credentials encrypted at rest, TLS by default, hard per-org isolation, team-scoped tables, and a full audit log.

And you don't have to take our word for any of it: every claim above is verifiable in a free account — connect a throwaway source, try to make the AI write to it, and read the audit trail yourself.

Send this page to whoever needs to approve it

It's written to stand alone — no homepage context needed. Your reviewer can jump straight to the validation gate, the do/never table, and the audit log.

https://dataassist.io/security/

Click the link once to select it, copy, and paste it into the approval thread.

Security questions

The four questions IT asks first

Short answers here — the sections above carry the detail.

Can the AI change or delete anything in our database?
No — three layers say no. Every SQL statement is parsed and validated before execution — single SELECT-only statements, nothing else; a read-only session is set at the engine itself where the source supports it; and we recommend connecting with a read-only login you create, so even a bug on our side has nothing to escalate. Document stores run read-only pipelines — write stages are rejected.
Do you train AI models on our data, or share it with anyone?
No and no. Your data is used for exactly one thing: answering your organization's own questions. We never train models on it, never share it, never sell it. The AI models themselves (Claude, ChatGPT) see only the query results needed to answer the question that was asked.
Where does our data actually live?
Three honest answers, one per way in. ① Data you send us — uploads & scheduled file drops — is stored as columnar, analytics-ready tables in an open table format — encrypted, versioned on every refresh, isolated per organization — and deleting a table deletes its stored data. ② Your cloud storage stays in your account — we read what you point us at, in place. ③ Your warehouse or database is queried in place, read-only — never copied. The integrations page walks through all three ways in.
How can our IT team verify these claims?
In a free account, in about ten minutes. Sign up (30 free questions, no card), connect a throwaway source, then try to make the AI run an UPDATE or DROP — watch it get rejected at the gate, and see the rejected attempt appear in the audit log with the who, what, and when.
DataAssist-IO

Get the yes, then get the answers.

Forward this page to IT, connect a source, and ask your first question — your first 30 are on us.

Start free — 30 questions on us

30 free questions · no credit card · read-only access · ~10-minute setup

Read the setup guide  ·  See pricing