Privacy and data masking

Scops AI sends only what a question needs, only to the endpoint that you set up, and masks your names and SQL values first.

What leaves the Scops server for the model You ask and read SALESPRD real names ask Scops server Reads what Scops collected its tools, your knowledge base Masks before it sends SALESPRD → DB-7Q2K 'ACTIVE' → '?s:3KQ7MZ' Puts the names back before you read the answer masked answer Your model the endpoint in use DB-7Q2K '?s:3KQ7MZ' reads the masked call

Where your data goes

  • The calls go only to the endpoint of the profile in use, from the Scops server, never from your browser.
  • With the AI assistant switch off, Scops sends nothing. With the AI switch of a database off, Scops sends nothing about that database alone.
  • On the Responses API, each call asks the provider not to store the response.

Your agreement with your provider controls what it does with the calls.

What a call carries

PartSent
Your question, the chat, what the tools read, and the matching parts of AI KnowledgeYes, masked. Numbers, times and Oracle names go as they are.
The instructions and tool descriptions of ScopsYes. They contain no data.
Bind values, the lowest and highest values of a column, the rows of your tablesNever. Scops does not read them.
Passwords, credentials and keysNever. The API key goes only to its endpoint.

Names become aliases

Scops replaces each name that it knows with an alias, such as DB-7Q2K for a database. This covers databases, instances, services, hosts, groups, users, client machines, people and IPv4 addresses.

A name gets the same alias in each call, and the answer shows the real names again. The aliases come from your repository key, so nobody can test a guess without the key.

Object, module and program names, Oracle schemas such as SYS, and names shorter than three characters stay as they are.

Values become placeholders

In statement text and plan predicates, Scops replaces each value and keeps its type. Bind variables, hints and identifiers stay.

SELECT order_id FROM orders
 WHERE status = 'ACTIVE' /* nightly run */
   AND region_id = 42

The same statement as the model reads it:

SELECT order_id FROM orders
 WHERE status = '?s:3KQ7MZ' /*?c:M2XA9T*/
   AND region_id = ?n:8PZD2H

Equal values get equal placeholders. The text of an error that your code raises, such as ORA-20001, also becomes a placeholder.

What is not masked

Masking does not understand sentences. It does not mask a name that Scops does not know, or a value in a sentence, such as an e-mail address.

Keep personal data out of questions and AI Knowledge documents. In a question, use the names that Scops knows.

What Scops keeps

Scops keeps these in plain text in its repository:

WhatWho can read it
AI Trace: each question, its steps, the reasoning summaries and the answerView AI Trace
Your last three chatsYou
Change cards and their results, and each click in the Audit TrailThe person who asked; View Audit Trail
AI Knowledge documentsView AI Knowledge
The log: profile changes, AI errors, certificate failuresManage Settings

Scops stores API keys encrypted. The log never contains them.

Updated October 29, 2026