Take control of your releases with a free, instant demo.

Launch Now
Enov8 DataFactoryTest data subsetting and synthetic generation

Test data that looks real. Because it isn't.

DataFactory gives every test environment production-shaped data, without a single real customer in it. Cut a huge database down to size with every relationship intact, or generate realistic data from nothing but a schema.

Self-hosted on your own server with Docker. Nothing is sent to Enov8.

Virtual data set · retail banking (example)0 orphaned rows
5%
customers ⚓120,000
accounts195,000
cards105,000
addresses130,000
transactions9,200,000
statements1,550,000
CSV / JSON per tableSchema DDLReduction script

Prune output is real data, just less of it. Pair it with masking where needed.

250+data skills
12industry templates
10Mrows per run
0real customers

01Two engines

Shrink what you have. Grow what you don't.

Prune cuts real databases down to a size your test environments can handle. Bloom builds realistic data from scratch. Use either, or both.

PRUNE

Subsetting

Cut a large database down to anywhere from 1% to 100%, with every foreign-key relationship intact. Nothing orphaned, nothing broken.

  • Any target size, plus optional row filters by value, text, year, number range, or empty / not empty
  • Read-only on the source. Prune never changes it
  • Reduction script that shrinks a cloned copy in place
Run the reduction script only on a copy, never on production. Prune output is real data, so pair it with masking where needed.
Sources
MySQLSQL ServerOraclePostgreSQLDb2 for LUWSAP HANA
Output
CSV or JSON per tableSchema DDL in your dialectReduction script
BLOOM

Synthetic data

Generate realistic synthetic data from a schema. No source rows needed, so no real customer is ever involved.

  • 250+ skills with real check digits, from card numbers to Medicare and NHS numbers
  • Relationships set by rows per parent, with uniform, Poisson or long-tail distributions
  • Business rules applied while generating and checked afterwards
  • "Learn from source" copies only table sizes and value mixes, never personal values, and drops rare values
  • Up to 10 million rows per run by default. Large runs work on disk, not in memory
Start from
TemplateSQL schemaVirtual data set
Schemas
PostgreSQLMySQL / MariaDBSQL ServerOracleSQLiteSnowflakeBigQueryDuckDB
Output
CSVJSONSQL insertsLoad into PostgreSQL, MySQL, MariaDB

02How it works

From source to test environment in four steps.

Define a data set once and reuse it for every prune and every plan.

1

Connect

Point DataFactory at a source database with a read-only account. Or skip that and start from a SQL schema or a template.

Read-only DBSQL schemaTemplate
2

Define

Pick your anchor tables. DataFactory maps every related table into a reusable virtual data set.

Anchor tablesVirtual data set
3

Prune or Bloom

Cut a subset to size, or generate synthetic rows with the skills, volumes and rules you choose.

1–100% subsetSkills & rules
4

Deliver

Download files, load straight into a test database, or let your pipelines and AI agents do it.

FilesDirect loadAPIMCP

03250+ skills

Fake data that passes real validation.

Skills are value recipes. Identifiers come out with real check digits, so they get past the same validation your applications run in production.

Try it: every value on the right is generated in your browser using the same public check-digit rules.

Sample identifiers · generated live
Card number GlobalLuhn
ABN AUMod 89
TFN AUWeighted mod 11
Medicare AUWeighted mod 10
NHS number UKMod 11
NPI USLuhn, 80840 prefix
IMEI TelcoLuhn
ACN AUWeighted mod 10
Also:IHIMBIICCIDNMIMIRNUSIIBANBSBVINMSISDNIMSI…

Synthetic values for testing only. They match the format rules, not real people.

04Industry packs

Twelve templates that speak your industry.

Start from a template built around the identifiers, records and events your systems actually use. Admins switch packs and regions on or off.

Regions:AustraliaUKUSEurope

Banking & finance

1 template

Accounts, cards and payments with valid bank identifiers.

BSBIBANCards

Health insurance

4 templates

AU, UK and US member and provider data, including a template aligned to the Ensure health-fund core system.

IHIMedicareNHSNPIMBI

General insurance

1 template

Policies, vehicles and business customers.

VINRegoABN

Telecommunications

1 template

Subscribers, devices, SIMs, usage records and number porting.

MSISDNIMSIIMEIICCIDnbn IDsCDRs

Government & public sector

1 template

Citizens, payments, cases and grants.

Centrelink CRNTFNDriver licences by state

Energy & utilities

1 template

Meters, tariffs, reads, bills and concessions.

NMIMIRNNEM12 readsTariffs

Superannuation & wealth

1 template

Members, contributions, rollovers and insurance in super.

USIContributionsRollovers

Retail & e-commerce

1 template

Customers, products, orders and fulfilment.

OrdersProductsCustomers

Salesforce

Platform · 1

Sales Cloud objects with properly formed record IDs.

Sales Cloud18-character IDs

Admins choose which packs and regions are switched on for their organisation.

05Quality you can prove

Realistic shape. Enforced rules. Checked every run.

Bloom doesn't just fill columns. It builds relationships with realistic spread, applies your business rules as it generates, then validates the result.

A quality score on every run

Keys✓
Links✓
Constraints✓
Formats✓
Rules✓

Example run shown.

Relationships with realistic spread

Set rows per parent and how they're distributed.

0child rows per parent12

Business rules that hold

Applied while generating, then checked afterwards.

claim.date ≥ policy.startdate order
if type = 'Joint' then holders ≥ 2if / then
sum(lines.amount) = invoice.totalparent total
same plan + same seed= the same data, every time. Reproduce a failing test months later, row for row.

06AI & automation

AI if you want it. Never your data.

DataFactory works fully without AI. Switch it on and you can describe columns, rules and changes in plain English. Only the structure goes to the model.

✓Sent to your AI provider

  • Table and column names
  • Plan settings
  • The project brief

✕Never sent

  • Rows of data
  • Source values
  • Database passwords
Use the model you trust:Anthropic ClaudeOpenAIAzure OpenAIOllama (local)

Built for pipelines

A REST API covers prunes, Bloom plans, runs and loads, so fresh test data becomes a step in CI/CD.

CI/CD pipeline→REST API→DataFactory→Test database

Ready for AI agents

The built-in MCP server lets agents such as Claude work as a signed-in user. No database passwords pass through the agent.

AI agent→MCP server→DataFactory→Your data sets

07Security

Runs inside your walls.

DataFactory is self-hosted on Docker. Your data never leaves your network, and nothing is sent to Enov8.

Self-hostedRuns on your own server with Docker. Data never leaves your network.
Read-only on sourcesDataFactory only reads from source databases. It never changes them.
Secrets encryptedDatabase passwords and AI keys are encrypted at rest and never shown again.
Single sign-onMicrosoft Entra ID, OpenID Connect or SAML 2.0.
Private by defaultAdmin and Member roles. Everyone sees only their own work unless it's shared.
A built-in safety catchIt refuses to load a plan into the same database it was learned from.

Fill your next test environment. Leave your customers out of it.

See Prune and Bloom on your own schema in a 30-minute session with our team.

Coming soonDataFactory documentationSetup guides, the full skills reference and API docs will be published at:docs.enov8.com/docs/datafactory/intro