Skip to main content
A model can be perfectly aligned and still be steered by what it retrieves. RAG Security (/rag-security) treats your retrieval corpus as an attack surface: it pulls the documents your application actually retrieves, scans them for poisoning and prompt-injection payloads, and lets you quarantine what it finds. A RAG corpus reuses the same scan spine as a dataset, so findings, severities, and the audit trail behave exactly as they do everywhere else in Data Security.

Sources

A corpus draws from one or more sources, and you can mix them.

Vector store providers

Credentials are encrypted at rest and are never returned by the API. Pass the connection secret as dsn or api_key; either way it is folded into the encrypted channel and stripped from the stored config.
1

Test the connection

POST /api/rag-corpus/test-connection validates a provider config before you save it. A bad provider or a malformed id is rejected at 422 rather than failing later during a scan.
2

Discover what is there

POST /api/rag-corpus/discover runs the authenticate-then-pick flow for providers that support it, so you choose an existing index rather than typing its name.
3

Add the source

Once added, the source can be re-tested at any time from the corpus detail page.

Scanning

POST /api/rag-corpus/{id}/scan queues a rag_scan, which runs three engines over the corpus: Only one rag_scan runs against a corpus at a time. Scans consume the same scan quota as the rest of the platform.

Quarantine, and the part people get wrong

Quarantining a document excludes it from Blindsight’s own reads. It does not, by itself, stop your application from retrieving it.
A vector store that ignores metadata on unfiltered queries, which includes Pinecone, still returns quarantined vectors to your application’s queries unless those queries carry the exclusion filter. Quarantining in Blindsight and changing nothing in your retrieval path leaves the poisoned document reachable.
This is why every corpus exposes a filter contract:
It returns, per write-capable vector-store source, the exact filter your queries need and a copy-paste retrieval snippet. If a source cannot enforce quarantine at all, the contract says enforceable: false and explains why, rather than leaving you with a false sense of containment.
1

Quarantine the document

POST /api/rag-corpus/{id}/documents/{doc}/quarantine. Reverse it with the matching unquarantine route.
2

Read the filter contract

Pull the contract for the corpus and check enforceable for every vector-store source.
3

Apply the filter in your retrieval path

Paste the snippet into the query your application actually runs. Until this is done, quarantine is advisory.

API

Tenancy and access reuse the dataset rules: a corpus is resolved through its backing dataset, so whoever can see the dataset can see the corpus.

See also

Engines

What poisoning, text analysis, and drift each detect.

Runtime Security

Catching an injection at request time, after retrieval.