Data Privacy
Prompts and responses are often the most sensitive data in ANTS Platform. These controls decide who can read them, whether they are shown at all, what is sent in the first place and how long it is kept.
Who can read prompt and response content
Reading the text of prompts and responses needs the PII / raw-prompt content permission (pii:read). It covers trace and session input and output, observation bodies, and the flagged content behind AI Violations. The server enforces it, and content follows the same rules in the console, in exports and in the public API:
- Console: opening a trace or session needs the permission.
- Exports: exporting traces, observations, sessions, dataset items or dataset run items needs the permission in addition to data export access, because these exports always include prompts and responses. Downloading a completed export of that kind also needs the permission: anyone without it sees the download as restricted, and the download itself is refused, including from the emailed link. Changing, enabling or running a blob storage export also needs the permission, even for a destination that only receives scores. Exports without prompt content, such as scores and audit logs, do not need it. See Data Exports.
- Public API: the traces, observations and sessions endpoints follow the Trace input and output setting below. When a project hides prompt content, they return
nullforinputandoutput, as the console hides it.
Who holds it:
- Built-in roles with this permission: Owner and Security & Compliance.
- Exporting content needs both this permission and data export access. Owner is the only built-in role with both, so by default only Owners can export traces, observations, sessions and dataset items. Security & Compliance can read content but has no data export access. Department Admin and Cost Analyst have data export access but not this permission, so they can export tables without prompt content, such as scores, but not content.
- Other roles can still see trace lists, counts, costs and dashboards, but not the content.
- A custom role can grant or withhold it, but a custom role cannot hold both this permission and data export access (see separation of duties). Only an Owner can export content, and there is no organization setting that changes this.
- Traces and sessions published with a public link stay readable through that link.
See Members & Roles.
People who hold the permission see content as it was stored. Sensitive values such as card numbers are not masked by default; to keep them out, mask them in the SDK before they are sent (below). Default masking in displayed content is on the roadmap.
Content view audit
When content view auditing is on, ANTS Platform writes an audit log entry each time a signed-in person opens a trace or a session and its prompt and response content is shown. The entry records who opened it, which trace or session, the project, and when. Use it to answer "who read this person's prompts?" during an investigation.
Content view auditing is off by default. Your ANTS deployment must have content view auditing turned on; ask your ANTS administrator.
- One entry per window. Opening a trace makes several requests, and people reopen the same trace while they work, so ANTS Platform writes one entry per person per trace or session in any 5 minutes.
- Only when content is shown. No entry is written when someone is refused for lack of the content permission, when an anonymous visitor opens a publicly shared trace, or when the project hides trace input and output, because no content was shown.
- Fails closed. If the audit entry cannot be written, the trace or session does not open, so content is never shown without a record.
- What is not recorded. Only opening a trace or a session is recorded. The short input and output previews in list tables are not, and reads through the public API are not audited.
To review content access, go to the Audit Logs page in Organization Settings and turn on Content views only. The list keeps your usual project visibility rules, and an audit log export includes the same entries. See Audit Logs.
Hide trace input and output
An organization can hide prompt and response content for everyone, whatever their role.
Go to Organization Settings → Features → Feature visibility and use the Trace input and output switch. It is on by default. Changing it needs tenantSecurity.features:admin (Owner and Security & Compliance among the built-in roles).
- Off hides trace and observation input and output across the app, leaves it out of exports, and returns
nullinput and output in public API responses for traces, observations and sessions. - While the switch is on, a list of projects appears under it (On in X of Y projects). Turn a project off to hide content in that project only.
- The data is still stored. Hiding controls what people see, not what is collected. To stop content from being collected, mask it in the SDK.
Mask data before it is sent
The Python SDK accepts a mask function. It runs on the input, output and metadata of every span and generation before anything leaves your application. Whatever it returns is what ANTS Platform stores.
To find or block sensitive data in traffic you already send, use PII Detection and Security Guardrails. For the Discover AI agents, see Discover AI: Data & Privacy.
Encryption
- Stored credentials are encrypted at rest with AES-256-GCM, using the deployment's
ENCRYPTION_KEY. This covers LLM connection keys, SSO client secrets, integration credentials (Slack, Jira, Linear, PagerDuty, ServiceNow, PostHog, blob storage, webhooks), Budget AI provider secrets, and directory and connector credentials. - API key secrets are stored only as hashes. The full secret key is shown once, when the key is created.
- Data in transit and trace data at rest are encrypted by the infrastructure the platform is deployed on (TLS at the load balancer, and the encryption settings of the databases and object storage).
Retention and deletion
Set how long data is kept under Organization Settings → Data Retention. A nightly job deletes traces, observations, scores, prompt and response payloads, media and Discover AI activity older than the period. See Data Retention.
Where data is stored
Data is stored in the region and accounts where your ANTS Platform deployment runs. Residency is decided when the deployment is set up, not in the product. Contact your ANTS Platform team to confirm the region for your tenant, or self-host to keep data in your own cloud account.