Gapless

Data

The data an enterprise AI assistant reads, creates, and stores, where each kind lives, and the rules that govern it.

An AI assistant handles two very different kinds of data. It reads company knowledge that belongs to other systems, and it creates its own data: conversations, feedback, traces, and usage. The two have different owners, different lifecycles, and different legal rules. Mixing them up is how teams end up unable to answer "where is this person's data, and can we delete it?"

Data inventory

DataOriginOwnerWhere it livesSensitivity
Source documentsWiki, drives, HR systems, ticketingThe source systemSource system. Copies in object storageVaries, up to highly confidential
Chunks and embeddingsDerived from source documentsThe assistant, as a copySearch indexSame as the source document
Document ACLsSource systemsThe source systemCopied onto chunksReveals who can see what
User uploadsUsersThe userObject storage, search indexOften sensitive: contracts, CVs, financials
Conversations and messagesUsers and the assistantThe user, under company policyApp databaseHigh: users paste anything
FeedbackUsersThe companyApp databaseMedium, can include free text
Traces and logsThe systemThe companyObservability platformHigh if they contain prompts
Usage and cost recordsThe systemThe companyApp database, warehouseLow to medium
Evaluation datasetsCurated from the aboveThe AI teamRepository or dataset storeDepends on what was copied in
Audit eventsThe systemThe companyAppend-only storeMedium, must be tamper-resistant

Keep this table current for your system. Security reviews, privacy assessments, and customer questionnaires all start with it.

The design

Principles

  • Source systems stay the source of truth. The index is a copy for search. If a document is deleted or unshared at the source, the copy must follow. The assistant never becomes the place where a document survives after the owner removed it.
  • Derived data inherits sensitivity. A chunk of a confidential document is confidential. An embedding of it is too: embeddings can be partly inverted to recover text.
  • Collect the minimum. Do not store full prompts in logs by default. Do not keep conversations forever by default.
  • Every store has a retention rule and a deletion path. If you cannot delete from it, do not put personal data in it.
  • Copying into evaluation datasets is a decision, not a habit. It needs a reason, a review, and usually de-identification.

Pages in this section

PageCovers
Sources and connectorsPulling documents and permissions from source systems, and keeping them in sync
Pipelines and freshnessScheduling ingestion, freshness targets, monitoring, and backfills
Schema and lineageThe app database schema, and tracing any answer back to its sources
Retention and deletionHow long each kind of data is kept, and how deletion reaches every copy
Backups and recoveryWhat to back up, what to rebuild, and how to test it

On this page