Learning center

Zero raw-production-data egress

The precise privacy promise behind DataNivra, how it is enforced in code on both sides of the boundary, and why it is not “zero copy”.

Tutorial

Zero raw-production-data egress is a narrow, testable promise: raw production values never leave your environment for the DataNivra control plane. Not in messages, not in logs, not in error reports, not in metering or support bundles.

It is deliberately not “zero copy”. Test data management creates copies by definition — subsets, masked datasets, synthetic datasets. Those copies exist inside your boundary, in the environments you choose. What never happens is raw data flowing out.

How raw data is kept from leavingInside your environment, engine output stays local; a report builder produces metadata; the EgressGuard checks every outbound message against allow-listed schemas and content detectors. Allowed out: control metadata, aggregate metrics, evidence references and secret references. Blocked: rows, samples and credentials. In the cloud, ingress validation rejects anything non-conforming before it is stored.Your environmentEngine output (rowsstay local)Report builder(metadata only)EgressGuard: schema +content checksDataNivra CloudIngress validationMetadata store & auditAllowed: metadata, aggregates, evidence & secret referencesBlocked: rows, samples, credentials
How raw data is kept from leaving. Inside your environment, engine output stays local; a report builder produces metadata; the EgressGuard checks every outbound message against allow-listed schemas and content detectors. Allowed out: control metadata, aggregate metrics, evidence references and secret references. Blocked: rows, samples and credentials. In the cloud, ingress validation rejects anything non-conforming before it is stored.
Text description
  1. Your environment: Engine output (rows stay local) → Report builder (metadata only) → EgressGuard: schema + content checks

    Connection: Allowed: metadata, aggregates, evidence & secret references — Blocked: rows, samples, credentials

  2. DataNivra Cloud: Ingress validation → Metadata store & audit

Why it matters

Privacy promises are only useful when they are precise enough to verify. A vague claim invites misunderstanding: a security reviewer who reads a bolder slogan may assume no copies exist anywhere, then discover masked subsets in QA and lose trust in everything else. A precise claim can be tested: you can inspect the message schemas, watch the network traffic and scan the vendor's stores for known canary values. It also shapes engineering. When every field that crosses the boundary must be classified, accidental leaks through a debug field or a verbose error message become build failures instead of incidents.

Control plane and customer-resident data planeTwo zones. The top zone is DataNivra Cloud: public website and console, control-plane API, a metadata and audit store, and the policy registry. The bottom zone is your environment: the DataNivra agent, the TDM engine, your source systems accessed read-only, and your test environments. The agent opens outbound-only HTTPS connections to the cloud and sends only control metadata, aggregate metrics, evidence references and secret references. Raw rows and secret values never cross the boundary.DataNivra CloudWebsite & consoleControl-plane APIMetadata & auditstorePolicy registry &approvalsYour environmentDataNivra agentTDM engineSource systems(read-only)DEV / QA / SIT / UAT/ PERF targetsOutbound-only HTTPS, started by the agentMetadata, aggregates, evidence references only. No rawrows, no secrets.
Control plane and customer-resident data plane. Two zones. The top zone is DataNivra Cloud: public website and console, control-plane API, a metadata and audit store, and the policy registry. The bottom zone is your environment: the DataNivra agent, the TDM engine, your source systems accessed read-only, and your test environments. The agent opens outbound-only HTTPS connections to the cloud and sends only control metadata, aggregate metrics, evidence references and secret references. Raw rows and secret values never cross the boundary.
Text description
  1. DataNivra Cloud: Website & console → Control-plane API → Metadata & audit store → Policy registry & approvals

    Connection: Outbound-only HTTPS, started by the agent — Metadata, aggregates, evidence references only. No raw rows, no secrets.

  2. Your environment: DataNivra agent → TDM engine → Source systems (read-only) → DEV / QA / SIT / UAT / PERF targets

Example

Consider a synthetic discovery report for a table of invented member records.

Field in the reportClassCrosses the boundary?
table: members, column: emailcontrol metadatayes
null_ratio: 0.02, row_count: 48210aggregate metricyes
report_sha256: 9f1c…evidence metadatayes
vault://secret/tdm#readersecret referenceyes (the name only)
a sample value such as jordan.b@example.testraw datanever

If a developer added a sample_values field to that report, the contract would refuse to build the model; if a value slipped into a text field, the egress guard would block the message and log the violation locally without the payload.

How DataNivra approaches it

Enforcement is layered:

  • Contracts. Every field of every cross-boundary message is classified. Prohibited raw data cannot be declared on a message model or serialized into one, and unknown keys are rejected.
  • Egress guard. The agent checks each outbound message against allow-listed schemas and content detectors for things like emails, card numbers and long free text, and fails closed.
  • Ingress validation. The control plane validates the same contracts again and rejects anything non-conforming without echoing it.
  • Architecture. Hosted code cannot import the engine or connectors.
  • Verification. End-to-end tests seed synthetic canary values and check they never appear in control-plane storage, logs or responses.

Credentials travel only as secret references. See Security and the raw-data egress runbook.

Key takeaways

  • The promise is about egress, not about copies inside your boundary.
  • Classification makes the promise checkable field by field.
  • Both sides validate; neither trusts the other blindly.