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

# Security and the data boundary

> This page states what General Validation stores, what stays in your Microsoft Fabric tenant, and how identities, isolation, logging, retention, and removal work.

General Validation is a hosted application at
[app.generalvalidation.com](https://app.generalvalidation.com). Validation
itself runs in a dedicated workspace in your own Microsoft Fabric tenant, on
your existing Fabric capacity, under the identity of the user who starts the
Run. The hosted application holds configuration and Result summaries. Your
Tables, compute, credentials, exact values, and mismatch evidence stay in
Fabric and OneLake.

## Where information is processed

| Information | Location |
| - | - |
| Organization profile; member records (display name, work email, directory identifiers, role, and status); invitations (email address, role, expiry, and status) | General Validation |
| Table references (workspace, Lakehouse or Warehouse, schema, Table name, and an optional pinned Delta version), Table Pair configuration (name, join key column names, and filters including the values you enter), and Test definitions (function, column names, threshold, max bad records, and evidence capture limit) | General Validation |
| Run status and the configuration frozen for each Run; Result verdicts, counts, and reason codes; a reference to each Run's folder in your Results Lakehouse | General Validation |
| Source and target rows, and the credentials that read them | Your Fabric tenant |
| Exact values, mismatch evidence, and the Results files for every Run | Your Results Lakehouse in OneLake |
| Subscription state and billing details | General Validation and its billing provider |

Column names and types are read live from OneLake while you author a Test and
are held only in your browser. Schemas are never saved to General Validation.

Metadata can still be sensitive. Table names, column names, and filter values
are configuration your Organization shares with the service, and General
Validation stores them with the Table Pair. Review them as you would any
shared configuration, and avoid entering secrets or personal data as filter
values.

Card and bank details are entered on the billing provider's hosted pages and
never reach General Validation.

General Validation is hosted on Microsoft Azure. Stripe processes direct card
and ACH payments, and Microsoft processes Marketplace purchases. Results, exact
values, and evidence reside on the Fabric capacity you choose for your
Environment, in that capacity's region; General Validation does not move them.

## How a result reaches the screen

1. You click **Run validation**. General Validation freezes the Table Pair,
   its Tests, and the instructions prepared for them. Your browser then
   submits that Run to the validation job in your dedicated workspace with
   your own Fabric permissions. The submission goes from your browser to
   Microsoft; General Validation's services do not call Fabric.
2. The Spark job runs on your Fabric capacity under your identity, reads the
   source and target Tables, and writes the Run's summary, a details file with
   exact values, and Parquet mismatch evidence into your Results Lakehouse
   under `Files/GeneralValidation/results/` in a folder named for the Run ID.
   Each Run writes its outputs only to the Results Lakehouse.
3. When you open the Run or click **Refresh Result**, your browser reads the
   summary from OneLake and imports only identifiers, verdicts, counts, reason
   codes, and the folder reference into General Validation. General Validation
   checks that the summary belongs to the Run it was prepared for and accepts
   nothing outside that set. Results reflect what the job in your workspace
   wrote; they are validated for consistency, not independently attested.
4. When you click **View details**, your browser reads the exact values or a
   sample of mismatched rows directly from OneLake with your own Microsoft
   identity, holds them in the page while the details are open, and clears
   them when you click **Close details** or leave the Run. Viewing details
   requires OneLake read access to the Results Lakehouse as well as General
   Validation membership.

The validation job runs only the instructions prepared for that Run. The
authoring screens and the API accept no SQL from users, and the job runs no
code supplied at run time. Each Run keeps the exact instructions it executed;
you can review them in the Run's folder in your Results Lakehouse and in
Fabric's Spark monitoring.

Exact values, rows, credentials, and mismatch evidence never traverse or
persist in General Validation services, databases, logs, telemetry, support
tooling, or caches. Your browser holds separate Microsoft tokens for General
Validation, Fabric, and OneLake. The Fabric and OneLake tokens go only to
Microsoft and are never sent to General Validation.

An exact value can be sensitive even without a row sample. A minimum or
maximum, for example, can be a single record's value. Exact values follow the
same customer-side boundary as mismatched rows.

## Identities and permissions

You sign in with a Microsoft work account through Microsoft Entra. General
Validation acts only as the signed-in user. Every Fabric and OneLake permission
it uses is delegated; it requests no application (app-only) permissions and no
Microsoft Graph or Azure Service Management permission. No vendor identity
operates in your tenant: General Validation holds no credential there, has no
app-only permission, and installs nothing beyond the items setup creates in
your dedicated workspace. The enterprise application that appears in your
directory after consent is the standard record that carries the delegated
permissions; it acts only when one of your users is signed in.

Your Microsoft Entra policies, such as Conditional Access and multifactor
authentication, apply at sign-in. General Validation has no password of its
own, and sign-in state lives in the browser tab where you signed in.

The consent prompt requests six delegated Fabric and OneLake permissions plus
the General Validation sign-in scope. Each permission and what it is used for
is listed under
[Permissions requested at sign-in](https://docs.generalvalidation.com/get-started/fabric-resources.md#permissions-requested-at-sign-in).

The registration is multitenant with the verified publisher domain
generalvalidation.com. If your tenant requires administrator approval, the app
shows an approval page with a link your administrator can use; one approval
covers every permission. The approval procedure is in
[Sign-in and team access](https://docs.generalvalidation.com/administration/access.md), and the items setup
creates in your tenant are in
[What General Validation creates and needs in Fabric](https://docs.generalvalidation.com/get-started/fabric-resources.md).

These permissions do not grant access to any workspace or Table. Your Fabric
roles and tenant policies still apply, and execution runs under interactive
user accounts. The Fabric access each
activity needs is listed under
[Fabric access is separate](https://docs.generalvalidation.com/administration/access.md#fabric-access-is-separate).

The General Validation API accepts bearer tokens issued for General Validation
only. It accepts no Fabric or OneLake tokens, no customer rows, and no SQL.
Machine clients authenticate with Microsoft Entra application roles assigned to
a managed identity in your directory and use the same role floors as people.
They cannot browse Fabric, set up the Environment, submit Runs to Fabric, or
read exact values. See [API authentication](https://docs.generalvalidation.com/api/authentication.md).

## Organization isolation and access

General Validation verifies each token's issuer, audience, lifetime, and
scope, then derives your Organization from the verified directory and your
membership. One Organization exists per Microsoft Entra directory. Every
Organization's data is isolated at the database layer, and a request can never
select another Organization's scope.

Roles are cumulative. Readers inspect Table Pairs, Tests, Runs, and Results.
Contributors also create Table Pairs and Tests and run validation. Owners also
set up, reinstall, and remove the Environment and manage members, invitations,
and billing. The last active Owner cannot be removed. Invitations and role
changes are described in
[Sign-in and team access](https://docs.generalvalidation.com/administration/access.md).

Fabric access is a separate boundary. Product membership grants no Fabric
permission, and Fabric permissions grant no product membership. A member who
cannot read the Results Lakehouse in OneLake sees verdicts and counts but
cannot open details. Fabric workspace administrators share the dedicated
workspace with teammates through Fabric.

General Validation staff use a separate, restricted identity for support and
billing operations that shows account and billing metadata such as the
Organization name and subscription status. Staff have no identity in your
Fabric tenant and cannot read your rows, exact values, or evidence, which
never reach General Validation. Organization Owner membership grants no vendor
privilege.

## Network and browser

All traffic is outbound HTTPS from your browser to app.generalvalidation.com,
api.generalvalidation.com, login.microsoftonline.com,
api.fabric.microsoft.com, onelake.dfs.fabric.microsoft.com, and
onelake.table.fabric.microsoft.com; the purpose of each is listed under
[Endpoints the browser connects to](https://docs.generalvalidation.com/get-started/fabric-resources.md#endpoints-the-browser-connects-to).
General Validation never initiates a connection into your tenant, and the
validation job makes no network call to General Validation, so no vendor IP
address needs to be allowed.

The app enforces a strict Content Security Policy that limits connections to
these endpoints. Billing checkout and subscription management open the billing
provider's hosted pages, and Microsoft Marketplace purchases start on
Microsoft's site. Browser configuration contains only public origins and registration
identifiers; no secret is present in the browser.

General Validation connects to Microsoft Fabric's commercial-cloud global
endpoints. Contact
[support@generalvalidation.com](mailto:support@generalvalidation.com) before
deploying with Private Link, regional-only endpoints, or a sovereign cloud.

## Logging and diagnostics

General Validation operational logs contain request IDs, operation states,
typed error codes, and a fixed set of diagnostic metadata. They never contain
customer rows, exact values, tokens, credentials, filter values, request or
response bodies, or provider payloads. A failed submission or Fabric job is
recorded as one fixed reason code with no message from Fabric. These logs are
retained for 30 days.

Calls your browser makes directly to Fabric and OneLake, including Environment
setup, Table browsing, Run submission, status polling, summary import, and
evidence previews, produce no General Validation log at all. Those requests are
visible only in your own Fabric monitoring and Spark session.

Browser diagnostics are written to your browser's developer console as
fixed-format records and are not uploaded to General Validation. They exclude
tokens, headers, bodies, query strings, identifiers, page text, and error
messages. Review a record locally before sharing it.

When you contact
[support@generalvalidation.com](mailto:support@generalvalidation.com), include
the request ID shown with the error, the Run ID, the time, and the displayed
error code. Review screenshots before sending them, and keep rows, exact
values, credentials, and tokens inside your environment. See
[Troubleshooting and logs](https://docs.generalvalidation.com/administration/troubleshooting.md).

## Retention and removal

You own the Results Lakehouse and control the retention of every Run's
folder. General Validation never deletes those files on its own, and there is
no automatic cleanup. If you delete a Run's folder in Fabric, its verdicts and
counts remain in General Validation, and its details can no longer be
previewed.

On Environment, Remove deletes the dedicated workspace and everything
in it, including the validation job, Results, and row evidence, after you
confirm. Your Table Pairs, Tests, and Run metadata stay in General Validation,
but deleted details and evidence can no longer be previewed. Source and target
Tables in other workspaces are unaffected. Deleting a Table Pair archives it;
its Runs and Results remain. Editing a Table Pair or Test leaves past Runs
intact.

Because every permission is delegated, removing General Validation's
enterprise application from Microsoft Entra, or revoking its permissions
there, ends the app's access to Fabric and OneLake for your users. General
Validation holds no other credential for your tenant. Revoking consent does
not remove the dedicated workspace or the metadata General Validation holds.

Subscription cancellation or trial expiry does not delete your Organization,
its metadata, or any Fabric resource; existing Runs and Results remain
readable. To delete your Organization and the metadata General Validation
holds for it, contact
[support@generalvalidation.com](mailto:support@generalvalidation.com). Billing
details entered on the billing provider's pages are held by that provider under
its own retention terms.


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