> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Privacy and gaps

> What the Compliance API never returns, and what you get when a commonly requested field doesn't exist

## Privacy and sanitization guarantees

The API never returns the following under any scope:

* Secret values.
* Key hashes or raw keys.
* OAuth tokens, client secrets, and encryption keys.
* Entity records.
* Enum values, defaults, and descriptions from entity schemas.
* Backend function source.
* Agent instructions and tool configuration.
* Custom integration headers.
* End-user (app-user) identities.
* Message, chat, and conversation content.
* File contents.
* MFA factor values, meaning phone numbers, TOTP secrets, and hashed backup codes.
* Invitation tokens.
* Base44-internal URLs and employee identities.

In almost every case this is enforced at the database read rather than at the response. The material is never loaded into the process that serves your request.

Member emails are returned by the [members endpoint](https://docs.base44.com/developers/references/compliance-api/get-started/workspace-and-members.md), because you need them for identity joins. That's exactly why people data sits behind its own consent scope.

## Gap register

Where a field a scanner usually expects doesn't exist in Base44, this table shows what arrives instead.

| Field | Situation | What the API returns |
| - | - | - |
| App `production_branch` | Only the repo's default branch is stored. | `repo.default_branch`. |
| Repo visibility, numeric repo ID, owner ID | Not stored at connection time. | Not returned. |
| Function `auth_required` | Auth is enforced in user code, not platform config. | Null. Scanner findings carry the signal. |
| Function internet exposure | All deployed functions are reachable, and no toggle exists. | Constant true. |
| Secret `last_rotated` | No rotation timestamp exists, but a last-value-write time does. | `last_updated_at`. |
| Finding first-seen and last-seen | Findings are a latest-scan snapshot, with no per-finding creation time stored. | `scanned_at` only. |
| Workspace MFA policy | Reported in `mfa`, and `mfa_policy` stays null. | `mfa.enforced_for_members`. Per-member enrollment is in the members endpoint. |
| Session policy | Sessions use global platform TTLs, not a per-workspace setting. | Null. |
| Workspace token policy | Reported in `personal_access_token_policy`, and `token_policy` stays null. | `personal_access_token_policy`. |
| Agent channel `configured` and `active` | Not stored per agent and channel. | Null. |
| Agent email channel | The channel doesn't exist. | Not in the vocabulary. |
| Entity `rls.raw` | Rules embed customer literals. | Classification only. |
| Domain verification | The source is a provider payload, not a typed field. | Typed boolean plus `last_checked_at`. |
| API key `expires_at` | Keys don't expire today. | Null. |
| Agent `model`, standalone | Resolved per request from the model picker, with no stored value. | Null. |
| Agent `allow_anonymous_access`, standalone | Applies only to agents embedded in apps. | Null. `visibility_effective` in the apps endpoint carries it. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.