Format · Semi-structured

JSON, XML and logs, masked like the tables they came from

API payloads, message queues, XML interfaces and application logs copy customer data out of the database and into places nobody masks. A test environment with a masked database can still leak through its logs.

POST /customers/C-104233Masked in your VPCIllustration
Before
{"id": "C-104233", "name": "Maria Lopez", "email": "m.lopez@example.com", "note": "Call after 6pm on 07700 900123"}
After
{"id": "C-104233", "name": "Ava Okafor", "email": "a.okafor@example.net", "note": "Call after 6pm on 07700 900456"}
Found in this file
Treatment
$.name×1Consistent
$.email×1Consistent
Phone inside $.note×1Keep format
$.id×1Keep
Policy: Customer data v3 Labelled-sample check passed

What leaks through

Customer names and IDsEmails and phone numbersFree text inside fieldsCard and account numbersIP addressesTokens and API keys in logs

Where it lives

  • API request and response payloads
  • Kafka and message-queue topics
  • XML interfaces between systems
  • Application and audit logs
  • CSV exports and file drops

What you can do

AvailableGenerate XML from a schemaCreate schema-valid XML documents from an XSD definition for interface testing.
AvailableCSV files, keys kept across filesGenerate synthetic versions of a set of CSV files on S3 or a file share. Shared IDs resolve to the same value in every file, so joins give no orphaned rows, and teams re-run it themselves once it is set up. Masking CSVs with your database rules is also available.
Engineer-ledMask JSON and XML payloadsMask fields by path, and the free text inside them, with deterministic rules so a customer masks the same way in a payload as in the table.
Engineer-ledLogsFind emails, IDs and secrets in log lines before logs are shared with vendors or kept in test.

Why deterministic matters

An integration test sends customer C-104233 through an API, a queue and a database. If each hop masks the name differently, the test fails for the wrong reason.

The same input should give the same output everywhere it appears. That is how Synthesized already masks related tables, and the rule the payload work follows.

Questions about semi-structured data

Can I mask JSON stored in a database column?

Masking by path inside JSON columns is delivered with our engineers, and a script transformer handles a known structure in the product today.

Do you scan logs in real time?

No. Synthesized prepares data for test environments in batches. Live log filtering belongs in your logging pipeline.

Can generated XML match our real interface?

If you have its XSD, yes: generation follows the schema, so documents validate against the same definition your interface uses.

The platform underneath, in production

Documents run on the same platform banks, insurers and health companies already trust with their data.

Documents and text use the same policies, the same engine and the same deployment as these results.

Banking · test data80%less time to provision test data, with compliant data generated through the API inside CI/CD.Deutsche BankCase studyHealth · masking20bn+rows masked and subsetted in hours, not weeks, with all manual configuration removed.Global HealthTech leaderCase study

Published results from database and synthetic data work on the Synthesized platform.

Close the gaps around your masked database

Payloads, files and logs, with the same rules as your tables.

Get a 48-hour proof